Warum du SELinux und AppArmor kennen solltest
Als Systemadministrator trägst du die Verantwortung für die Sicherheit deiner Linux-Systeme, und Mandatory Access Control (MAC)-Systeme wie SELinux und AppArmor sind essenzielle Werkzeuge, um Angriffe zu minimieren. Diese Module erweitern die herkömmliche diskretionäre Zugriffssteuerung (DAC) durch feingranulare Richtlinien, die Prozesse einschränken, selbst wenn sie als Root laufen. Du solltest sie beherrschen, weil sie Zero-Day-Exploits eindämmen, Compliance-Anforderungen erfüllen und in produktiven Umgebungen wie Servern oder Containern unverzichtbar sind, ohne die Systemleistung stark zu beeinträchtigen.
<h2>Was ist SELinux und welche Funktionen hat es</h2>
SELinux, entwickelt von der NSA und integriert in den Linux-Kernel, ist ein MAC-Modul, das Zugriffe auf Dateien, Prozesse und Ressourcen durch Security Contexts (Labels) steuert. Es folgt dem Default-Deny-Prinzip: Jeder Zugriff muss explizit in Richtlinien erlaubt sein, was Prozesse in Domains einsperrt und Privilege Escalation verhindert. Funktionen umfassen Modi wie Enforcing (blockt Verletzungen), Permissive (nur loggt) und Disabled, sowie Tools wie sestatus zur Statusabfrage oder setenforce zum Moduswechsel.
Du kannst den SELinux-Status prüfen mit:
<pre><code>sestatus
Dieser Befehl zeigt dir den aktuellen Modus, die Richtlinie und ob SELinux aktiv ist. Er hilft dir schnell zu überprüfen, ob der Schutz läuft, und liefert Kontextinformationen für Fehlersuche.
Zum temporären Wechsel in den Permissive-Modus nutzt du:
setenforce 0
Dieser Befehl deaktiviert die Durchsetzung vorübergehend, damit du Richtlinien testen kannst, ohne Zugriffe zu blockieren – ideal für Debugging, aber setze danach mit setenforce 1 zurück.
<h2>Was ist AppArmor und welche Funktionen hat es</h2>
AppArmor ist ein kernelbasiertes MAC-System, das Prozesse durch profilbasierte Pfadregeln einschränkt und primär in Distributionen wie Ubuntu und SUSE verwendet wird. Es erlaubt oder verweigert Zugriffe auf Dateipfade, Netzwerke und Fähigkeiten kompartimentalisiert, mit Profilen im enforcing- oder complain-Modus (ähnlich permissive). AppArmor ist einfacher zu konfigurieren als SELinux, da es Pfadzentriert ist und weniger abstrakte Labels nutzt.
Du überprüfst den AppArmor-Status mit:
<pre><code>aa-status
Dieser Befehl listet geladene Profile, Modi und Prozesse auf, sodass du siehst, welche Anwendungen geschützt sind und ob Verletzungen protokolliert wurden.
Ein Profil aktivieren oder deaktivieren machst du mit:
aa-enforce /etc/apparmor.d/usr.bin.apache2
Dieser Befehl setzt das Apache-Profil auf enforcing, enforced strikte Regeln und blockt Abweichungen – praktisch, um Webserver schnell zu sichern.
<h2>Unterschiede zwischen SELinux und AppArmor</h2>
SELinux und AppArmor unterscheiden sich grundlegend in Ansatz und Komplexität: SELinux verwendet typebasierte Labels für feingranulare, kontextunabhängige Kontrollen, während AppArmor pfadbasierte Profile für einfachere, dateipfadzentrierte Absicherung bietet. SELinux ist mächtiger für Enterprise-Szenarien mit Multi-Level-Security (MLS), aber steilere Lernkurve; AppArmor ist benutzerfreundlicher und schneller deploybar.
<table border="1">
<thead>
<tr>
<th>Aspekt</th>
<th>SELinux</th>
<th>AppArmor</th>
</tr>
</thead>
<tbody>
<tr>
<td>Zugriffsmodell</td>
<td>Label-basiert (Type Enforcement)</td>
<td>Pfad-basiert (Path Profiles)</td>
</tr>
<tr>
<td>Komplexität</td>
<td>Hoch (abstrakte Richtlinien)</td>
<td>Niedrig (einfache Profile)</td>
</tr>
<tr>
<td>Standard-Distros</td>
<td>RHEL, Fedora, CentOS</td>
<td>Ubuntu, Debian, openSUSE</td>
</tr>
<tr>
<td>Stärke</td>
<td>Hohe Granularität, MLS-Support</td>
<td>Schnelle Konfiguration</td>
</tr>
<tr>
<td>Schwäche</td>
<td>Hoher Admin-Aufwand</td>
<td>Weniger flexibel bei Pfadänderungen</td>
</tr>
</tbody>
</table>
<h2>Warum Distributionen verstärkt SELinux einsetzen</h2>
Viele Distributionen wie Fedora oder RHEL setzen verstärkt auf SELinux, da es robustere Konfinement bietet und durch Red Hat's Investitionen (z.B. für RHCSA-Zertifizierung) enterprise-ready ist – AppArmor bleibt in Debian-Ökosystemen dominant. Der Wechsel zu SELinux steigt nicht universell, sondern in sicherheitskritischen Bereichen durch bessere Zero-Trust-Unterstützung, Container-Isolation und Compliance (z.B. NIST). Es schützt effektiver vor Root-Exploits, auch wenn die Lernkurve abschreckt.
<h2>Zusammenfassung</h2>
SELinux und AppArmor sind MAC-Lösungen, die deine Systeme durch strikte Richtlinien absichern: SELinux mit labelbasierter Präzision für anspruchsvolle Umgebungen, AppArmor mit pfadbasierten Profilen für schnelle Einsätze. Beide ergänzen DAC, verhindern Escalations und loggen Vorfälle, wobei SELinux in Enterprise-Distros dominiert, da es skalierbarer für komplexe Szenarien ist. Wähle je nach Distro und Bedarf, aber aktiviere immer einen Modus und überwache Logs mit Tools wie ausearch (SELinux) oder aa-logprof (AppArmor), um deine Sicherheit zu optimieren.
