如何使一组特定的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/