导出fwbuilder规则到一个适合用iptables-restore读取的文件?

fwbuilder似乎总是希望将防火墙规则直接写入运行它们的设备,但是我想将它们写入一个规则文件,然后我可以通过configurationpipe理(ansible)来维护和更新设备。

澄清:希望以适合iptables-restore使用的格式写出规则。

这可能吗?

fwbuilder不会直接生成“直接的”iptables-restore兼容脚本,但是可以做一些修改。 这有两个部分:

首先,在防火墙设置对话框的“脚本”选项卡中选中“使用iptables-restore激活策略”checkbox)。 在同一选项卡中closures生成脚本的所有其他function。

规则是iptables-restore格式,但是由于默认生成的脚本想要将它们发送到iptables-restore的标准input,所以它们是这样生成的:

( echo '*filter' # ================ Table 'filter', automatic rules echo :INPUT DROP [0:0] echo :FORWARD DROP [0:0] echo :OUTPUT DROP [0:0] # accept established sessions echo "-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT " echo "-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT " echo "-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT " # ================ Table 'filter', rule set Policy # # Rule 0 (global) echo ":Cid5468X36359.0 - [0:0]" . . . . . . . . echo "-A POSTROUTING -o eth1 -s 10.0.18.0/24 -j SNAT --to-source 74.123.224.162 " echo "-A POSTROUTING -o eth1 -s 10.0.22.0/24 -j SNAT --to-source 74.123.224.162 " # echo COMMIT ) | $IPTABLES_RESTORE; IPTABLES_RESTORE_RES=$? 

你可以用你自己的实用工具replace真正的iptables-restore,它会从stdin中select这些规则,并将它们存储在一个文件中,这将是正确的iptables-restore格式(这是你想要的)。 该实用程序可以是简单的,如“tee文件”。 要接pipeiptables-restore,在防火墙属性中打开“主机操作系统设置”对话框,转到选项卡“path”并更改iptables-restore的path,用path和实用程序名称或脚本replace它。

由于您不使用fwbuilder期望的默认脚本格式,因此其内置的策略安装程序将无法工作。 所以你需要做的是运行生成的脚本来生成正确的iptables-restore文件,然后将其安装在它所属的位置。 后半部分由您决定。

您还可以更改生成的脚本的格式以删除不需要的部分。 生成的脚本是使用您可以修改的模板构build的。 请参阅用户指南的第13章“configuration”。 这个想法是“生气”生成的脚本只留下应该已经在iptables恢复格式的iptables规则,并删除所有其他的东西。 我认为规则仍然是“echo -A INPUT …”的forms,所以你需要真正运行生成的脚本来获得所需格式的规则。