mangle表

建议不要在此表作任何过滤

表中仅有的几种操作

TOS 设置或改变数据包的服务类型域

TTL 数据包的生存时间域

MARK 设置特殊的标记

nat表

转换包的源或目标地址,只有流的第一个包会匹配,其后的包会自动处理

DNAT destination network address translation

SNAT source network address translation

MASQUERADE 与SNAT作用一样,但会查找可用的IP,负载比SNAT高

filter表

包过滤工作的主要地方

状态机制

一种连接跟踪机制,有 NEW, ESTABLISHED, RELATED, INVALID,使用--state匹配操作

除本地产生的包由OUTPUT链处理外,所有连接跟踪都是在PREROUTING链处理

(NAT表)

tcp SYN是NEW,SYN/ACK就是ESTABLISHED

udp 发送数据包是NEW,收到回复数据就是ESTABLISHED

ICMP同上

TCP发送的SYN包和UDP的数据包到目标网络有问题不可达时,数据包最后经过的一个路由会返回一个ICMP信息提示网络不可达,这种数据包是RELATED

FTP连接建立 的信息在协议数据包的数据域内,而不是在可分析的协议头里,因此,防火墙不知如何处理相应的数据包,解决的方法是为连接跟踪模拟加一个特殊的helper,以便能检测到那些信息,这样连接可以被跟踪,状态是RELATED.

conntrack helper可以编入内核,也可编为模块,用下面命令加载

modprobe ip_conntrack_*

连接跟踪不处理NAT

 

iptables-save iptables-restore

若用脚本增减iptables规则,每一次都会将iptables的规则集从内核空间提取出来,增删或修改后再插入内核空间,会花费更多的时间.

save一次将内核空间的规则集保存,restore一次将规则集载入内核空间.可以节省时间,但缺点不够脚本灵活.

iptables-save [-c] [-t table]

-c 保存包和字节计数器的值

-t 后面加上表名,保存特定表的规则集

iptables-restore [-c] [-n]

-c 同save

-n 不覆盖己有的规则