3.4.2. IPTables 和 IPChains 的不同之处
ipchains 和 iptables 都使用在 Liunx 内核中运行的规则 chain,并根据指定的规则或规则集合来进行数据包过滤。但是,iptables 提供了更大范围的数据包过滤功能,系统管理员可以对数据包过滤有更大的控制权。
您应该注意以下所列出的 ipchains 和 iptables 间的显著不同:
例如,到一个使用 ipchains 系统的 FORWARD 数据包要通过 INPUT、FORWARD 和 OUTPUT chain 后才可以继续被发送,而当使用 iptables 时,如果数据包的目标地址是本地系统时,它只被发送到 INPUT chain;如果数据包是本地产生的,它只被发送到 OUTPUT chain。因此,您需要把规则放置在实际处理这个数据包的 chain 中。
在 ipchains 中,与一个 chain 中的一条规则匹配的数据包可以被发送到 DENY target。在 iptables 中,这个 target 被改为 DROP。
在 ipchains 中,规则选项的顺序是不相关的。
iptables 命令对语法有更严格的限制。iptables 命令需要在源或目的端口前指定使用的协议(ICMP、TCP 或 UDP)。
例如,输入接口(-i 选项)只能在 INPUT 或 FORWARD chain 中使用。同样的,输出端口(-o 选项)只能在 FORWARD 或 OUTPUT chain 中使用。
换句话说,INPUT chain 和输入的网络接口一起工作,而 OUTPUT chain 和输出的网络接口一起工作。FORWARD chain 则可以和输入和输出的网络接口一起工作。
OUTPUT chain 不再被输入网络接口使用,INPUT chain 也不再处理通过网络接口输出的数据包。
以上所列出的不同点并不完全,要获得更详细的信息,请参阅 第 3.4.7 节 “其它资料”。