如何使一组特定的iptables规则永久化?
是否有一个“最佳实践”或标准,使一些iptables规则永久? 我的意思是:自动应用于系统重启?
我正在使用VPS与Ubuntu Server 10.04 LTS(Lucid Lynx)。
谢谢。
大编辑:我不希望任何规则被持久化(就像iptables-persistent
包那样)。 我只想重新加载我自己的特定集…如果最终通过运行iptables添加其他规则,这些应该被丢弃……
最简单的方法是使用iptables-save和iptables-restore将当前定义的iptables规则保存到文件中并(重新)加载它们(例如,重启时)。
所以,举个例子,你会跑
sudo iptables-save | sudo tee /etc/iptables.conf
将当前的iptables规则保存到/etc/iptables.conf
,然后在/etc/rc.local
插入这些行:
# Load iptables rules from this file iptables-restore < /etc/iptables.conf
对此进行快速更新,因为您现在可能正在使用12.04,事情会更好。
iptables-persistent
包现在解决了这个问题。 安装,
sudo apt-get install iptables-persistent
安装软件包时定义的规则将保存并在每个后续引导时使用。 加载的新规则在重新启动时被丢弃。
配置文件,如果你确实需要更改它们(一旦安装了iptables-persistent
),分别是/etc/iptables/rules.v4
和ipv6 iptables的/etc/iptables/rules.v4
或/etc/iptables/rules.v6
。
比/etc/rc.local
更好的是在保存iptable的规则后在/etc/network/interfaces
添加一行,就像这样
post-up iptables-restore < /etc/iptables.up.rules
或者将文件放在/etc/network/if-down.d/
或/etc/network/if-post-down.d/
或/etc/network/if-pre-up.d/
或/etc/network/if-up.d/
。