每次启动时我都需要恢复 iptable 规则吗?

每次启动时我都需要恢复 iptable 规则吗?

每次我重启,我都会丢失那些花了很长时间才输入的 iptables 规则。我知道我可以保存它们并在启动时恢复它们,但有没有办法永久保存它们?我真的需要在每次启动时恢复它们吗?真的吗?

问题是我有一个庞大的名单我使用 while 循环来加载 IP。这可能需要 10 分钟以上。

这是我的家庭 FTP 服务器。这是一个小型虚拟机,内存为 1GB,处理能力非常弱。IP 数量如此之多,是因为我已经基本放弃了亚洲大陆。我不需要他们每天用暴力攻击我的 FTP 服务器。我还会屏蔽政府监控器、跟踪器和垃圾邮件发送者。

这是我用来加载列表的 while 循环。

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done

答案1

apt-get install iptables-persistent

安装时,它应该会保存您当前的 iptables 配置。否则,您可以将它们保存到这些文件中(取决于 v4 或 v6),iptables-persistent 将在启动时加载它们 :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

答案2

首先,创建一个文件,内容如下iptables-save

sudo iptables-save > /etc/iptables_rules

文件放在哪里其实并不重要,你只需要确保下一行指向同一个文件。接下来,打开/etc/rc.local并添加以下行:

/sbin/iptables-restore < /etc/iptables_rules

从现在开始,每次您的计算机启动或重新启动时,iptables 都会从您指定的文件中加载规则。

答案3

如果您确实有很多规则,您还应该考虑将 ipset 与 iptables 结合使用。Ipset 使用索引数据库表,在查找地址以决定是接受还是拒绝时比 iptables 快得多。

http://ipset.netfilter.org/index.html

相关内容