当前位置: 首页>>技术问答>>正文


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

, , , , ,

问题描述

是否有”best practice”或标准使一些iptables规则永久化?我的意思是:自动应用于系统重启?

我正在使用VPS与Ubuntu Server 10.04 LTS(Lucid Lynx)。

谢谢。

大编辑:我不希望任何规则被保留(如iptables-persistent包)。我只想重新加载我自己的特定集…如果最终通过运行iptables添加其他规则,这些应该被丢弃……

最佳解决办法

最简单的方法是使用iptables-saveiptables-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/中。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2513.html,未经允许,请勿转载。