Jump to section

Was ist SELinux?

URL kopieren

Migrieren Sie von CentOS Linux zu einem cloudfähigen Betriebssystem

Die Einstellung von CentOS Linux bietet die Möglichkeit, zu einem Betriebssystem zu wechseln, das Ihre Cloud-Initiativen heute und in der Zukunft besser unterstützt. Mit Red Hat Enterprise Linux (RHEL) erhalten Sie eine intelligente, produktionsgerechte Betriebsbasis für Hybrid Cloud- und Multi-Cloud-Umgebungen.

Security-Enhanced Linux (SELinux) ist eine Sicherheitsarchitektur für Linux®-Systeme, die Administrationsteams noch 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 Jahr 2000 für die Open Source Community freigegeben und 2003 in den Linux-Upstream-Kernel integriert.

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

Wenn eine Anwendung/ein Prozess, auch Subjekt genannt, den Zugriff für ein Objekt (wie eine Datei) anfordert, prüft SELinux per AVC (Access Vector Cache), wo die Berechtigungen für die Subjekte und Objekte im Cache gespeichert werden.

Wenn SELinux auf der Basis der im Cache gespeicherten Berechtigungen keine Entscheidung über den Zugriff treffen kann, leitet es die Anfrage an den Sicherheitsserver weiter. Der wiederum prüft den Sicherheitskontext der Anwendung/des Prozesses und der Datei. Dieser Sicherheitskontext wird aus der SELinux-Richtliniendatenbank vorgegeben. Und auf dieser Grundlage wird die Berechtigung entweder erteilt oder abgelehnt. 

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 beiden gängigsten Methoden sind die gezielte Richtlinie oder die Multi-Level-Sicherheit (MLS).

Die gezielte Richtlinie ist die Standardoption und deckt eine Reihe 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 sich SELinux im sogenannten Permissive-/Enforcing-Modus befindet oder deaktiviert ist und welche Richtlinie geladen werden muss.

SELinux Labeling und Type Enforcement

Dies sind die beiden wichtigsten Konzepte für SELinux.

SELinux fungiert als Labeling-System, das heißt, alle Dateien, Prozesse und Ports eines Systems sind mit einem SELinux-Label versehen. Solche Labels sorgen für eine logische Gruppierung. Der Kernel verwaltet diese Labels während des Boot-Vorgangs.

Die Labels selbst haben das Format user:role:type:level (wobei „level" optional ist). „User", „role" und „level" werden in komplexeren Implementierungen von SELinux (wie mit MLS) verwendet. Der Label-Typ ist der wichtigste Bestandteil der gezielten Richtlinie. 

SELinux nutzt Type Enforcement, um die für das System definierte Richtlinie durchzusetzen. Type Enforcement ist Teil einer SELinux-Richtlinie, die bestimmt, ob ein Prozess, der mit einem bestimmten Typ ausgeführt wird, auf eine Datei mit einem bestimmten Typen-Label zugreifen kann.

SELinux-Aktivierung

Wenn SELinux in Ihrer Umgebung deaktiviert ist, können Sie es aktivieren, indem Sie /etc/selinux/config bearbeiten und „SELINUX=permissive" konfigurieren. Wenn SELinux zuvor noch nicht aktiviert war, sollten Sie es nicht gleich in den Enforcing-Modus versetzen, da das System höchstwahrscheinlich noch über Objekte mit falschem Label verfügt, die den Systemstart verhindern können.  

Sie können eine automatische Neuvergabe der Label des Dateisystems (Re-Label) erzwingen, indem Sie im Root-Verzeichnis eine leere Datei namens .autorelabel erstellen und einen Neustart durchführen. Wenn das System zu viele Fehler aufweist, sollten Sie das System im Permissive-Modus neu starten, damit dieser erfolgreich ist. Nachdem alle Label neu vergeben wurden, konfigurieren Sie SELinux für den Enforcing-Modus, indem Sie /etc/selinux/config einstellen und neu starten oder setenforce 1 ausführen. 

Wenn Ihr Systemadministrationsteam nicht mit der Befehlszeile vertraut ist, kann es für die Verwaltung von SELinux die grafischen Tools verwenden. 

SELinux bietet eine zusätzliche Sicherheitsschicht für Ihr System, die in die Linux-Distributionen integriert ist. Sie sollte aktiviert bleiben, damit Ihr System vor unerlaubten Zugriffen geschützt ist.

Traditionell wird für Linux- und UNIX-Systeme DAC verwendet. SELinux ist ein Beispiel eines MAC-Systems für Linux. 

Mit DAC werden den Dateien und Prozessen Eigentümer zugeordnet. Das können Nutzende, Gruppen oder andere Personen sein. Nutzende können die Berechtigungen für ihre eigenen Dateien konfigurieren.

Der Root-Nutzende besitzt in einem DAC-System die vollständige Zugriffskontrolle. Wenn Sie Root-Zugriff haben, können Sie auf die Dateien anderer zugreifen und im System beliebige Aktionen ausführen. 

Bei MAC-Systemen wie SELinux aber werden Zugriffe über vom Administrationsteam konfigurierte Richtlinien geregelt. Und auch wenn die DAC-Einstellungen Ihres Home-Verzeichnisses geändert werden, verhindert dann eine vorhandene SELinux-Richtlinie, dass andere Benutzerinnen und Benutzer oder Prozesse auf das Verzeichnis zugreifen können, und das System bleibt geschützt. 

Mit SELinux-Richtlinien können Sie spezifische Einstellungen konfigurieren und eine große Anzahl von Prozessen abdecken. So können Sie Änderungen mit SELinux vornehmen, die Zugriffe zwischen verschiedenen Nutzenden, Dateien, Verzeichnissen usw. beschränken.

Wenn SELinux einen Fehler meldet, gibt es dafür einen Grund. Höchstwahrscheinlich ist es einer der vier Folgenden:

  1. Die Labels sind falsch: Ist ein Label falsch, können Sie dies mithilfe der Tools korrigieren.
  2. Eine Richtlinie muss korrigiert werden: Das kann bedeuten, dass Sie SELinux über vorgenommene Änderungen informieren oder eine Richtlinie anpassen müssen. Dies kann mit Booleans oder Richtlinienmodulen erfolgen.
  3. In der Richtlinie ist ein Bug vorhanden: Die Richtlinie enthält möglicherweise einen Bug, der behoben werden muss.
  4. Es liegt ein unerlaubter Systemzugriff vor: 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?

Darunter versteht man die Einstellungen für die Aktivierung/Deaktivierung von SELinux-Funktionen. Davon gibt es Hunderte, die zum Großteil vordefiniert sind. Sie können herausfinden, welche das sind, indem Sie den Befehl 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. Weiterhin 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:

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

Weiterlesen

Artikel

Was ist Linux?

Linux ist ein Open Source-Betriebssystem, das aus einer Grundkomponente, dem Kernel, und aus mehreren Tools, Apps und Services besteht.

Artikel

Was ist SELinux?

Security-Enhanced Linux (SELinux) ist eine Sicherheitsarchitektur für Linux®-Systeme, die Administratoren noch mehr Kontrolle darüber bietet, wer auf das System zugreifen darf.

Artikel

Was ist der Linux-Kernel?

Der Linux-Kernel ist die Hauptkomponente eines Linux-Betriebssystems und die zentrale Schnittstelle zwischen der Hardware eines Computers und seinen Prozessen.