问题描述
是否有”best practice”或标准使一些iptables规则永久化?我的意思是:自动应用于系统重启?
我正在使用VPS与Ubuntu Server 10.04 LTS(Lucid Lynx)。
谢谢。
大编辑:我不希望任何规则被保留(如iptables-persistent
包)。我只想重新加载我自己的特定集…如果最终通过运行iptables添加其他规则,这些应该被丢弃……
最佳解决办法
最简单的方法是使用iptables-save和iptables-restore将currently-defined 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
),则分别为ipv4和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/
中。