Was ist SELinux (Security-Enhanced Linux)?

URL 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.

Ein 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 Ablehnung wird unter /var/log.messages eine „avc: denied“-Meldung gespeichert.

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 zielgerichtete Richtlinien und Multi-Level Security (MLS).

Eine gezielte Richtlinie ist die Standardoption und deckt eine große Bandbreite von Prozessen, Aufgaben und Services ab. Die Multi-Level-Sicherheit kann sehr komplex sein und wird üblicherweise nur von Regierungsbehörden eingesetzt. 

Mithilfe der Datei /etc/sysconfig/selinux können Sie bestimmen, welche Option Ihr System ausführen sollte. 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.

SELinux-Kennzeichnung und Type Enforcement 

Type Enforcement und Kennzeichnung sind die wichtigsten Konzepte von SELinux.

SELinux agiert als ein Kennzeichnungssystem, was bedeutet, dass die Dateien, Prozesse und Ports in einem System ein zugehöriges SELinux-Kennzeichen haben. Mit Kennzeichen lassen sich Dinge logisch gruppieren. Der Kernel verwaltet die Kennzeichen beim Starten.

Kennzeichen haben das Format user:role:type:level, wobei das Level optional ist. User, Role und Level werden in fortschrittlicheren Implementierungen von SELinux verwendet, wie etwa bei MLS. Für eine gezielte Richtlinie ist der Kennzeichnungstyp am wichtigsten. 

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.

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 vorher nicht aktiviert war, sollten Sie es nicht sofort Richtlinien durchsetzen lassen, da das System wahrscheinlich falsche Kennzeichen beinhaltet, die den Systemstart verhindern können.  

Sie können das System dazu zwingen, das Dateisystem automatisch neu zu kennzeichnen, indem sie eine leere Datei mit dem Namen .autorelabel im Stammverzeichnis erstellen und dann neu starten. Falls das System zu viele Fehler aufweist, sollten sie es im zulässigen Modus neu starten, um erfolgreich zu booten. Nachdem Ihr System neu gekennzeichnet wurde, aktivieren Sie den erzwungenen Modus für SELinux mit /etc/selinux/config oder führen Sie setenforce 1 aus. 

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.

Optimieren Sie die 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 Systemrollen sind eine Sammlung von unterstützten Ansible® Rollen, die konsistente Workflows gewährleisten 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

Produkt

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

Was ist Confidential Computing?

Beim Confidential Computing wird hardwarebasiertes Computing eingesetzt, um Daten zu schützen, wenn sie nicht im Ruhezustand sind oder übertragen werden – also während der tatsächlichen Nutzung.

Was sind SPIFFE und SPIRE?

SPIFFE und SPIRE sind 2 Open Source-Projekte für das Identitätsmanagement in dynamischen und vielfältigen Computing-Umgebungen. Gemeinsam lösen sie viele Sicherheitsprobleme.

Was ist Zero Trust?

Erfahren Sie mehr über Zero Trust, einen Ansatz zur Entwicklung von Sicherheitsarchitekturen, der auf dem Grundsatz basiert, dass jede Interaktion einen nicht vertrauenswürdigen Ausgangsstatus aufweist.

Ressourcen zu Sicherheit

Verwandte Artikel