摘抄自

https://www.zsythink.net/archives/category/%e8%bf%90%e7%bb%b4%e7%9b%b8%e5%85%b3/iptables

image.png
(关卡)根据上图,我们能够想象出某些常用场景中,报文的流向:
到本机某进程的报文:PREROUTING –> INPUT
由本机转发的报文:PREROUTING –> FORWARD –> POSTROUTING
由本机的某进程发出报文(通常为响应报文):OUTPUT –> POSTROUTING


filter表:负责过滤功能,防火墙;内核模块:iptables_filter
nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle
raw表:关闭nat表上启用的连接追踪机制;iptable_raw

每个”链”中的规则都存在于哪些”表”中
PREROUTING 的规则可以存在于:raw表,mangle表,nat表。
INPUT 的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)。
FORWARD 的规则可以存在于:mangle表,filter表。
OUTPUT 的规则可以存在于:raw表mangle表,nat表,filter表。
POSTROUTING 的规则可以存在于:mangle表,nat表。

我们在实际的使用过程中,往往是通过”表”作为操作入口,对规则进行定义的

  1. raw 表中的规则可以被哪些链使用:PREROUTINGOUTPUT
  2. mangle 表中的规则可以被哪些链使用:PREROUTINGINPUTFORWARDOUTPUTPOSTROUTING
  3. nat 表中的规则可以被哪些链使用:PREROUTINGOUTPUTPOSTROUTINGcentos7中还有INPUTcentos6中没有)
  4. filter 表中的规则可以被哪些链使用:INPUTFORWARDOUTPUT

image.png
但是我们知道,iptables为我们定义了4张”表”,当他们处于同一条”链”时,执行的优先级如下。
优先级次序(由高而低):
raw –> mangle –> nat –> filter

image.png