第 21 章 从 iptables 迁移到 nftables
如果您的防火墙配置仍然使用 iptables
规则,则您可以将 iptables
规则迁移到 nftables
。
ipset
和 iptables-nft
软件包已在 Red Hat Enterprise Linux 9 中弃用。这包括 nft-variants
(如 iptables
、ip6tables
、arptables
和 ebtables
工具)的弃用。如果您使用其中任何一个工具,例如,因为您已从早期的 RHEL 版本升级,因此请迁移到 nftables
软件包提供的 nft
命令行工具。
21.1. 弃用的 iptables 框架中的概念 复制链接链接已复制到粘贴板!
与主动维护的 nftables
框架类似,弃用的 iptables
框架使您能够执行各种数据包过滤任务、日志记录和审计、与 NAT 相关的配置任务等。
iptables
框架由多个表组成,其中每个表都为特定目的而设计:
filter
- 默认表确保常规数据包过滤
nat
- 对于网络地址转换(NAT),包括更改数据包的源和目标地址
mangle
- 对于特定的数据包更改,您可以为高级路由决策对数据包标头进行修改
raw
- 对于需要在连接跟踪之前发生的配置
这些表作为单独的内核模块实现,其中每个表都提供一组固定的内置链,如 INPUT
、OUTPUT
和 FORWARD
。链是针对其评估数据包的规则的序列。这些将钩住内核中数据包处理流中的特定点。链在不同的表中有相同的名称,但它们的执行顺序由各自的钩子优先级决定。优先级由内核在内部管理,以确保规则以正确的顺序应用。
最初,iptables
被设计为处理 IPv4 流量。但是,随着 IPv6 协议的出现,需要引入 ip6tables
工具来提供可比较功能(如 iptables
),并使用户能够创建和管理用于 IPv6 数据包的防火墙规则。使用相同的逻辑,创建 arptables
工具是为了处理地址解析协议(ARP),开发 ebtables
工具是为了处理以太网桥接帧。这些工具确保您可以在各种网络协议中应用 iptables
的数据包过滤功能,并提供全面的网络覆盖。
要增强 iptables
的功能,开始开发扩展。功能扩展通常作为与用户空间动态共享对象(DSO)配对的内核模块实现。扩展引入了"匹配"和"目标",您可以在防火墙规则中使用它们来执行更复杂的操作。扩展可以启用复杂的匹配和目标。例如,您可以匹配或操作特定的第 4 层协议标头值,执行速率限制、强制配额等。某些扩展旨在解决默认 iptables
语法中的限制,如"多端口"匹配扩展。此扩展允许单个规则匹配多个非连续端口,以简化规则定义,从而减少所需的单个规则的数量。
ipset
是 iptables
的一种特殊的功能扩展。这是一个内核级别的数据结构,它与 iptables
一起使用来创建 IP 地址、端口号和其他与网络有关的您可以匹配数据包的元素的集合。这些集合可显著简化、优化并加快编写和管理防火墙规则的过程。
详情请查看您系统上的 iptables (8)
手册页。