Es gibt verschiedene Möglichkeiten, wie SELinux arbeiten kann. Dies wird durch die SELinux-Richtlinie definiert. In diesem Handbuch erfahren Sie mehr über SELinux-Richtlinien und wie Sie eine Richtlinie in SELinux festlegen.
Übersicht über die SELinux-Richtlinien
Lassen Sie uns einen kurzen Überblick über SELinux und seine Richtlinien geben. SELinux ist ein Akronym für „Security-Enhanced Linux“.” Es umfasst eine Reihe von Sicherheitspatches für den Linux-Kernel. SELinux wurde ursprünglich von der National Security Agency (NSA) entwickelt und im Jahr 2000 unter der GPL-Lizenz für die Open-Source-Entwicklungsgemeinschaft freigegeben. Es wurde 2003 mit dem Mainline-Linux-Kernel zusammengeführt.
SELinux bietet MAC (Mandatory Access Control) anstelle des standardmäßigen DAC (Discretionary Access Control). Dies ermöglicht die Implementierung einiger Sicherheitsrichtlinien, die sonst nicht implementiert werden könnten.
SELinux-Richtlinien sind Regelsätze, die die SELinux-Sicherheits-Engine leiten. Eine Richtlinie definiert Typen für Dateiobjekte und Domänen für Prozesse. Rollen werden verwendet, um den Zugriff auf Domänen einzuschränken. Benutzeridentitäten bestimmen, welche Rollen erreicht werden können.
Es stehen zwei SELinux-Richtlinien zur Verfügung:
- Gezielt: Die Standardrichtlinie. Implementiert die Zugangskontrolle zu gezielten Prozessen. Die Prozesse werden in einer eingeschränkten Domäne ausgeführt, in der der Prozess nur begrenzten Zugriff auf Dateien hat. Wenn ein begrenzter Prozess kompromittiert wird, wird der Schaden gemildert. Bei Diensten werden nur bestimmte Dienste in diese Domains gestellt.
- MLS: Steht für mehrstufige Sicherheit. Sehen Sie sich die Red Hat-Dokumentation zur SELinux-MLS-Richtlinie an.
Nicht zielgerichtete Prozesse werden in einer nicht eingeschränkten Domäne ausgeführt. Prozesse, die in nicht eingeschränkten Domänen ausgeführt werden, genießen fast vollständigen Zugriff. Wenn ein solcher Prozess kompromittiert wird, bietet SELinux keine Abschwächung. Der Angreifer kann sich Zugriff auf das gesamte System und die Ressourcen verschaffen. Für die nicht eingeschränkten Domänen gelten jedoch weiterhin DAC-Regeln domain.
Im Folgenden finden Sie eine kurze Liste von Beispielen für nicht eingeschränkte Domänen:
- initrc_t-Domain: init-Programme
- Kernel_t-Domäne: Kernel-Prozesse
- unconfined_t-Domäne: Benutzer, die sich am Linux-System angemeldet haben
Ändern der SELinux-Richtlinie
Die folgenden Beispiele werden in CentOS 8 . ausgeführt. Alle Befehle in diesem Artikel werden als Root-Benutzer ausgeführt. Für andere Distributionen lesen Sie bitte das entsprechende Tutorial zum Aktivieren von SELinux.
Um eine Richtlinie in SELinux zu ändern, überprüfen Sie zunächst den SELinux-Status. Der Standardstatus sollte SELinux-aktiviert im „Enforcing“-Modus mit der „targeted“-Richtlinie sein.
Um die SELinux-Richtlinie zu ändern, öffnen Sie die SELinux-Konfigurationsdatei in Ihrem bevorzugten Texteditor.
Hier ist unser Ziel die Variable „SELinuxTYPE“, die die SELinux-Richtlinie definiert define. Wie Sie sehen, ist der Standardwert „gezielt“.”
Alle in diesem Beispiel demonstrierten Schritte werden in CentOS 8 durchgeführt. Im Fall von CentOS wird die MLS-Richtlinie nicht standardmäßig installiert. Dies dürfte auch in anderen Distributionen der Fall sein. Erfahren Sie hier, wie Sie SELinux unter Ubuntu konfigurieren. Stellen Sie sicher, dass Sie zuerst das Programm installieren. Im Fall von Ubuntu, CentOS, openSUSE, Fedora, Debian und anderen lautet der Paketname „selinux-policy-mls“.”
$ dnf install selinux-policy-mls
In diesem Fall werden wir die Richtlinie auf MLS umstellen. Ändern Sie den Wert der Variablen entsprechend.
Speichern Sie die Datei und verlassen Sie den Editor. Um diese Änderungen in Kraft zu setzen, müssen Sie das System neu starten.
$ NeustartBestätigen Sie die Änderung, indem Sie Folgendes ausgeben.
$ sestatusSELinux-Modi ändern
SELinux kann in drei verschiedenen Modi betrieben werden. Diese Modi bestimmen, wie die Richtlinie durchgesetzt wird.
- Erzwungen: Jede Aktion gegen die Richtlinie wird blockiert und im Überwachungsprotokoll gemeldet.
- Zulässig: Jede Aktion gegen die Richtlinie wird nur im Überwachungsprotokoll gemeldet.
- Deaktiviert: SELinux ist deaktiviert.
Um den Modus in SELinux vorübergehend zu ändern, verwenden Sie den Befehl setenforce. Wenn das System neu gestartet wird, wird das System auf die Standardeinstellungen zurückgesetzt.
$ setenforce Erzwingen$ setenforced Permissive
Um den Modus in SELinux dauerhaft zu ändern, müssen Sie die SELinux-Konfigurationsdatei anpassen.
Speichern und schließen Sie den Editor. Starten Sie das System neu, um die Änderungen zu übernehmen.
Sie können die Änderung mit dem Befehl sestatus überprüfen.
Fazit
SELinux ist ein leistungsstarker Mechanismus zur Durchsetzung von Sicherheit. Hoffentlich hat Ihnen dieser Leitfaden geholfen zu lernen, wie Sie das Verhalten von SELinux konfigurieren und verwalten.
Viel Spaß beim Rechnen!