使用服务器时必须定义网络过滤规则,以确保系统的安全。对于Linux系统管理员来说,经常需要添加、恢复或更新iptables中定义的网络防火墙规则。好消息是这个过程很简单,但是当您定义了规则并且它们在重新启动后丢失时,它可能会变得烦人。

通常,定义的规则设置为维持到下次重新启动为止。如果使用复杂且多个规则,您可能需要保存它们。如果您不知道如何进行此操作,Linux iptables-save 命令可以完成这项工作。本指南涵盖了该命令的实际用法。

使用 Iptables 规则

要过滤网络流量,必须明确定义 iptables 规则。定义的规则存储在系统内存中。因此,规则不是持久的。当系统重新启动时,您必须重新定义规则。使用很少的规则是很实用的。但是当您有多个共同规则时该怎么办?解决办法就是拯救它们,并且有一种方法可以做到。

1. 查看可用规则

如果您不确定已经设置的规则,您可以随时列出它们。 iptables 命令提供了一些用于列出规则的选项。使用以下命令列出行号中的规则:

sudo iptables -L -n -v

目前,我们没有为此示例设置防火墙规则,但我们稍后将添加它们。您的输出应该显示设定的规则。

让我们创建一个新规则。

2.添加iptables规则

iptables 允许定义网络的防火墙规则。对于我们的示例,我们将创建一条规则来阻止来自特定 IP 地址的所有连接。我们的目标 IP 是 192.12.34.2,我们将使用以下规则阻止其连接:

sudo iptables -A INPUT -s 192.12.34.2 -j drop

继续并列出可用的规则。在这种情况下,我们将看到添加的新规则。

但是,如果我们重新启动系统并检查相同的 iptables 规则,该规则将会丢失。为了避免每次系统重新启动时清除规则,我们应该在添加文件后保存它们。

3.保存Iptables规则

保存防火墙规则的命令是iptables-save。通过使用它,您可以指定要保存的文件并在以后访问它。

要保存规则而不指定文件,请运行下图所示的命令:

此方法的缺点是您无法从文件中恢复规则。

要将文件保存到文件中,例如保存到名为 rules.v4 的文件中,命令将为:

sudo iptables-save > /etc/iptables/rules.v4

请记住,在执行该命令之前,您必须是 root。

现在,让我们重新启动系统并打开 iptables 以确认是否定义了任何规则。

从输出来看,当前没有设置任何规则。但是,与我们必须再次创建规则不同,我们现在可以从文件中恢复保存的规则。

4. 恢复iptables规则

恢复规则的过程很容易。您只需指定文件的路径,如以下命令所示:

iptables-restore < /etc/iptables/rules.v4

恢复后,您可以打开 iptables 查看可用的规则。

就是这样!我们已恢复之前创建的规则以供会话使用。将来使用相同的规则所需要做的就是从文件中恢复它们。此外,您还可以根据需要更新它们。

结论

您不再需要因重新启动后丢失防火墙规则而感到沮丧。我们介绍了如何使用 iptables-save Linux 命令,该命令可让您保存规则并在必要时从文件中恢复它们。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注