关键概念理解

表:

表是iptables构建块,它描述了其他功能大类。iptales中共有四个表。
如下:

表名 作用 关键链
filter 过滤规则 INPUTOUTPUTFORWARD
net NAT规则 PREROUTINGPOSTROUTING
mangle 修改分组数据 
raw 独立于Netfilter链接规则跟踪起作用 

链:

每个表都有自己的内置链,用户可以对链进行自定义,这样用户就可以建立一组规则
它们都关联到一组共同的标签如INPUT_ESTABLISH或DMZ_NETWORK。在实际应用的最常用的三个内置链是

filter表中的

INPUT
当一个数据包由内核中的路由计算确定为指向本地linux系统(即该数据包指向一本地套接字)之后,他将经过INPUT链检查。

OUTPUT
OUTPUT链包留给由linux系统自身生成的数据包。

FORWARD
FORWARD链管理经过linux系统路由的数据包(即当iptables防火墙用于连接两个网络,并且两个网络之间的数据包必须流经该防火墙)。

net表中的

PREROUTING
内核进行IP路由计算之前修改数据包的头部

POSTROUTING
内核进行IP路由计算之后修改数据包的头部

匹配:

每个iptables规则都包含一组匹配和一个目标,后者告诉iptables对于符合规则的数据包应该采取什么动作。
iptables匹配指的是数据包必须匹配的条件,只有当数据包满足所有匹配条件时,iptables才能由该规则所指定的动作处理该数据包,例如:如果定义只针对tcp的报文规则,可以使用--protocol匹配。

每个匹配都在iptables命令行中指定。最重要的iptables匹配如下所示:

参数规则 简写 说明 示例
--source -s 匹配源IP地址或网络 -s 192.168.10.23
--destination -d 匹配目标IP地址或网络 -d 192.168.10.2
--protocol -p 匹配IP值 -p udp
--in-interface -i 流入接口 -i eth0
--out-interface -o 流出接口 -i eth1
--state  匹配一组连接状态 
--string  匹配应用层数据字节序列 
--comment  在内核中内存中为一个字节关联多达256字节的注释数据 

目标:

iptables支持一组目标,用于数据包在匹配一条规则时候触发一个动作。
比较重要的几个目标如下:

名称 说明 
ACCEPT 允许数据包通过 
DROP 丢弃数据包,不对数据包做进一步处理,对接收栈而言就像数据包从来没有被接收一样。 
LOG 将该数据包记录到syslog 
REJECT 丢弃数据包,同时发送适当的响应报文(例如:针对TCP连接的TCP重置包;针对UDP数据包的ICMP不可达消息) 
RETURN 在调用链中继续处理数据包 

Tags: iptables, linux防火墙

Related Posts:
  • [尚无相关文章]

Leave a Comment