SELinux Teil I
Security Enhanced Linux (SELinux) ist eine weitere Schicht in der Systemsicherheit und erweitert die Sicherheitsmechanismen in RHEL basierten Linux Systemen.
SELinux beantwortet in erster Linie die Frage:
Kann ein SUBJEKT etwas AUSFÜHREN auf diesem OBJEKT (engl.: May subject do action to object?)?
Beispiel: Darf der Webserver auf direkt auf die Datenbank zugreifen oder hat der Prozess der Datenbank Zugriff auf das Verzeichnis des Webservers? Nein. Der Webserver darf nur Dateien aus dem Verzeichnis /var/www/html lesen, während die Datenbank nur auf /data/mysql Zugriff bekommt. Sollte es einem Angreifer gelingen Prozessowner vom Webserver oder der Datenbank zu werden, so sind seine Zugriffsrechte dennoch stark eingeschränkt, auch wenn die Elementare Rechtevergabe des Linux-Systems (Datei-/Ordner-Berechtigungen) den Zugriff zulassen würde.
| Quelle: Redhat.com |
SELinux kennt drei Modi:
- Enforcing ist der Defaultmodus und überwacht das ganze System
- Der Permissive-Modus arbeitet wie der Enforcing-Modus, verbietet aber keine Zugriffe. Dieser Modus wird für Debugging-Aufgaben genutzt und ist nicht für Produktivsysteme geeignet.
- Ausgeschaltet (DISABLED). SELinux macht gar nichts.
Einstellen des SELinux-Modus permanent (bleibt auch nach einem Reboot gesetzt)
SELinux Modus während des Bootvorgangs einstellen
enforcing=0 --> Startet das System im Permissiv-Modus
selinux=0 --> Veranlasst den Kernel keine SELinux-Komponenten zu laden
autorelabel=1 --> SELinux wird das ganze System (Ordner, Dateien, Ports ..) durchlaufen und mit den SELinux-Content aus der SELinux Datenbank relabeln.
Das "relabeln" hat folgenden Hintergrund. SELinux merkt natürlich, wenn ein Linux-System nicht in einem anderen Modus gebootet worden ist, als es eigentlich vorgesehen war. Hat man den Bootvorgang zum Beispiel durch ein rd.break als Bootparameter unterbrochen und das root-Passwort neu gesetzt, so wird SELinux davon in Kenntnis gesetzt.
Das kann aber auch bedeuten, dass ein Angreifer sich Zugriff auf das System ermöglicht und Dateien manipuliert hat, indem er SELinux Berechtigungen auf den Daten ändert.
Für jeden Ordner, jede Datei hält SELinux einen Eintrag in einer Datenbank vor, woraus hervorgeht wie die SELinux-Rechte auszusehen haben. Beim relabeln werden diese Rechte auf allen Ordnern und Dateien wieder gesetzt, sodass sämtliche manuellen Änderungen unwirksam werden.
Keine Kommentare:
Kommentar veröffentlichen