iptables是内核空间内的防火墙框架netfilter的命令行工具,iptables位于用户空间.
链(可以理解为流量需要经过的关卡):
所以,根据上图,我们能够想象出某些常用场景中,报文的流向:
到本机某进程的报文:PREROUTING --> INPUT
由本机转发的报文:PREROUTING --> FORWARD --> POSTROUTING
由本机的某进程发出报文(通常为响应报文):OUTPUT --> POSTROUTING
表: 链上面规则的分类
filter表:负责过滤功能,防火墙;内核模块:iptables_filter
nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle
raw表:关闭nat表上启用的连接追踪机制;iptable_raw
链表关系图:
规则查询:
iptables --line -t 表名 -nvL 链名
省略-t表示filter表
写了链名表示查询某个链,不写查询所有链
-n 不解析ip -v 详细信息 -L 表示列出规则
--line 显示规则的序号(iptables是按先后顺序匹配规则的,某些情况下,前面的规则匹配到之后,后面的规则就不会生效了)
文章参考: