1 SELinux (Die militärische Sicherheitszentrale im Kernel)
Während das einfachere AppArmor pfadbasiert arbeitet (es schaut, wo ein Programm liegt), arbeitet SELinux labelbasiert.
Das bedeutet: Jedes einzelne Objekt auf dem System – jede Datei, jeder Ordner, jeder Prozess, jeder Netzwerk-Port und jeder Benutzer – bekommt vom System ein unveränderliches Sicherheits-Etikett (einen sogenannten Sicherheitskontext).
SELinux prüft bei absolut jeder Aktion im System eine riesige, zentrale Datenbank (die Policy):
Darf ein Prozess mit dem Etikett A auf eine Datei mit dem Etikett B zugreifen? Wenn das nicht explizit erlaubt ist, wird die Aktion augenblicklich und rigoros blockiert – selbst wenn der Benutzer root heißt.
1.1 🔬 Die drei Betriebsmodi von SELinux
Im Alltag kann SELinux in drei verschiedenen Zuständen betrieben werden (einstellbar in der Datei /etc/selinux/config):
- Enforcing (Erzwingen):
Der Standard- und Sicherheitsmodus. SELinux ist voll aktiv, überwacht alles und blockiert jede Regelverletzung gnadenlos. - Permissive (Duldend):
SELinux blockiert nichts, protokolliert aber jede potenzielle Regelverletzung im Logbuch. Ideal, um Fehler zu suchen oder Systeme einzurichten, ohne dass Programme abstürzen. - Disabled (Deaktiviert):
SELinux ist komplett ausgeschaltet. Der Kernel lädt keine Sicherheitsrichtlinien.
(Hinweis: Ein nachträgliches Wiedereinschalten erfordert ein zeitaufwendiges Neu-Etikettieren der gesamten Festplatte!).
1.2 🛠️ Status und Verfügbarkeit (Das "Große Vier"-Gesetz)
Da sich SELinux und AppArmor auf Kernel-Ebene gegenseitig blockieren, entscheidet sich eine Distribution ab Werk für ein System. Fedora ist das absolute Vorzeige-System für SELinux.
So sieht es bei den "Großen Vier" aus:
1.2.1 1. Unter Fedora Linux
SELinux ist das Herzstück der Sicherheit von Fedora (und Red Hat). Es ist ab Werk vollständig installiert, aktiv und scharf geschaltet (Enforcing). Es wird keinerlei manuelle Einrichtung benötigt.
1.2.2 2. Unter openSUSE (Tumbleweed / Leap)
Nutzt standardmäßig AppArmor. Eine parallele Installation von SELinux wird im Lexikon dringend nicht empfohlen, da dies zu schweren Systemkonflikten und Boot-Schleifen führt.
1.2.3 3. Unter Debian 13 (Trixie) / Ubuntu
Nutzt standardmäßig ebenfalls AppArmor. Wer zwingend auf SELinux umsteigen möchte, muss AppArmor komplett entfernen und SELinux über die Paketquellen nachrüsten:
(Achtung beim Support: Nach dem Befehl muss das System neu gestartet werden, um die Festplatte automatisch neu zu labeln).
1.2.4 4. Unter Arch Linux / EndeavourOS
Arch nutzt im Standard-Kernel weder AppArmor noch SELinux aktiv.
Wer SELinux nutzen möchte, muss sich über das AUR (Arch User Repository) einen modifizierten Kernel (linux-selinux) und die passenden Userspace-Werkzeuge selbst kompilieren.
Für normale Anwender wird hier wegen des extremen Wartungsaufwands davon abgeraten.
1.3 🖥️ Wichtige Terminal-Befehle zur Kontrolle
Den aktuellen SELinux-Status detailliert anzeigen:
(Zeigt dir sofort, ob SELinux aktiv ist, welcher Modus läuft und welche Richtlinie geladen ist).
Den Modus im laufenden Betrieb temporär auf "Permissive" (Testmodus) stellen:
Den Modus im laufenden Betrieb wieder auf "Enforcing" (Scharf) stellen:
Die Sicherheits-Etiketten (Kontext) von Dateien im Terminal sichtbar machen:
(Erweitert den normalen ls-Befehl um eine Spalte, die den SELinux-Typ anzeigt, z. B. unconfined_u:object_r:user_home_t:s0).
1.4 ⚠️ Die klassischen Stolpersteine
1.4.1 1. "Ich habe unter Fedora den Pfad meines Webservers verschoben, und jetzt kriege ich nur noch '403 Forbidden', obwohl die Linux-Rechte auf 755 stehen!"
- Die Ursache:
Der absolute SELinux-Klassiker!
Wenn ein Nutzer Ordner verschiebt (z. B. von /home/user/webseite nach /var/www/html), behält die Datei ihr altes SELinux-Etikett (user_home_t). Der Webserver-Prozess darf aber laut Richtlinie nur auf Dateien zugreifen, die das Etikett httpd_sys_content_t besitzen. SELinux blockiert den Zugriff im Kernel, und der Webserver meldet stur "Zugriff verweigert". Die Lösung:
Mit folgendem Befehl wird der Standard-Sicherheitskontext für diesen Systempfad wiederhergestellt (das sogenannte Relabeling):Danach passt das Etikett wieder, und die Webseite lädt sofort.
1.5 📝 Merke:
Quote
- 🔥 Die Firewall (z. B. UFW/Firewalld) bewacht den Eingang zum Netzwerk. Sie entscheidet stur nach IP-Adressen und Ports: Wer darf überhaupt rein oder raus?
- 🛡️ AppArmor bewacht den Pfad einer Anwendung. Es zieht eine einfache Schutzwand um ein bestimmtes Programm (z. B. den Browser) und sagt: „Du darfst dich nur in den Ordnern bewegen, die exakt in deinem Profil stehen!“
- 🏷️ SELinux bewacht das Sicherheits-Etikett (Label) von absolut allem. Es ist der paranoide Chef-Prüfer im Kernel und kontrolliert jede einzelne Aktion nach dem Prinzip: „Prozess X hat das Etikett A – er darf die Datei Y mit dem Etikett B unter keinen Umständen anfassen, völlig egal, in welchem Ordner sie liegt oder ob der Nutzer Root ist!“