Iptables:
iptables 是 Linux 的防火墙管理工具而已,真正实现防火墙功能的是 Netfilter,我们配置了 iptables 规则后 Netfilter 通过这些规则来进行防火墙过滤等操作。
Netfilter 模块:
它是主要的工作模块,位于内核中,在网络层的五个位置(也就是防火墙四表五链中的五链)注册了一些钩子函数,用来抓取数据包;把数据包的信息拿出来匹配各个各个链位置在对应表中的规则:匹配之后,进行相应的处理 ACCEPT、DROP 等等
四表
filter 表——过滤数据包
Nat 表——用于网络地址转换(IP、端口)
Mangle 表——修改数据包的服务类型、TTL、并且可以配置路由实现 QOS
Raw 表——决定数据包是否被状态跟踪机制处理
五链
INPUT 链——进来的数据包应用此规则链中的策略
OUTPUT 链——外出的数据包应用此规则链中的策略
FORWARD 链——转发数据包时应用此规则链中的策略
PREROUTING 链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
POSTROUTING 链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
顺序
规则表之间的顺序
raw –> mangel –> nat –> filter
规则链之间的顺序
入站:PREROUTING –> INPUT
出站:OUTPUT –> POSTROUTING
转发:PREROUTING –> FORWARD –> POSTROUTING
规则链内的匹配顺序
PREROUTING -> INPUT -> FORWARD -> OUTPUT -> POSTROUTING
示例图如下