如何使一组特定的 iptables 规则永久生效?

如何使一组特定的 iptables 规则永久生效?

是否有“最佳实践”或标准来使一些 iptables 规则永久生效?我的意思是:在系统重启时自动应用?

我正在使用带有 Ubuntu Server 10.04 LTS(Lucid Lynx)的 VPS。

谢谢。

重大修改:我不希望任何规则被保留(就像iptables-persistent包一样)。我只希望重新加载我自己的特定集合...如果最终通过运行 iptables 添加了其他规则,则应丢弃这些规则...

答案1

最简单的方法是使用 iptables-保存iptables-恢复将当前定义的 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

答案2

对此进行快速更新,因为您现在可能正在使用 12.04,并且情况有所改善。

iptables-persistent软件包现在解决了这个问题。要安装,

sudo apt-get install iptables-persistent

安装软件包时定义的规则会被保存并在每次后续启动时使用。新加载的规则会在重启时被丢弃。

如果您确实需要更改它们(一旦iptables-persistent安装), /etc/iptables/rules.v4则 配置文件/etc/iptables/rules.v6分别针对 ipv4 和 ipv6 iptables。

答案3

更好的方法是在保存 iptable 规则后/etc/rc.local添加一行,如下所示/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/

相关内容