使用 iptables -L 检查 iptables 规则
虽然 firewalld 是许多 Linux 发行版中管理防火墙的现代方式,但它通常是通过配置底层的 netfilter 框架来实现的,而 netfilter 传统上是由 iptables 命令管理的。
即使使用 firewalld,你仍然可以使用 iptables 命令检查 firewalld 在 netfilter 中创建的规则。这有助于你理解 firewalld 如何将其基于区域的规则转换为底层的 iptables 规则。
要列出当前的 iptables 规则,我们将使用带有 -L 选项的 iptables 命令。由于查看防火墙规则需要管理员权限,我们需要使用 sudo。
输入以下命令并按回车键:
sudo iptables -L
你会看到大量的输出!这个输出显示了不同的 iptables 链(如 INPUT、FORWARD、OUTPUT)以及其中的规则。firewalld 会创建自己的链,通常以 FWD、IN_、OUT_ 等为前缀,以便根据区域和服务管理流量。
以下是你可能看到的输出片段(具体输出会有所不同):
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
...
Chain FORWARD (policy ACCEPT)
target prot opt source destination
...
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
...
Chain INPUT_ZONES (1 references)
target prot opt source destination
FWD_public all -- anywhere anywhere [goto] /* zone public */
...
现在不必担心理解输出的每一行。关键是要知道 firewalld 在幕后积极管理这些 iptables 规则。iptables -L 命令让你了解内核正在执行的实际数据包过滤规则。
这一步结束了我们对 firewalld 及其与 iptables 关系的简要介绍。你已经学习了如何检查活动区域、查找配置文件以及检查底层的 iptables 规则。
点击 继续 完成实验。