Linux Iptables 列出所有规则
Iptables 是一个对于许多 Linux 平台的网络安全至关重要的网关。由于许多 iptables 教程指南将演示如何编写网关规则来保护您的 Linux 系统,因此本文将重点介绍防火墙管理的多种功能:列出 iptables 规则。假设在您的 Linux 服务器中,您最近公开了 NAT 设置。在 Ubuntu 中,如何查看最近编写的规则以及行号?本文假设您正在使用加载了 iptables 函数的 Linux 平台,并且您的帐户具有 root 访问权限。因此,让我们从 Ubuntu 20.04 系统登录开始今天的文章,因为我们将在其 shell 上执行所有命令。要打开 Linux 终端,您需要在成功登录后立即尝试使用 Ctrl+Alt+T 快捷键。
按规格列出规则:
在执行任何操作之前,请确保您的系统是最新的并已升级。如果没有,请在 shell 上尝试 apt “update” 和 “upgrade” 命令。首先,我们来看看如何生成规则列表。操作 iptables 规则可以通过两种不同的方式来查看:表格形式或规则参数列表。两种方法以略有不同的格式提供完全相同的内容。因此,如果您想按功能或规范列出当前启用的所有“iptables”规则,您可以通过简单的“iptables”命令后跟“-S”标志来实现。在这种情况下,请确保使用“sudo”关键字。执行时它会提示输入 sudo 密码。写下您的密码,按 Enter 键,然后获取 iptables 规则及其规范列表,如下面的输出图像所示。
您可以根据您的选择使用上图中列出的所有命令。上面 iptables 命令的输出显示了“Ipv4”的许多 iptables 命令,可以完美地执行许多操作。您还可以使用如下所示的 ip6tables 命令列出 Ipv6 的规则。输出如下面的截图所示。
上面的命令都是列出我们系统中 Ipv4 和 Ipv6 的所有规则。如果您想避免这种情况并按名称显示一些特定规则,您也可以这样做。您只需在 iptables 命令中的“-S”标志后面指定链名称,就可以了。我们想要列出我们系统的 Ipv6 中 INPUT 链的所有规则。我们必须在“-S”标志后面使用“INPUT”字,如下所示,我们将看到规则单独显示,而不是一个巨大的列表。输出如下面的截图所示。
某些特定链可能没有在您的系统上指定规则。当我们想要检查我们系统的 TCP 链的所有规则规范时,我们发现我们的 iptables 没有“TCP”名称链。输出如下面的截图所示。
如果您想以表格形式显示某些特定链的 iptables 规则,则必须在 iptables 命令中使用“-L”标志。因此,我们一直在使用图像中演示的命令中的“-L”选项来显示 shell 上“FORWARD”链的所有 iptables 规则。它以表格形式显示“FORWARD”链的规则,并将规则指定为列,即目标、源、prot、opt、目的地。目标列将显示当特定数据包与某些 iptables 规则匹配时要关闭/关闭的对象。第一列将显示该规则使用的协议,选择列将显示该规则的一些额外选项。 “源”列是源的 IP 地址或名称,“目的地”指定名称或 IP 或目标。输出如下面的截图所示。
iptables 命令还提供了显示与特定链的规则匹配的数据包总数及其包含的字节大小的选项。我们必须在 iptables 命令中使用“-v”选项。如果你想以表格的形式列出输出数据,你也可以尝试使用“-t”标志。我们一直在命令中使用“—line-numbers”选项来列出行号和 NAT 规则。您将检查输出数据是否更有条理。我们对“nat”服务使用了如下所示的命令,并获得了巨大的表作为输出。我们有“pkts”列显示与规则匹配的数据包,“bytes”列显示数据包包含的字节数,以及许多其他列。它还显示 NAT 链的所有规则,即 INPUT、OUTPUT。 “num”列显示规则的行号。输出如下面的截图所示。
结论:
最后!我们已经使用 shell 应用程序在 Ubuntu 20.04 中列出了 iptables 规则。我们已经了解了简单的 iptables 命令以列表和表格的形式显示规则。我们研究了不同的选项,如 –S、-L、-n、-v、-t 以满足特定目的。我们还利用“—line-numbers”选项来显示规则的行号。