Centos
iptables 規則不會在 CentOS 6.x 上重新載入
我
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