Firewalld: zwei Netzwerkkarten, zwei Zonen. Zone wird ignoriert

Firewalld: zwei Netzwerkkarten, zwei Zonen. Zone wird ignoriert

Ich habe einen Server mit CentOS/RHEL 7.7 und zwei Netzwerkschnittstellen. Diese Schnittstellen sind konfiguriert und funktionieren ordnungsgemäß. Die erste Schnittstelle, ens33, ist Teil der „öffentlichen“ Zone von Firewalld. Alle auf diese Zone angewendeten Regeln funktionieren ordnungsgemäß. Die zweite Schnittstelle, ens37, funktioniert auch wie erwartet, wenn sie Mitglied der „öffentlichen“ Zone ist. Ich habe eine zweite Zone, „GLZ“, erstellt, die einen Satz Regeln enthält, die speziell auf die Funktion der zweiten Schnittstelle zugeschnitten sind. Ich kann keine Regeln aus der GLZ-Zone auf diese Schnittstelle anwenden. Ich habe diese Art von Setup in der Vergangenheit oft mit iptables konfiguriert, aber mit Firewalld bekomme ich scheinbar nicht den gewünschten Effekt. Ich habe das Gefühl, dass mir bei Firewalld etwas Grundlegendes fehlt, aber ich weiß nicht, was es sein könnte. Im Folgenden finden Sie die Einzelheiten:

Setup-Skript:

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

Basierend auf der Ausgabe von --info-zone scheint alles in Ordnung zu sein. Beide Zonen sind aktiv und jeder Zone ist die entsprechende Netzwerkschnittstelle zugewiesen. Alle Änderungen, die ich an der öffentlichen Zone vornehme, wirken sich auf den Verkehr auf beiden Schnittstellen aus und keine der Regeln, die ich der GLZ-Zone hinzufüge oder daraus entferne, macht überhaupt einen Unterschied.
Ausgabe:

$ 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

verwandte Informationen