SELinux

RHEL5, RHEL6, security, SOLLTE

SELinux ist ein Kernelfeature, das Schutz gegen fehlerhaft konfigurierter Software und kompromittierten Programmen bietet.

In /etc/selinux/config sollten folgenden Parameter gesetzt sein:

/etc/selinux/config (Auszug)

Im Bootloader muss sichergestellt werden, dass SELinux nicht deaktiviert ist:

grep "selinux=0" /etc/grub.conf
grep "enforcing=0" /etc/grub.conf

Geprüft, ob SELinux entsprechend aktiviert ist, wird mittels:

/usr/sbin/sestatus

Unnötige SELinux-Programme sollten abgestellt und entfernt werden (unused_sevices):

chkconfig setroubleshoot off
yum erase setroubleshoot
chkconfig mcstrans off

Ob unkonfigurierte Dienste laufen, lässt sich folgendermaßen prüfen:

ps -eZ | egrep "initrc" | egrep -vw "tr|ps|egrep|bash|awk" | tr ':' ' ' | awk '{ print $NF }'

Sollte keine Ausgabe erzeugen.

Die Benutzung der „strict“-Policy statt „targeted“ erhöht die Sicherheit abermals.

yum install selinux-policy-strict
/etc/selinux/config (Auszug)

Ein Wechsel der SELinux-Policy erfordert ein Re-Labeln des gesamten Dateisystems, daher sind nach dieser Änderung ein Reboot mit den Kernel-Optionen „enforcing=0 single autorelabel“ zum Re-Labeln und ein weiterer normaler Reboot zur Sicherstellung, dass alle Prozesse in korrektem Kontext laufen, erforderlich.

Abkürzen lässt sich dies durch:

touch /.autorelabel
reboot

Der init-Prozess kümmert sich dann um das Re-Labeln und die korrekte Start-Reihenfolge der Prozesse. Ein Re-Labeln im laufenden Betrieb ohne Reboot ist nicht empfehlenswert, da einzelne Prozesse in einem nicht korrekten Kontext weiterlaufen könnten und Dateien in /tmp gelöscht werden.