简介
在这个实验中,你将学习如何检查 Linux 系统中网络数据包过滤器是否处于激活状态。你将探索使用 iptables
列出防火墙规则的传统方法,并通过列出规则集来研究较新的 nftables
框架。最后,你将通过检查 /proc/sys/net
目录中的相关文件来验证过滤器设置,从而全面了解如何确定 Linux 系统上网络数据包过滤的状态。
在这个实验中,你将学习如何检查 Linux 系统中网络数据包过滤器是否处于激活状态。你将探索使用 iptables
列出防火墙规则的传统方法,并通过列出规则集来研究较新的 nftables
框架。最后,你将通过检查 /proc/sys/net
目录中的相关文件来验证过滤器设置,从而全面了解如何确定 Linux 系统上网络数据包过滤的状态。
在这一步中,你将学习如何使用 iptables
命令查看当前的防火墙规则。iptables
是一个传统的命令行工具,用于配置 Linux 内核防火墙。
防火墙对于网络安全至关重要。它们根据一组规则控制传入和传出的网络流量。这些规则决定是允许还是阻止特定的连接。
要列出当前的 iptables
规则,你将使用 -L
选项。此选项告诉 iptables
列出指定链中的规则。
如果你还没有打开终端,请打开它。输入以下命令并按回车键:
sudo iptables -L
你需要使用 sudo
,因为查看防火墙规则需要管理员权限。
你将看到类似以下的输出:
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
此输出显示了三个默认链的规则:INPUT
、FORWARD
和 OUTPUT
。
INPUT
:控制发往本地机器的流量。FORWARD
:控制通过该机器的流量(用于路由)。OUTPUT
:控制从本地机器发起的流量。policy ACCEPT
表示默认情况下,如果没有匹配的特定规则,这些链中的流量将被允许。
如果配置了特定规则,它们将列在每个链下,显示诸如目标(例如,ACCEPT、DROP)、协议(例如,tcp、udp)、源和目标 IP 地址以及端口等详细信息。
目前,默认配置很简单,但你已经成功使用 iptables
查看了当前规则。
点击 继续 进入下一步。
在这一步中,你将探索 nftables
,它是 iptables
的继任者。虽然 iptables
仍然被广泛使用,但 nftables
为数据包过滤和网络地址转换(NAT)提供了更灵活、高效的框架。
nftables
使用 nft
命令行工具来管理规则集。规则集是由表、链和规则组成的集合,用于定义如何处理网络流量。
要查看当前的 nftables
规则集,你将使用 list ruleset
命令。
在终端中输入以下命令并按回车键:
sudo nft list ruleset
同样,需要使用 sudo
,因为查看防火墙规则需要管理员权限。
你可能会看到类似以下的输出,如果没有配置 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;
}
}
此输出展示了一个基本的 nftables
规则集,其中有一个名为 filter
的表,适用于 ip
地址族。在这个表中,有三个链:INPUT
、FORWARD
和 OUTPUT
,与 iptables
类似。
table ip filter
:为 IPv4 流量定义一个名为 filter
的表。chain INPUT { ... }
:定义输入链。type filter hook input priority 0;
:指定这是一个过滤链,挂钩到输入网络路径,优先级为 0。policy accept;
:将此链的默认策略设置为接受流量。如果定义了特定规则,它们将列在链块内。
比较 iptables -L
和 nft list ruleset
的输出,可以让你了解系统上哪个防火墙系统正在积极管理规则,或者是否两者都存在。在现代系统中,nftables
正逐渐成为默认选择。
你现在已经成功使用 nft
查看了当前的 nftables
规则集。
点击 继续 进入下一步。
在这一步中,你将通过查看 /proc/sys/net
目录下的文件,探索一些内核级别的网络过滤设置。/proc
文件系统是一个虚拟文件系统,它提供有关进程和其他系统信息。/proc/sys
目录包含一些文件,允许你在运行时查看和修改内核参数。
具体来说,我们将查看与网络过滤和转发相关的设置。
使用 cd
命令导航到相关目录:
cd /proc/sys/net/ipv4/conf/all/
/proc/sys/net/ipv4/conf/all/
目录包含适用于所有网络接口的配置文件。
现在,让我们查看一个与转发相关的文件内容。使用 cat
命令显示 forwarding
文件的内容:
cat forwarding
输出可能是 0
或 1
:
0
0
:表示 IP 转发已禁用。这意味着系统不会在不同的网络接口之间转发数据包。1
:表示 IP 转发已启用。这对于路由器或充当网关的系统是必需的。接下来,让我们查看一个与过滤带有源路由选项的传入数据包相关的设置。这个选项有时可能会被恶意利用。查看 accept_source_route
文件的内容:
cat accept_source_route
输出可能是 0
:
0
0
:表示系统将忽略带有源路由选项的数据包。这是一种常见的安全措施。1
:表示系统将接受带有源路由选项的数据包。/proc/sys/net
中的这些文件提供了内核如何配置以处理网络流量的底层视图。虽然 iptables
和 nftables
管理过滤规则,但这些内核参数控制着诸如转发以及如何处理某些数据包选项等基本网络行为。
你现在已经成功使用 /proc
文件系统检查了内核网络过滤设置。
点击 继续 完成实验。
在本次实验中,你学习了如何通过检查常见防火墙工具的配置,来判断 Linux 系统中网络数据包过滤器是否处于激活状态。你首先使用 iptables -L
命令列出了使用传统 iptables
工具配置的当前规则,了解了默认链(INPUT、FORWARD、OUTPUT)及其策略。
接着,你探索了 nftables
——iptables
的现代替代方案,通过使用 nft list ruleset
命令查看其配置。最后,你学习了如何通过检查 /proc/sys/net
目录下的相关参数,在底层验证过滤设置,该目录展示了内核网络配置。