將防火牆規則重設為預設值?

將防火牆規則重設為預設值?

在 CentOS 7 上,我一直在嘗試不同的firewalld規則和iptables指令,現在想重新做一遍,但只使用firewalld。

問題

如何將所有規則重設為 CentOS 7 的 firewalld 附帶的預設值?

答案1

以下程式碼可能對您有幫助。

for srv in $(firewall-cmd --list-services);do firewall-cmd --remove-service=$srv; done firewall-cmd --add-service={ssh,dhcpv6-client} firewall-cmd --runtime-to-permanent

問候,

阿默·曼蘇爾

答案2

如果你真的想像約翰·阿什普爾(John Ashpool)所說的那樣刪除所有內容

rm -rf /etc/firewalld/zones或 /usr/etc/firewalld/zones 取決於您的發行版

iptables -X
iptables -F
iptables -Z

systemctl restart firewalld

然後你就有了一套新的規則和區域;)

答案3

/etc/firewalld/zones您可以簡單地從(或/usr/etc/firewalld/zones,取決於發行版)中刪除包含自訂區域規則的檔案。之後,firewalld使用重新加載firewall-cmd --complete-reload,它應該開始使用預設設定。當您變更區域規則時,檔案將再次出現在該目錄中。

至於iptables,您可以使用 重置所有規則iptables -F。除非您實施了某種持久性,否則重新啟動也有效。請注意,它firewalld可能被配置為用作iptables其後端,這意味著它將iptables根據您在其區域規則中指定的內容自行新增或刪除規則。

答案4

zones發行版附帶的任何預設值(如果進行了修改)都會複製到/etc/firewalld/zones包含這些修改的目錄中。

這也意味著區域文件的來源default不是該目錄,並且重新安裝不知道該目錄(/etc/firewalld/zones)下的文件,因此這些文件將untouched透過重新安裝來獲得。除非這些檔案被刪除,否則firewalld 會繼續從此目錄載入您的修改。

您可以備份並(安全地)刪除所有這些文件,/etc/firewalld/zones然後重新啟動firewalld,然後防火牆將返回預設發行版安裝的區域配置。

從某種意義上來說是安全的,預設分發區域配置預設允許 SSH。但是,如果您透過 22 以外的 SSH 連接埠或透過 SSH 以外的任何其他方式登入此伺服器,那麼您需要小心,從 /etc/firewalld/zones

sudo cp -pR /etc/firewalld/zones /etc/firewalld/zones.bak
sudo rm -f /etc/firewalld/zones/*
sudo systemctl restart firewalld

如果修改了任何其他設定文件,可以重新安裝firewalld本身,但需要下載firewalld RPM才能重新安裝。

安裝yum-downloadonly插件:

(RHEL5)
# yum install yum-downloadonly
(RHEL6, RHEL7)
# yum install yum-plugin-downloadonly

在使用該插件之前,請檢查並/etc/yum/pluginconf.d/downloadonly.conf確認該插件是enabled=1

# yum install --downloadonly --downloaddir=/tmp firewalld
# rpm -ivh --force /tmp/firewalld*.rpm

BTWyum reinstall firewalld不會替換修改後的設定檔。

相關內容