如何检查 Linux 中是否设置了防火墙规则

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查 Linux 系统上防火墙的状态并列出活动的防火墙规则。你将首先使用用户友好的 ufw 命令来检查防火墙的整体状态。

接下来,你将深入了解底层的 iptables 工具,以查看当前生效的详细数据包过滤规则。最后,你将探索 nftablesiptables 的现代替代方案)来验证规则集。这个实验将为你提供理解和检查 Linux 防火墙配置的实用技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/help -.-> lab-558716{{"如何检查 Linux 中是否设置了防火墙规则"}} linux/man -.-> lab-558716{{"如何检查 Linux 中是否设置了防火墙规则"}} linux/sudo -.-> lab-558716{{"如何检查 Linux 中是否设置了防火墙规则"}} linux/ifconfig -.-> lab-558716{{"如何检查 Linux 中是否设置了防火墙规则"}} linux/netstat -.-> lab-558716{{"如何检查 Linux 中是否设置了防火墙规则"}} linux/ip -.-> lab-558716{{"如何检查 Linux 中是否设置了防火墙规则"}} end

使用 ufw status 显示防火墙状态

在这一步中,你将学习如何使用 ufw 命令检查 Linux 系统上防火墙的状态。ufw 代表“Uncomplicated Firewall”(简单防火墙),是管理 iptables 的用户友好界面。

防火墙对于网络安全至关重要。它们根据一组规则控制传入和传出的网络流量。默认情况下,LabEx 环境可能已安装 ufw 但未激活。

要检查 ufw 防火墙的状态,请打开终端并输入以下命令:

sudo ufw status

按下回车键。

你可能会看到类似以下的输出:

Status: inactive

此输出表明 ufw 防火墙目前在系统上未激活。如果它已激活,你将看到当前实施的规则列表。

这里使用 sudo 命令是因为检查防火墙状态需要管理员权限。如前所述,在这个环境中,labex 用户无需密码即可使用 sudo 权限。

了解防火墙状态是管理网络安全的第一步。在后续步骤中,你将探索其他工具,如 iptablesnftables,以更深入地了解 Linux 中防火墙的工作原理。

点击 继续 进入下一步。

使用 iptables -L 列出活动的 iptables 规则

在这一步中,你将学习如何使用 iptables 命令查看活动的防火墙规则。虽然 ufw 提供了简化的界面,但 iptables 是管理 Linux 内核数据包过滤规则的底层工具。

iptables 通过在不同的“链”(chain)和“表”(table)中定义规则来工作。最常见的链有 INPUT(用于传入流量)、OUTPUT(用于传出流量)和 FORWARD(用于通过系统的流量)。

要列出所有链中的当前 iptables 规则,请打开终端并输入以下命令:

sudo iptables -L

按下回车键。

你将看到类似以下的输出,它显示了 INPUTFORWARDOUTPUT 链的规则:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

输出显示了每个链的默认策略(在这种情况下是 ACCEPT,意味着默认允许流量)以及已添加的任何特定规则。由于上一步中 ufw 处于非活动状态,iptables 可能没有由 ufw 配置的自定义规则。

-L 选项告诉 iptables 列出规则。同样,需要使用 sudo,因为查看防火墙规则需要管理员权限。

理解 iptables -L 的输出对于诊断网络连接问题和验证防火墙配置至关重要。

点击 继续 进入下一步。

使用 nft list ruleset 验证规则

在这一步中,你将探索 nftables,它是 iptables 的继任者。nftables 为数据包过滤和网络地址转换(NAT)提供了更灵活、统一的框架。虽然 iptables 仍被广泛使用,但 nftables 正逐渐成为较新 Linux 发行版的默认选择。

你可以使用带有 list ruleset 选项的 nft 命令查看活动的 nftables 规则集。

打开终端并输入以下命令:

sudo nft list ruleset

按下回车键。

你将看到类似以下的输出,它显示了当前的 nftables 配置:

table ip filter {
	chain INPUT {
		type filter hook input priority 0; policy accept;
	}

	chain FORWARD {
		type filter hook forward priority 0; policy accept;
	}

	chain OUTPUT {
		type filter hook output priority 0; policy accept;
	}
}

此输出显示了带有 INPUTFORWARDOUTPUT 链的默认过滤表,与 iptables 类似。policy accept 表示这些链默认允许流量通过。

nft 命令是与 nftables 交互的主要工具。list ruleset 选项会显示整个活动规则集。同样,需要使用 sudo 才能查看防火墙配置。

比较 iptables -Lnft list ruleset 的输出,有时可以发现两者配置不同或一方管理着另一方未直接控制的规则时的差异。在典型的设置中,一个系统(iptablesnftables)将作为主要的防火墙管理器。

你现在已经学习了如何检查 ufw 的状态、列出 iptables 规则以及查看 nftables 规则集。这些是理解和管理 Linux 防火墙的基本技能。

点击 继续 完成本次实验。

总结

在本次实验中,你学习了如何使用不同工具检查 Linux 系统上防火墙的状态。你首先使用 sudo ufw status 来确定简单防火墙(Uncomplicated Firewall)是否处于活动状态,该防火墙为管理防火墙规则提供了用户友好的界面。

接下来,你通过使用 sudo iptables -L 探索了底层的 iptables 工具,以列出 INPUTOUTPUTFORWARD 等各种链中的活动数据包过滤规则。这让你更详细地了解了防火墙配置。最后,你通常会使用 nft list ruleset 来验证规则,以了解较新的 nftables 框架如何管理防火墙规则,它为 iptables 提供了一个现代的替代方案。