在firewalld中实际为接口配置的区域在哪里?

在firewalld中实际为接口配置的区域在哪里?

我正在使用 ansible 将区域添加到 Centos 计算机上的防火墙。直到(几乎)太晚才意识到,我没有让 IN_Internal 接口正常工作,所有这些都将公开,这是由firewalld.conf 定义的默认值。

这是我的internal.xml

<?xml version="1.0" encoding="utf-8"?>  
<zone>
  <short>Internal</short>
  <description>For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <interface name="eth0"/>
  <service name="ipp-client"/>
  <service name="mdns"/>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>  
</zone>

看起来根本没有被使用过。

因为,无论出于何种原因,我最终都会得到:

 Chain IN_internal (0 references)
      2   120 IN_public  all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           [goto]

不明白为什么会发生这样的事情。

当我这样做时firewall-cmd --zone=internal --change-interface=eth0,它可以工作(即使在我重新加载防火墙之后),但它是完全相同的 XML

由于我使用 ansible 部署我的设置,并且没有在计算机上运行firewall-cmd,所以我想知道firewall-cmd 在幕后做什么,以便我可以推出这些配置。

答案1

man 5 firewalld.zones声称

如何设置或更改连接区域?

该区域存储在与 的连接的 ifcfg 中ZONE=option。如果该选项缺失或为空,则使用firewalld 中设置的默认区域。

相关内容