为什么流量匹配的是公共区域而不是所需区域?

为什么流量匹配的是公共区域而不是所需区域?

尝试自我训练,firewalld我设置了 apache 并配置了区域,如下所示:

[root@localhost ~]# firewall-cmd --get-active-zones
work
  sources: 192.168.122.1
public
  interfaces: ens3
[root@localhost ~]# firewall-cmd --zone=work --list-all
work
  interfaces:
  sources: 192.168.122.1
  services: dhcpv6-client ipp-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

[root@localhost ~]# firewall-cmd --zone=public --list-all
public (default, active)
  interfaces: ens3
  sources:
  services: dhcpv6-client http https ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

我的预期结果是来自虚拟机管理程序的流量将与“工作”区域匹配,并且由于该区域不允许使用 http,因此它会被丢弃。但是我仍然可以从那里访问该网页:

在此输入图像描述

我知道流量与“公共”区域匹配,因为删除“http”和“https”服务会导致网络流量停止,将它们添加回公共区域会恢复服务,而对“工作”区域进行相同的修改则不会执行任何操作。

我确信这是我的理解失败,但我无法发现它。

更新

仍然有这个问题。如果我从中删除接口public并将其添加到work它,它就会开始工作,但这很可能是因为所有ens3流量现在都将流向该区域。我将iptable -Z数据包计数归零,并验证了与该public区域关联的链是否正在获取数据包。

有趣的是,如果我这样做--add-source,它将流量添加到dropblock区域,它会按照我预期的方式工作(无论区域上配置了什么服务,流量都会被丢弃/拒绝public)。

以下是运行防火墙的服务器上 netstat 的输出:

[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask        Flags   MSS Window   irtt Iface
0.0.0.0         192.168.122.1   0.0.0.0        UG        0 0           0 ens3
192.168.122.0   0.0.0.0         255.255.255.0  U         0 0           0 ens3

相关内容