如何删除firewalld中的预配置区域

如何删除firewalld中的预配置区域

我无法删除任何预先配置的区域。

[root@fabian ~]# firewall-cmd --permanent --delete-zone=block
Error: BUILTIN_ZONE: block
[root@fabian ~]#

我有办法做到这一点吗?如果我只是删除相应的区域文件,firewalld 将不会启动。

如果不能做到这一点,为什么人们无法摆脱这个内置区域呢?光是看看预定义的空防火墙就让我感到恶心:

[root@fabian ~]# firewall-cmd --list-all-zones
block
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

dmz
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

drop
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

external (active)
  interfaces: enp0s26u1u1
  sources: 
  services: 
  ports: 
  masquerade: yes
  forward-ports: 
  icmp-blocks: 
  rich rules: 

home
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

internal (default, active)
  interfaces: enp4s0
  sources: 
  services: ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

public
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

trusted
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

work
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

[root@fabian ~]#

请救救我。

答案1

默认区域存储在此目录中:

/usr/lib/firewalld/区域

在谷歌搜索firewall-cmd默认区域后提取以下内容:

[https://www.linode.com/docs/security/firewalls/introduction-to-firewalld-on-centos]

配置FirewallD

Firewalld 使用 XML 文件进行配置。除了非常具体的配置之外,您不必处理它们,而应该使用firewall-cmd。

配置文件位于两个目录中:

/usr/lib/FirewallD holds default configurations like default zones and common services.   Avoid updating them because those files will be overwritten by each firewalld package update.

/etc/firewalld holds system configuration files. These files will overwrite a default configuration.

话虽如此......我从 /usr/lib/FirewallD/zones 中删除了一个名为internal的内置区域并重新加载了firewalld,并且在执行--list-all-zones时该区域仍然存在。

因此,我从 /etc/firewalld/zones 中删除了内部区域并重新加载了防火墙,现在内部区域已经消失了。

包更新后会不会回来,不知道也没有尝试过。

答案2

我的 Debian bullseye 系统有一个文件/etc/firewalld/zones/docker.xml,这导致我的防火墙有一个区域docker(执行时可见firewall-cmd --list-all-zones)。

摆脱区域的唯一方法docker是删除该文件:

rm /etc/firewalld/zones/docker.xml

答案3

在 GitHub 上,对此的功能请求被跟踪为第897章。似乎并非所有内置区域都可以由用户删除,因为 firewalld 预计它们的存在会在极少数情况下使用它们。尽管对该问题的讨论表明消除这些案例应该是可能的。

(我相当新,希望将此链接与该解释放在一起作为其自己的答案是合适的。)

相关内容