Centos

iptables 規則不會在 CentOS 6.x 上重新載入

  • June 30, 2014

iptables在 CentOS 6.x 機器上添加了一個 ipset,當機器重新啟動時,此規則會失去。

我發現**這個答案**顯示瞭如何讓 Ubuntu 系統iptables在重新啟動後重新載入規則,但這個目錄在 CentOS 上不存在。

重啟後如何讓這個 CentOS 機器載入防火牆規則?

**注意:**是的,我正在使用保存規則iptables save並且正在保存文件。

這是裡面的內容/etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Mon Apr  8 09:52:59 2013
*filter
:INPUT ACCEPT [2713:308071]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1649:1766437]
-A INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state INVALID,NEW,RELATED,ESTABLISHED -m set
--match-set blocking src -j DROP 
COMMIT
# Completed on Mon Apr  8 09:52:59 2013

該命令顯示-A INPUT,但是當我創建它時,我使用了-I INPUT.

用於創建此規則的規則是:

iptables -I INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state NEW,ESTABLISHED,RELATED,INVALID -m set --set blocking src -j DROP

您失去了規則,因為:

添加規則後,您必須在重新啟動服務或伺服器之前進行保存。因為當您添加規則時,它們在記憶體中,但保存後它們將保存在文件中並在啟動時從該文件恢復。

所以首先您需要使用以下方法保存添加的規則:

$ /etc/init.d/iptables save

這會將所有規則保存在 中/etc/sysconfig/iptables,然後只需在啟動時使用以下命令啟用 iptables 服務:

$ chkconfig --level 53 iptables on

方法二

保存規則:

$ /sbin/iptables-save  > /etc/iptables.rules

要恢復規則 [在下面添加條目/etc/rc.local]:

$ /sbin/iptables-restore < /etc/iptables.rule

引用自:https://unix.stackexchange.com/questions/71661