在CentOS上保存iptables,并将以前的规则与新保存的规则合并?

在CentOS上保存iptables,并将以前的规则与新保存的规则合并?

我使用命令添加了一些新规则,然后使用如下所述iptables保存它们:/sbin/service iptables save

之后,/etc/sysconfig/iptables文件中仅显示我的新规则。所有旧规则/etc/sysconfig/iptables.save现在都在文件中。

据我了解,当系统重新启动时,将应用新规则,但不会应用旧规则。我怎样才能同时应用它们——新规则和旧规则?

答案1

我认为你的问题是,当你添加新规则时,你的旧规则集没有加载。因此,当您保存时,它只保存了新添加的规则并覆盖了所有旧的规则。

当您开始在规则集中添加或删除规则时,必须首先使用service iptables start.然后您可以进行编辑,然后将service iptables save当前规则集保存回/etc/sysconfig/iptables.这样您就不必进行任何合并。

如果您现在想合并这两个文件,则必须进行一些手动编辑。例如,加载其中一个规则,然后手动复制粘贴要从另一个规则合并的规则,并使用命令插入它们iptables,然后service iptables save再次执行此操作以保存到配置文件中。

为了确保下次重新启动时自动加载文件中的规则,请执行 操作chkconfig iptables on,这会将 iptables 服务添加到默认运行级别。

答案2

我认为您唯一的选择是使用文本编辑器手动合并这两个文件。这两个文件中的条目只是纯文本,因此您应该能够相当轻松地完成此操作。

例子

这是我的文件/etc/sysconfig/iptables

$ sudo more /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 631 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

合并其他文件中的条目时,/etc/sysconfig/iptables.save您只需确保顺序保持完整即可。因此,如果您有-A INPUT ...该文件中的行,我会将它们放在已经存在的行的末尾。

我也会遵守类似的规则。因此,将表的条目放在INPUT一起,并将FORWARD表的规则放在一起。

参考

相关内容