当指定并匹配“源”时,Almalinux 9 中的防火墙不会应用其他区域

当指定并匹配“源”时,Almalinux 9 中的防火墙不会应用其他区域

我正在从 Almalinux 8 (RedHat 8) 迁移到 Almalinux 9 (RedHat 9),并且出现了奇怪的行为防火墙

以下是我的配置(由列出firewall-cmd --list-all-zones):

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: cockpit dhcpv6-client
  ports: 443/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

ssh-4-me (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 111.111.0.0/16
  services: ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

目的是 - 仅允许来自受信任主机子网的 SSH。它在 Almalinux 8 上的工作方式与我预期的一样,但在 Almalinux 9 上,似乎一旦源适合111.111.0.0/16区域,ssh-4-me (active)则仅应用该区域中明确指定的规则 - 即我可以连接到 SSH,但无法连接到通过public区域允许的 443。如果我明确将 443 添加到区域,连接就会开始工作ssh-4-me,但这种方式假设我需要将所有内容从复制publicssh-4-me,我不喜欢这种方法。

我想还存在一些我不知道的其他“配置选项”,可以防止public在这种情况下应用区域。

如何修复?如何强制防火墙使用该public区域,即使与source另一个区域匹配?

答案1

我也遇到了这个问题。

这实际上是一种行为改变:https://firewalld.org/2020/01/allowzonedrifting

不幸的是,无法在 RHEL 9 及其衍生版本中启用 AllowZoneDrifting。我在 AlmaLinux 9 上测试过,但没有成功,Red Hat 文档确认此设置被忽略了。

相关内容