iptables四表五链

iptables四表五链

iptables传输数据包的过程

iptables四表五链_第1张图片

  1. 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否是发往本机的。
  2. 如果数据包就是进入本机的,它就会沿着图向下移动到INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会通过OUTPUT链,然后到达POSTROUTING链输出。
  3. 如果数据包是要转发出去的,且内核运行转发,数据包就会流向FORWARD链进行处理(是否转发拦截),然后到达POSTROUTING链(是否修改数据包的地址等)进行处理。
  • 报文的链流向
    • 到本机某进程的报文:PREROUTING --> INPUT
    • 由本机转发的报文:PREROUTING --> FORWARD --> POSTROUTING
    • 由本机的某进程发出报文(通常为响应报文):OUTPUT --> POSTROUTING
  • 报文到达链后匹配表的优先顺序
    • Raw ==> mangle ==> nat ==> filter

四表

  • filter表:负责过滤功能,防火墙;内核模块:iptables_filter

  • nat表:网络地址转换功能;内核模块:iptables_nat

  • mangle表:拆解报文,作出修改,并重新封装的功能;内核模块:iptables_mangle

  • raw表:关闭nat表上启用的连接追踪机制;内核模块:iptables_raw

五链

  • PREROUTING:在进行路由选择前处理数据包(做目标地址转换)
  • INPUT:处理入站数据包
  • FORWARD:处理转发数据包
  • OUTPUT:处理出站数据包
  • POSTROUTING:在进行路由选择后处理数据包(对数据链进行源地址转换)

内置表与内置链之间的包含关系

iptables四表五链_第2张图片

你可能感兴趣的:(网络,运维,iptables四表五链)