CENTOS: Firewalld und mehrere Interfaces in verschiedenen Zonen funktionieren nicht

Jürgen Mainka
07.01.2017 09:53

Innerhalb von CentOS 7.3 ist ein kapitaler Fehler enthalten, wenn z.B. zwei Netzwerkinterfaces in verschiedene Firewall-Zonen sich befinden sollen. Nach einem Neustart bzw. Neustart der verbundenen Dienste sind die Interfaces nicht mehr in den richtigen Zonen.

Ursache dafür ist das Zusammenspiel zwischen dem NetworkManager und dem FirewallD. Innerhalb des FirewallD ist ein Fehler enthalten, der ein Interface aus der Zone ohne ersichtlichen Grund entfernt. Grundsätzlich ist es empfehlenswert die Netzwerkeinstellungen auf Servern vollständig manuell zu erstellen. Wie die Einstellungen zu erfolgen haben wird hier erläutert.

Nach einer neuen Installation direkt die net-tools installieren:

yum install net-tools

 Nun wird der NetworkManager-Dienst vollständig deaktiviert.

systemctl disable NetworkManager.service
systemctl stop NetworkManager.service

 Die Konfiguration der Netzwerk-Interfaces erfolgt manuell. Dazu müssen die Dateien /etc/sysconfig/network-scripts/ifcfg-XXXX bearbeitet werden (XXXX ist der Name des Interfaces).

Hier ein Beispiel für DHCP:

NM_CONTROLLED=no
ONBOOT=yes
PERSISTENT_DHCLIENT=1
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
# Make sure here XXXXX is your NIC name in Linux, e.g. eth0  <=====================
NAME=XXXXX
# Comment out UUID, as only NetworkManager uses it. <=====================
#### UUID=6fe7887d-db7a-40ac-BLABLABLABLABLABLABLABLABLA
# Make sure this is your network card MAC address, noted instep 1 above. <===
HWADDR=00:0C:29:56:FF:FF
PEERDNS=yes
PEERROUTES=yes
ZONE=public

 Nun ein Beispiel für eine statische IP-Adresse:

NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
#PERSISTENT_DHCLIENT=1
#BOOTPROTO=dhcp
BOOTPROTO=static
DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
# Make sure here XXXXX is your NIC name in Linux, e.g. eth0  <=====================
NAME=XXXXX
# Comment out UUID, as only NetworkManager uses it. <=====================
#### UUID=6fe7887d-db7a-40ac-BLABLABLABLABLABLABLABLABLA
# Make sure this is your network card MAC address, which you noted instep 1 above. <===
HWADDR=00:0C:29:56:FF:FF
#PEERDNS=yes
#PEERROUTES=yes
IPADDR=172.16.225.150
NETMASK=255.255.255.0
ZONE=public

 Die Einstellungen für Standard-Gateway und DNS werden in /etc/sysconfig/network eingetragen:

GATEWAY=172.26.225.2
DNS1=172.26.225.2
DNS2=172.26.225.3
SEARCH="mydomain.example"

 Nun muss dem System mitgeteilt werden, dass der alte Netzwerkdienst sich um die Einstellungen kümmern soll. Der NetworkManager wurde oben bereits deaktiviert.

service network restart

Überprüfen, ob das Subsystem nach einem Neustart läuft:

chkconfig --list network

Falls bei der Ausgabe "off" steht, dann aktivieren:

chkconfig network on

Nun kann es dennoch dazu kommen, dass der FirewallD-Prozess die Konfigurationsdateien ifcfg-XXXX anfasst und verändert! Um dies zu verhindern, sollte nach Bearbeitung der Einstellungen in diesen Dateien, ein Zugriff verhindert werden:

chattr +i ifcfg-XXXX

Soll die Datei bearbeitet werden, so muss das Attribut wieder gelöscht werden:

chattr -i ifcfg-XXXX

Das System neu starten und danach überprüfen, ob alle Einstellungen funktionieren.

reboot

Quellen:

Tags: centos, firewalld, networkmanager, zones
Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Kommentieren nicht möglich