iptables
iptables基于netfilter ,位于内核 , 具有nat,数据包内容修改,以及数据包过滤的防火墙功能
所以,根据上图,我们能够想象出某些常用场景中,报文的流向:
到本机某进程的报文:PREROUTING –> INPUT
由本机转发的报文:PREROUTING –> FORWARD –> POSTROUTING
由本机的某进程发出报文(通常为响应报文):OUTPUT –> POSTROUTING
关卡:
路由前,转发,路由后
PREROUTING、FORWARD、POSTROUTING
表:
filter表:负责过滤功能,防火墙;内核模块:iptables_filter
nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle
raw表:关闭nat表上启用的连接追踪机制;iptable_raw
1)filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包
内核模块:iptables_filter.
2)nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口)
内核模块:iptable_nat
3)mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
4)raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理
内核模块:iptable_raw
查看某表中的规则
iptables -L -t 表名 #列出对应表的链规则
iptables -nL --line-number -t 表名 #更好看的列出表链规则