centOS 7 防火墙D删除直接规则

centOS 7 防火墙D删除直接规则

在将系统从 6.5 升级到 7 后,我开始学习实现动态防火墙,但是,我错误地添加了以下规则

防火墙命令 --permanent --direct --add-rule ipv4 过滤器 OUTPUT 1 -j DROP

这导致机器将所有输出都丢弃到外部,

我尝试使用

防火墙命令 --permanent --direct --remove-rule ipv4 过滤器 OUTPUT 1 -j DROP

欢迎大家回来。

然而,之后

防火墙-cmd——重新加载

防火墙命令--direct --get-all-rules

,我发现这个规则又自动回来了。

我甚至尝试过

防火墙-cmd——complete-reload

但没有效果。

我现在能做什么?

答案1

最后我发现删除命令只能一次性工作,因为规则记录在direct.xml

因此,解决方案很简单,编辑direct.xml并注释相应的行或删除它们。

答案2

在与顽固的重定向规则搏斗之后,我通过测试意识到了以下问题:

  1. iptables规则数据库是暂时的
  2. firewall-cmd --permanent规则数据库在重启后仍然存在,iptables重启后重写规则数据库

  3. firewall-cmd --permanent --direct规则数据库存储在/etc/firewalld/direct.xml尽管firewall-cmd [--permanent] --direct --remove-rule数据库文件被删除

  4. firewall-cmd [--permanent] --direct --query-rule会撒谎关于规则的持久性/etc/firewalld/direct.xml

答案3

刚刚尝试了同样的事情,运行后我的 direct.xml 被清空了

firewall-cmd --direct --remove-rule ...

没有 --permanent 选项。
重新加载后,没有直接删除的规则。

使用此选项后,规则将在重新加载后恢复。

答案4

无需命令 direct.xml 文件。执行以下操作:

# systemctl restart firewalld

那就行了。

相关内容