将防火墙规则重置为默认值?

将防火墙规则重置为默认值?

在 CentOS 7 上,我一直在尝试不同的 Firewalld 规则和 iptables 命令,现在想重新做一遍,但只使用 Firewalld。

问题

如何将所有规则重置为 CentOS 7 的防火墙附带的默认规则?

答案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

顺便说一句,yum reinstall firewalld不会替换修改后的配置文件。

相关内容