CentOS 7 下使用 iptables


系統升級到CentOS 7後總感受iptables怪怪的,好比無論怎麼保存重啓後都被初始化一下,即使我最後發大絕招啓動時候加命令:
首先iptables-save > /etc/iptables.rules保存當前狀態。
而後再在/etc/rc.local中強制加上linux

/etc/rc.local
 

iptables-restore /etc/iptables .rules

重啓後雖然規則生效但仔細看規則仍是一些被莫名添加的額外的內容,讓人非常不爽。
web

仔細一google,發現問題之所在了。RedHat在7中更改了系統軟件,再也不使用iptables做爲系統的防火牆,而是使用了FirewallD,可是爲了兼容過去的命令也可使用iptables來設置防禦規則,但啓動的時候自搞了一套。c#

解決方法也很簡單。google

首先,能夠考慮follow官方的想法轉用FirewallD。其實查看一些官方文檔也能用。
可是,我的以爲若沒有顯著的提高也能夠繼續使用原來的iptables。若打算繼續使用iptables, 能夠繼續作以下:spa

備份當前規則rest

1
iptables-save > iptables.rules

禁用FireWallD,安裝&啓用iptables-services
systemctl stop firewalld
systemctl mask firewalld
yum install  iptables-services -y 
systemctl enable  iptables
  

這時候檢查iptables發現規則被清空了code

1
iptables -L -x -n

將備份的規則還原orm

1
iptables-restore iptables.rules

保存當前規則ip

1
/usr/libexec/iptables/iptables .init save

若使用minimize版本的安裝,可能會出現提示ci

iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 274: restorecon: command not found

這是由於selinux沒有安裝的緣故,缺乏一個組件。安裝policycoreutils便可。

1
yum install policycoreutils -y
相關文章
相關標籤/搜索