iptables 是 Linux 系统上用于定义防火墙规则的工具,它通过四个表和五个链来进行配置。下面是这些表和链的详细说明:
四个表:
filter 表:filter 表是最常用的表,用于过滤数据包。它包含了 INPUT、OUTPUT 和 FORWARD 三个默认的链。
nat 表:nat 表用于网络地址转换 (NAT)。它包含了 PREROUTING、POSTROUTING 和 OUTPUT 三个默认的链。nat 表用于修改数据包的 IP 地址和端口。
mangle 表:mangle 表用于修改数据包的特定字段,如 TTL(生存时间)、TOS(服务类型)等。它包含了 PREROUTING、INPUT、FORWARD、OUTPUT 和 POSTROUTING 五个默认的链。
raw 表:raw 表用于跳过一些内核处理的步骤。它包含了 PREROUTING 和 OUTPUT 两个默认的链。raw 表主要用于设置连接跟踪规则。
五个链:
INPUT 链:INPUT 链用于处理进入本地系统的数据流量,即接收到的数据包将首先经过 INPUT 链。它用于过滤针对本地系统的数据包。
OUTPUT 链:OUTPUT 链用于处理从本地系统发送出去的数据流量。所有从本地系统发出的数据包都会经过 OUTPUT 链。
FORWARD 链:FORWARD 链用于处理通过本地系统进行转发的数据流量。如果 Linux 系统被配置成路由器或网关,数据包将经过 FORWARD 链。
PREROUTING 链:PREROUTING 链用于在数据包路由之前修改数据包。它位于数据包进入网络协议栈之前。
POSTROUTING 链:POSTROUTING 链用于在数据包路由之后修改数据包。它位于数据包离开网络协议栈之前。
以上是 iptables 的四个表和五个链的简要说明。在使用 iptables 进行防火墙规则配置时,可以根据需求来使用不同的表和链来满足特定的要求。