iptables由四个表和五个链以及一些规则组成
四个表table:
filter、nat、mangle、raw
- filter表:过滤规则表,根据预定义的规则过滤符合条件的数据包
- nat表:network address translation 地址转换规则表
- mangle:修改数据标记位规则表
- Raw:关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度
优先级由高到低的顺序为:raw–>mangle–>nat–>filter
五个内置链chain:
内置链也称为钩子函数,iptables这款用户空间的软件可以在这5处地方写规则,对经过的数据包进行处理,规则一般的定义为“如果数据包头符合这样的条件,就这样处理数据包”
INPUT:处理来自外部的数据
OUTPUT:处理向外发送的数据
FORWARD:将数据转发到本机的其他网卡设备上
PREROUTING:处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址
POSTROUTING:处理即将离开本机的数据包。它会转换数据包中的源IP地址
iptables规则:
根据规则的匹配条件尝试匹配报文,对匹配成功的报文根据规则定义的处理动作作出处理
匹配条件:默认为与条件,同时满足
基本匹配: IP,端口,TCP的Flags(SYN,ACK等)
扩展匹配:通过复杂高级功能匹配
处理动作:称为target,跳转目标
内建处理动作:
ACCEPT(accept允许),
REJECT(reject强硬的拒绝),
SNAT/DNAT(地址转换使用),
MARK(打标签),
L