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

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 zielgerichtete 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 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. Kennzeichen sind eine logische Art und Weise, Dinge zusammen zu gruppieren. Der Kernel verwaltet diese Kennzeichen während des Boot-Vorgangs.

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 zielgerichtete 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 mit der Befehlszeile nicht 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.

Wie Sie mit Red Hat® Enterprise Linux die Sicherheit verbessern können

Red Hat Ressourcen

Ursprünglich haben Linux- und UNIX-Systeme DAC verwendet. 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 daran, auf das Verzeichnis zugreifen. 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.

So verwalten Sie Ihre Linux-Umgebungen mit modernen Tools und Techniken

Wenn ein Fehler in SELinux 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 geändert 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 ein Bug in der Richtlinie 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, können Sie getsebool -a ausführen.

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. Dies beinhaltet: 

  • Das Aktivieren von SELinux im erzwungenen oder zulässigem Modus, um die Konsistenz der Kontrollen sicherzustellen
  • Das 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

Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

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 LDAP (Lightweight Directory Access Protocol)?

Erfahren Sie, was LDAP-Authentifizierung ist, wie sie funktioniert und warum sie für sichere Benutzerverwaltung und Zugriffskontrolle in Netzwerken wichtig ist.

Was ist Role-based Access Control (RBAC)

Role-based Access Control ist eine Methode zum Managen des Benutzerzugriffs auf Systeme, Netzwerke oder Ressourcen auf der Basis der jeweiligen Rolle innerhalb eines Teams oder einer größeren Organisation.

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.

Ressourcen zu Sicherheit

Verwandte Artikel