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