firewalld: две сетевые карты, две зоны. Зона игнорируется

firewalld: две сетевые карты, две зоны. Зона игнорируется

У меня есть сервер под управлением CentOS/RHEL 7.7 с двумя сетевыми интерфейсами. Эти интерфейсы настроены и работают правильно. Первый интерфейс, ens33, является частью зоны firewalld "public". Все правила, применяемые к этой зоне, работают правильно. Второй интерфейс, ens37, также работает так, как и ожидалось, будучи членом зоны "public". Я создал вторую зону, "GLZ", которая имеет набор правил, специфичных для функции второго интерфейса. Я не могу заставить какие-либо правила из зоны GLZ вступить в силу на этом интерфейсе. Я много раз настраивал этот тип настройки с помощью iptables в прошлом, но, похоже, не могу добиться желаемого эффекта с firewalld. Мне кажется, что я упускаю что-то фундаментальное в firewalld, но не знаю, что именно. Ниже приведены подробности:

Скрипт установки:

NEWZONE="GLZ"

# create the new zone
firewall-cmd --permanent --new-zone=$NEWZONE
firewall-cmd --reload

# add the second NIC to the zone
firewall-cmd --permanent --zone=$NEWZONE --change-interface=ens37
# set zone target
firewall-cmd --zone=$NEWZONE --permanent --set-target=default
firewall-cmd --reload

# open necessary ports
firewall-cmd --permanent --zone=$NEWZONE --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 port protocol=tcp port=80 accept'
firewall-cmd --permanent --zone=$NEWZONE --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 port protocol=tcp port=443 accept'
# setup forwarding (see https://docs.fedoraproject.org/en-US/Fedora/19/html/Security_Guide/sec-Configure_Port_Forwarding-CLI.html)
firewall-cmd --permanent --zone=$NEWZONE --add-masquerade
firewall-cmd --permanent --zone=$NEWZONE --add-forward-port=port=22:proto=tcp:toport=2222
firewall-cmd --reload

Судя по выходным данным --info-zone, все выглядит нормально. Обе зоны активны, и каждой зоне назначен соответствующий сетевой интерфейс. Любые изменения, которые я вношу в публичную зону, влияют на трафик на обоих интерфейсах, и ни одно из правил, которые я добавляю или удаляю из зоны GLZ, не имеет никакого значения.
Вывод:

$ sudo firewall-cmd --info-zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
    rule family="ipv4" source address="10.0.0.0/8" port port="3306" protocol="tcp" accept
    rule family="ipv4" source address="10.0.0.0/8" port port="80" protocol="tcp" accept
    rule family="ipv4" source address="10.0.0.0/8" port port="443" protocol="tcp" accept
    rule family="ipv4" source address="10.0.0.0/8" port port="8080" protocol="tcp" accept

$ sudo firewall-cmd --info-zone=GLZ
GLZ (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens37
  sources:
  services:
  ports:
  protocols:
  masquerade: yes
  forward-ports: port=22:proto=tcp:toport=2222:toaddr=
  source-ports:
  icmp-blocks:
  rich rules:
    rule family="ipv4" source address="0.0.0.0/0" port port="80" protocol="tcp" accept
    rule family="ipv4" source address="0.0.0.0/0" port port="443" protocol="tcp" accept

Связанный контент