1. Themen
  2. Sicherheit
  3. Was ist SELinux (Security-Enhanced Linux)?

Was ist SELinux (Security-Enhanced Linux)?

KopiertKopieren fehlgeschlagenURL kopieren

Security-Enhanced Linux (SELinux) ist eine Sicherheitsarchitektur für Linux®-Systeme, die Administrationsteams mehr Kontrolle darüber bietet, wer auf das System zugreifen darf. Sie wurde ursprünglich von der US-amerikanischen NSA (National Security Agency) in mehreren Patches entwickelt, die mit LSMs (Linux Security Modules) auf den Linux-Kernel angewendet wurden.  

SELinux wurde im Jahre 2000 für die Open Source Community freigegeben und 2003 in den Upstream-Linux-Kernel integriert.

SELinux-fähiges Betriebssystem kostenlos testen


 

SELinux definiert Zugangskontrollen für die Anwendungen, Prozesse und Dateien in einem System. Dabei nutzt es Sicherheitsrichtlinien, die aus mehreren Regeln bestehen und den Zugriff je nach Richtlinie gewähren oder verweigern. 

Wenn eine Anwendung oder ein Prozess, auch Subjekt genannt, den Zugriff auf ein Objekt, beispielsweise eine Datei, anfragt, überprüft SELinux diese Anfrage mithilfe eines Access Vector Caches (AVC), in dem die Berechtigungen für Subjekte und Objekte aufbewahrt werden.

Falls SELinux auf Basis der gespeicherten Berechtigungen keine Entscheidung über den Zugriff treffen kann, sendet es die Anfrage weiter an den Sicherheitsserver. Der Sicherheitsserver überprüft dann den Sicherheitskontext der Anwendung oder des Prozesses und der Datei. Der Sicherheitskontext wird von der SELinux-Richtlinien-Datenbank angewendet. Anschließend wird der Zugriff entweder gestattet oder verweigert. 

Bei einer Verweigerung wird unter /var/log/audit/audit.log die Meldung „avc: denied“ erfasst. Falls auditd nicht ausgeführt wird, können dieselben Meldungen auch im Systemjournal oder unter /var/log/messages angezeigt werden.

Wie sicher ist Ihre Cloud? Zur Einschätzung

Konfiguration von SELinux 

SELinux lässt sich auf verschiedene Arten für den Schutz Ihres Systems konfigurieren. Die gängigsten Methoden sind gezielte Richtlinien oder mehrstufige Sicherheit (Multi-Level Security, MLS).

Eine gezielte Richtlinie ist die Standardoption und deckt eine große Bandbreite von Prozessen, Aufgaben und Services ab. MLS kann kompliziert sein und wird üblicherweise nur von Regierungsbehörden eingesetzt. 

Sie können die Sicherheitsstufe Ihres Systems in der Datei /etc/sysconfig/selinux anzeigen. Dort ist in einem Abschnitt angegeben, ob SELinux im zulässigen Modus, im erzwungenen Modus oder deaktiviert ist. Außerdem sehen Sie, welche Richtlinie geladen werden sollte.

  • Enforcing-Modus: Der standardmäßige und empfohlene Betriebsmodus. SELinux funktioniert normal und setzt die geladene Sicherheitsrichtlinie im gesamten System durch.
  • Permissive-Modus: Das System verhält sich so, als würde SELinux die geladene Sicherheitsrichtlinie durchsetzen, einschließlich der Kennzeichnung von Objekten und der Ausgabe von Zugriffsverweigerungseinträgen in den Protokollen. Tatsächlich werden jedoch keine Vorgänge verweigert. Der Permissive-Modus wird zwar nicht für Produktionssysteme empfohlen, kann aber bei der Entwicklung von SELinux-Richtlinien und beim Debugging hilfreich sein.
  • Disabled-Modus: Von der Verwendung wird dringend abgeraten. Das System vermeidet nicht nur das Durchsetzen der SELinux-Richtlinie, sondern auch die Kennzeichnung persistenter Objekte wie Dateien, was die zukünftige Aktivierung von SELinux erschwert.

SELinux-Kennzeichnung und Type Enforcement 

Type Enforcement und Kennzeichnung sind die wichtigsten Konzepte von SELinux.

SELinux agiert als ein Kennzeichnungssystem, das heißt, dass sämtlichen Dateien, Prozessen und Ports in einem System eine SELinux-Kennzeichnung zugeordnet ist. Mit Kennzeichen lassen sich Dinge logisch gruppieren. Der Kernel verwaltet die Kennzeichnungen beim Starten.

SELinux verwendet Type Enforcement, um eine im System definierte Richtlinie durchzusetzen. Type Enforcement ist der Teil einer SELinux-Richtlinie, der definiert, ob ein Prozess, der mit einem bestimmten Typ ausgeführt wird, auf eine Datei zugreifen darf, die mit einem bestimmten Typ gekennzeichnet wurde.

SELinux-Kennzeichnungen bestehen aus 4 Feldern:

  • user
  • role 
  • type
  • security level

Die type-Kennzeichnung ist das wichtigste Feld, da es von standardmäßigen SELinux-Richtlinien zum Steuern der Systemberechtigungen verwendet wird. Die Felder „user“, „role“ und „level“ sind erweiterten Konfigurationen vorbehalten, wie mehrstufige Sicherheit (MLS) oder Sicherheit mit mehreren Kategorien (Multi-Category Security, MCS).

Aktivieren von SELinux

Wenn SELinux in Ihrer Umgebung deaktiviert wurde, können Sie es aktivieren, indem Sie /etc/selinux/config bearbeiten und auf SELINUX=permissive stellen. Da SELinux nicht aktiviert war, sollten Sie es nicht sofort im Enforcing-Modus ausführen, da das System wahrscheinlich falsche Kennzeichnungen beinhaltet, die den Start verhindern können.  

Sie können das System dazu zwingen, das Dateisystem automatisch neu zu kennzeichnen, indem sie eine leere Datei namens „.autorelabel“ im Stammverzeichnis erstellen und dann einen Neustart ausführen. Falls das System zu viele Fehler aufweist, sollten sie es im zulässigen Modus neu starten, um erfolgreich zu booten. Nachdem sämtliche Objekte neu gekennzeichnet wurden, versetzen Sie SELinux mit /etc/selinux/config in den Enforcing-Modus, und starten Sie das System neu. Alternativ können Sie den Befehl setenforce 1 ausführen. 

Falls Ihre Systemadmins nicht mit der Befehlszeile vertraut sind, stehen auch grafische Tools zur Verwaltung von SELinux zur Verfügung. 

SELinux bietet eine zusätzliche Sicherheitsschicht für Ihr System, die in Linux-Distributionen integriert ist. Es sollte aktiviert bleiben, damit es Ihr System im Falle eines Angriffs schützen kann.

Optimierte Linux-Sicherheit mit Red Hat

Red Hat Ressourcen

Ursprünglich verwendeten Linux- und UNIX-Systeme DAC. SELinux ist ein Beispiel für ein MAC-System für Linux. 

Mit DAC haben Dateien und Prozesse Eigentümer. Das können Nutzende, Gruppen oder andere Personen sein. Nutzende haben die Möglichkeit, die Berechtigungen für ihre eigenen Dateien zu ändern.

Mit einem DAC-System haben Root-Nutzende eine vollständige Zugriffskontrolle. Wenn Sie einen Root-Zugriff haben, dann können Sie nach Belieben auf die Dateien anderer Nutzender zugreifen oder andere Aktionen im System ausführen. 

Aber auf MAC-Systemen wie SELinux gibt es von der Administration erstellte Zugriffsrichtlinien. Selbst wenn die DAC-Einstellungen in Ihrem Benutzerverzeichnis geändert werden, hindert eine hinterlegte SELinux-Richtlinie andere Nutzende oder Prozesse am Zugriff auf das Verzeichnis. So bleibt Ihr System geschützt. 

Mit SELinux-Richtlinien können Sie spezifisch eine große Anzahl von Prozessen abdecken. Sie können mit SELinux Änderungen durchführen, um den Zugriff zwischen Nutzenden, Dateien, Verzeichnissen und mehr zu beschränken.

Wenn in SELinux ein Fehler auftritt, sollten Sie reagieren. Wahrscheinlich ist 1 dieser 4 häufigen Probleme die Ursache:

  1. Die Kennzeichen sind falsch. Falls Ihre Kennzeichnung nicht korrekt ist, können Sie die Kennzeichen mithilfe von Tools korrigieren.
  2. Eine Richtlinie muss korrigiert werden. Möglicherweise müssen Sie eine Richtlinie anpassen oder SELinux über eine Änderung informieren, die Sie durchgeführt haben. Dieses Problem können Sie mit Booleans oder Richtlinienmodulen beheben.
  3. Die Richtlinie hat einen Bug. Es kann sein, dass in der Richtlinie ein Bug auftritt, der behoben werden muss.
  4. Das System wurde angegriffen. Auch wenn SELinux Ihre Systeme in vielerlei Szenarien schützt, lassen sich unerlaubte Zugriffe nie hundertprozentig ausschließen. Wenn Sie einen unerlaubten Zugriff vermuten, müssen Sie sofort handeln.

Was sind Booleans?

Booleans sind Ein-/Aus-Schalter für Funktionen in SELinux. Es gibt Hunderte von Einstellungen, die SELinux-Funktionen ein- oder ausschalten können und viele von ihnen sind bereits vordefiniert. Wenn Sie herausfinden möchten, welche Booleans bereits in Ihrem System eingerichtet wurden, führen Sie getsebool -a aus.

Red Hat Enterprise Linux® ist eine weltweit führende Open Source-Linux-Plattform, mit der Sie Risiken minimieren, Sicherheitskonfigurationen und -richtlinien durchsetzen und Ihre Compliance-Strategie optimieren können. Red Hat Enterprise Linux unterstützt die kontinuierliche Runtime-Sicherheit durch den Einsatz von Features wie SELinux für eine granulare Mandatory Access Control oder Role-based Access Control (RBAC) zur Zugangsbeschränkung. Diese Kontrolle über Dateien, Prozesse, Nutzende und Anwendungen trägt dazu bei, Prozessisolierung und Container-Trennung beizubehalten, um vor CVEs (Common Vulnerabilities and Exposures) und Berechtigungseskalationen zu schützen – selbst durch bösartige KI-Software.

Mehr über Sicherheit in Red Hat Enterprise Linux erfahren

Red Hat Enterprise Linux Systemrollen sind eine Sammlung von unterstützten Ansible® Roles, die für konsistente Workflows sorgen und die Ausführung manueller Aufgaben optimieren. Mithilfe von Systemrollen können Teams Sicherheitsabläufe automatisieren, skalieren und langfristig mit minimalem Aufwand verwalten. Außerdem unterstützen sie die Optimierung von Governance- und Compliance-Anforderungen. Mit der SELinux-Systemrolle kann die Bereitstellung und Verwaltung von SELinux automatisiert werden. Dazu gehören: 

  • Das Aktivieren von SELinux im erzwungenen oder zulässigen Modus, um die Konsistenz der Kontrollen sicherzustellen
  • Anpassen der Booleans für SELinux-Richtlinien, der Dateikontexte, der Ports und der Logins, um Ihre Anforderungen zu erfüllen.
  • Das Verwenden der Systemrolle zum Abgleich von Dateikontexten für bestimmte Dateien oder Verzeichnisse

Mehr über Red Hat Enterprise Linux Systemrollen erfahren

Red Hat Enterprise Linux 10

Erfahren Sie, wie Sie mit Red Hat Enterprise Linux 10 auf die wichtigsten IT-Herausforderungen von heute reagieren – von Kompetenzlücken bei Linux bis hin zur Post-Quanten-Sicherheit.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Shift Left im Vergleich zu Shift Right

Ein Shift Left- oder Shift Right-Ansatz bezeichnet die Implementierung kontinuierlicher Tests in den verschiedenen Phasen des Softwareentwicklungs-Lifecycles.

Was ist eine SBOM?

Erfahren Sie, welche Rolle eine Software Bill of Materials (SBOM) für Softwaretransparenz, Risikomanagement und den Schutz Ihrer Lieferkette vor Schwachstellen spielt.

Was ist DevSecOps?

Wenn Sie die Agilität und Reaktionsfähigkeit von DevOps vollständig ausschöpfen möchten, muss die IT-Sicherheit im gesamten Lifecycle Ihrer Anwendungen eine Rolle spielen.

Ressourcen zu Sicherheit

Verwandte Artikel