Ubuntu 12.04 LTS-iptables v1.4.12
TLDR:
调用时iptables的规则集保存在iptables-save <ruleset-name>
哪里?
说明:
根据此答案,保存iptables规则的基本方法是调用
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
然后/etc/network/interfaces
像这样加载/恢复这些规则:
iface eth0 inet static
....
pre-up iptables-restore < /etc/iptables/rules.v4
pre-up ip6tables-restore < /etc/iptables/rules.v6
...或将它们放入shell脚本中/etc/network/if-pre-up.d
。
通过安装iptables-persistent
软件包可以简化此过程。
sudo apt-get install iptables-persistent
inovoke-rc.d iptables-persistent save
update-rc.d iptables-persistent defaults
在尝试了一些教程之后,我尝试调用service iptables status
该命令(对于iptables
预装有12.04 的版本/软件包不存在/未知的命令),并发现了以下有趣的输出:
Aborting iptables initd: unknown command(s): "status".
...
save <ruleset>
save the current ruleset
load <ruleset>
load a ruleset
...
Saved rulesets:
active, inactive
...
我似乎可以加载(active
和inactive
)两个规则集...
..但是这些存放在哪里?
我找不到他们的位置,因为有效/无效是非常糟糕的搜索字词,dpkg-query -L iptables
也无济于事。
当我为服务器配置puppet
/ chef
时,很高兴知道在哪里可以放置规则集并添加一个简单的Shell脚本/etc/networking/if-pre-up
来加载它们。
然后,我可以忽略iptables-persistent
不灵活的程序包,因为它不允许加载不同的规则集。
谢谢你的帮助。