RedHat Enterprise: SELinux verhindert Start des DHCP Server

Auf einem neu installierten RedHat Enterprise Linux (RHEL) 6.7 Server liess sich der DHCP Server Dienst nicht starten. Im Log war die folgende Fehlermeldung zu finden:

dhcpd: Can't open /daten/failover/dhcpd/dhcpd.conf: No such file or directory

Die Datei existierte, war nicht leer und hatte korrekte Dateisystem-Berechtigungen. Auch alle Verzeichnisse im Pfad hatte Rechte, die einen Zugriff auf die Datei nicht blockieren würden.

Nach kurzer Suche bestätigte sich der Verdacht, dass dies im Zusammenhang mit SELinux steht. SELinux (Security Enhanced Linux) ist ein erweitertes Rechte-Management, das über die Standard Benutzer- und Dateisystem-Rechte von Unix hinausgeht.

SELinux ist in RHEL per Default aktiviert, und dieses striktere Rechte-Management verhindert den Start des DHCP Server.

Es gibt zwei Möglichkeiten, dieses Problem zu umgehen: die strikten Einstellungen von SELinux generell zu deaktivieren, oder SELinux speziell für den DHCP Server abzuschalten.

SELinux deaktivieren

Da wir ähnliche Probleme bereits im Zusammenhang mit dem BIND DNS-Server erlebt hatten, haben wir uns entschieden, SELinux von “Security Policy erzwingen” auf “nur warnen” umzustellen. Dazu muss in der Datei /etc/selinux/config die Variable SELINUX von enforcing auf permissive gesetzt werden:

#SELINUX=enforcing
SELINUX=permissive

Anschliessend ist ein Reboot erforderlich.

SELinux für den DHCP Server deaktivieren

Alternativ kann SELinux nur für den DHCP Server abgeschaltet werden, indem das folgende Kommando ausgeführt wird:

/usr/sbin/setsebool -P dhcpd_disable_trans 1

Ref: Red Hat Enterprise Linux 6 Security-Enhanced Linux User Guide