在网络安全和防火墙的上下文中,特别是 iptables 中,“四表”的优先级主要体现在不同的表之间的处理顺序。iptables 的四个主要表是:
filter 表:这是默认的表,主要用于包过滤。它包含的链有:
INPUT:处理入站数据包。
OUTPUT:处理出站数据包。
FORWARD:处理转发的数据包。
nat 表:用于网络地址转换,主要用于改变数据包的源地址或目标地址。它包含的链有:
PREROUTING:在路由决策之前处理入站数据包。
POSTROUTING:在路由决策之后处理出站数据包。
OUTPUT:处理本地生成的数据包。
mangle 表:用于修改数据包的特定字段,如 TOS、TTL 等。它包含的链有:
PREROUTING:在路由之前处理入站数据包。
POSTROUTING:在路由之后处理出站数据包。
INPUT、OUTPUT 和 FORWARD 链,用于修改特定的包。
raw 表:主要用于配置排除或不跟踪的数据包,提供原始数据包处理。它包含的链有:
PREROUTING:在路由之前处理入站数据包。
OUTPUT:处理本地生成的数据包。
优先级顺序
在 iptables 中,数据包处理的顺序为:
raw 表(用于不跟踪数据包的选项)。
mangle 表(用于修改数据包)。
nat 表(用于地址转换)。
filter 表(用于最终的包过滤)。
处理流程
当一个数据包到达时,首先检查 raw 表 的 PREROUTING 和 OUTPUT 链。
然后是 mangle 表 的 PREROUTING、INPUT、FORWARD、OUTPUT 和 POSTROUTING 链。
接着检查 nat 表 的 PREROUTING、OUTPUT 和 POSTROUTING 链。
最后到达 filter 表 的 INPUT、FORWARD 和 OUTPUT 链,进行实际的包过滤决策。
最后编辑:严锋 更新时间:2025-05-09 15:48