iptables学习[02]:iptables的组成

简介

  • iptables由5个表(table)和5个链(chain)以及一些规则组成。

五表和五链介绍

  • 链chain

    • 内置链:每个内置链对应一个勾子函数。
    • 自定义链:对于内置链的扩展和补充,可以更灵活的规定组织管理机制;只有hook勾子调用自定义链时才生效。
  • 五个内置链分别是:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。

  • 五个表table:filter、nat、mangle、raw、security。

    • filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,此为默认表
    • nat:network address translation,地址转换规则表。
    • mangie:修改数据标记位规则表。
    • raw:关闭启动连接跟踪机制,加快封包穿越防火墙速度。
    • security:用于强制访问控制(MAC)网络规则,有Linux安全模块(如:SElinux)实现。
  • 五个表的优先级由高到低的顺序

    • security > raw > mangie > nat > filter
  • 表和链的对应关系

    iptables学习[02]:iptables的组成

  • 查看表中存在几个链

iptables -t $TABLE -nvL

内核中数据包的传输过程

iptables学习[02]:iptables的组成

  • 当一个数据包进入网卡,数据包首先进入盘PREROUTING链,内核根据数据包的IP判断是否要转送出去。
  • 如果数据包是要进入本机的就会继续向上移动,到达INPUT链。数据包进入INPUT链后,任何程序都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT,然后到达POSTROUTING链输出。
  • 如果数据包要转发出去,且内核允许转发数据包会向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
上一篇:iptables学习[03]:iptables的规则组成


下一篇:Linux防火墙,Netfiler,iptables概念原理全解析(上)