持久化 iptables

maa*_*nus 2 iptables persistence iptables-persistent

我刚刚阅读了关于iptables-persistent 的文章,我完全迷失了设计。我不是唯一一个不明白它是如何工作的,但实际上它似乎超出了我的想象。

我想象了类似crontab -e 的东西:你编辑一组规则,当编辑器关闭时,它们会被持久化和应用。它们存储在某个地方,而我作为用户不知道在哪里。不要告诉我;这是完美的方式。

有这样的工具吗?为什么iptables-persistent以这种难以遵循的方式工作?

iga*_*gal 6

通常,您可以使用文本编辑器编辑 IPv4 的活动 iptables 规则,方法是使用iptables-save命令将规则写入文件,然后iptables-restore在完成后使用命令重新加载新规则,例如:

user@host:~$ iptables-save > rules.v4
user@host:~$ vim rules.v4
user@host:~$ iptables-restore rules.v4
Run Code Online (Sandbox Code Playgroud)

对于 IPv6,您将使用类似的命令ip6tables-saveand ip6tables-restore,即:

user@host:~$ ip6tables-save > rules.v6
user@host:~$ vim rules.v6
user@host:~$ ip6tables-restore rules.v6
Run Code Online (Sandbox Code Playgroud)

该iptables-persistent服务在以下位置进行检查:

/etc/iptables/rules.v4
/etc/iptables/rules.v6
Run Code Online (Sandbox Code Playgroud)

因此,要应用您的规则并使它们持久化,您将按照与上述相同的步骤进行操作,但要iptables-persistent改为编辑文件,例如:

user@host:~$ iptables-save > /etc/iptables/rules.v4
user@host:~$ vim /etc/iptables/rules.v4
user@host:~$ iptables-restore /etc/iptables/rules.v4
Run Code Online (Sandbox Code Playgroud)

我不知道像您所描述的那样用于编辑 iptables 规则的交互式命令,但是使用自己的命令应该很容易。这是一个简单的例子:

user@host:~$ iptables-save > rules.v4
user@host:~$ vim rules.v4
user@host:~$ iptables-restore rules.v4
Run Code Online (Sandbox Code Playgroud)

这实际上与工作方式没有太大区别crontab -e,它只是自动将活动的 crontab 保存到/var/spool/cron/crontabs目录中的文件中,这就是导致 crontab 持久化的原因。有关此主题的进一步讨论,请参阅以下帖子:

您可能还对以下脚本感兴趣:

不过我不能保证。我从来没有用过它。这只是我通过搜索交互式 iptables 编辑找到的唯一内容。