Bereits zu Kernel 2.6-Zeiten wurde ein neues Sicherheitssystem eingeführt, das einen Mechanismus für Sicherheitsrichtlinien zur Zugriffskontrolle bereitstellte. Bei diesem System handelt es sich um Security Enhanced Linux (SELinux), das von der National Security Agency (NSA) der USA bereitgestellt wurde. Es führt eine robuste Mandatory Access Control-Architektur für Linux-Kernel-Subsysteme ein. Wenn Sie SELinux während Ihrer gesamten Linux-Karriere deaktiviert oder ignoriert haben, ist dieser Artikel das Richtige für Sie: Eine Einführung in das SELinux-System, das unter Ihrem Linux-Desktop oder -Server läuft, Berechtigungen einschränkt und sogar die Möglichkeit ausschließt, dass anfällige Programme oder Daemons Schaden anrichten. Bevor ich beginne, sollten Sie bereits wissen, dass SELinux in erster Linie ein Tool ist, das unter Red Hat Linux und seinen abgeleiteten Distributionen verfügbar ist. In ähnlicher Weise verwenden Ubuntu und SUSE (und ihre Derivate) AppArmor. SELinux und AppArmor unterscheiden sich erheblich. Sie können SELinux auf SUSE, openSUSE, Ubuntu usw. installieren, aber es ist unglaublich schwierig, wenn Sie nicht über sehr gute Linux-Kenntnisse verfügen. Lassen Sie mich Ihnen nun SELinux vorstellen. DAC im Vergleich zu MAC Der traditionelle Zugriffskontrollstandard unter Linux ist Discretionary Access Control (DAC). In dieser Form wird eine Software oder ein Daemon als Benutzer-ID (UID) oder Set Owner User ID (SUID) ausgeführt und verfügt über die Berechtigungen dieses Benutzers für Objekte (Dateien, Sockets und andere Prozesse). Dadurch kann Schadcode leicht unter bestimmten Berechtigungen ausgeführt werden und Zugriff auf kritische Subsysteme erhalten. Andererseits erzwingt Mandatory Access Control (MAC) die Isolierung von Informationen auf der Grundlage von Vertraulichkeit und Integrität, um den Schaden zu begrenzen. Diese Eingrenzungseinheit arbeitet unabhängig von herkömmlichen Linux-Sicherheitsmechanismen und kennt kein Superuser-Konzept. So funktioniert SELinux Beachten Sie die mit SELinux verbundenen Konzepte:
Wenn ein Subjekt (z. B. ein Programm) versucht, auf ein Zielobjekt (z. B. eine Datei) zuzugreifen, führt der SELinux-Sicherheitsserver (im Kernel) eine Prüfung anhand der Richtliniendatenbank durch. Basierend auf dem aktuellen Modus kann der Auftraggeber auf das Ziel zugreifen, wenn der SELinux-Sicherheitsserver die Berechtigung erteilt. Wenn der SELinux-Sicherheitsserver die Berechtigung verweigert, wird eine Ablehnungsmeldung in /var/log/messages protokolliert. Klingt relativ einfach, oder? Der eigentliche Vorgang ist komplizierter, aber um die Einführung zu vereinfachen, werden nur die wichtigen Schritte aufgeführt. Modell SELinux hat drei Modi (die vom Benutzer eingestellt werden können). Diese Modi bestimmen, wie SELinux auf Prinzipalanforderungen reagiert. Diese Modi sind:
Abbildung 1: Der Befehl getenforce zeigt, dass sich SELinux im Zustand „Enforcing“ befindet. Standardmäßig ist SELinux auf den meisten Systemen auf „Erzwingen“ eingestellt. Woher wissen Sie, in welchem Modus sich Ihr System gerade befindet? Sie können dies mit einem einfachen Befehl überprüfen: getenforce. Dieser Befehl ist unglaublich einfach zu verwenden (da er nur den SELinux-Modus meldet). Um dieses Tool zu verwenden, öffnen Sie ein Terminalfenster und führen Sie den Befehl getenforce aus. Der Befehl gibt „Enforcing“, „Permissive“ oder „Disabled“ zurück (siehe Abbildung 1 oben). Das Einstellen des SELinux-Modus ist eigentlich ganz einfach – es hängt davon ab, auf welchen Modus Sie ihn einstellen möchten. Denken Sie daran: Das Deaktivieren von SELinux wird niemals empfohlen. Warum? Wenn Sie dies tun, besteht die Möglichkeit, dass Ihre Dateien auf der Festplatte mit falschen Berechtigungen gekennzeichnet sind. Zum Korrigieren müssen Sie die Berechtigungen dann neu benennen. Und Sie können den Modus eines Systems nicht ändern, das im deaktivierten Modus gestartet wurde. Die beste Vorgehensweise ist „Erzwingen“ oder „Doping“. Sie können den SELinux-Modus über die Befehlszeile oder über die Datei /etc/selinux/config ändern. Um den Modus über die Befehlszeile festzulegen, können Sie das Tool „setenforce“ verwenden. Um den Erzwingungsmodus festzulegen, gehen Sie wie folgt vor:
Abbildung 2: Einstellen des SELinux-Modus auf „Erzwingen“. Um den Modus auf „Permissiv“ einzustellen, gehen Sie wie folgt vor:
Abbildung 3: SELinux-Modus auf „Permissive“ einstellen. HINWEIS: Das Festlegen des Modus über die Befehlszeile überschreibt die Einstellung in der SELinux-Konfigurationsdatei. Wenn Sie den Modus lieber in der SELinux-Befehlsdatei festlegen möchten, öffnen Sie die Datei mit Ihrem bevorzugten Editor und suchen Sie nach dieser Zeile: SELINUX=permissiv Sie können den Modus nach Ihren Wünschen einstellen und die Datei speichern. Es gibt eine dritte Möglichkeit, den SELinux-Modus zu ändern (über den Bootloader), aber ich empfehle dies neuen Benutzern nicht. Strategietyp Es gibt zwei Arten von SELinux-Richtlinien:
Sie können den Richtlinientyp in der Datei /etc/selinux/config ändern. Öffnen Sie diese Datei mit Ihrem bevorzugten Editor und suchen Sie diese Zeile: SELINUXTYPE=zielgerichtet Ändern Sie diese Option entsprechend Ihren Anforderungen in „Gezielt“ oder „Streng“. Überprüfen Sie den vollständigen SELinux-Status Es gibt ein praktisches SELinux-Tool, mit dem Sie einen detaillierten Statusbericht zu Ihrem SELinux-fähigen System erhalten können. Dieser Befehl wird im Terminal wie folgt ausgeführt: sestatus -v Sie sollten eine Ausgabe ähnlich wie in Abbildung 4 sehen. Abbildung 4: Ausgabe des Befehls „sestatus -v“. Nur die Haut Wie Sie vielleicht erwarten, habe ich nur an der Oberfläche von SELinux gekratzt. SELinux ist in der Tat ein komplexes System. Um besser zu verstehen, wie es funktioniert und wie Sie es für Ihren Desktop oder Server optimieren können, müssen Sie tiefer in die Materie einsteigen. Ich habe die Fehlerbehebung und das Erstellen benutzerdefinierter SELinux-Richtlinien noch nicht behandelt. SELinux ist ein leistungsstarkes Tool, das alle Linux-Administratoren kennen sollten. Nachdem Sie nun eine Einführung in SELinux erhalten haben, empfehle ich Ihnen dringend, zu Linux.com zurückzukehren (da dort weitere Artikel zu diesem Thema veröffentlicht werden) oder sich für eine ausführlichere Anleitung die NSA SELinux-Dokumentation anzusehen. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Analyse des MySQL-Client-Installationsprozesses auf dem Mac
>>: Navicat-Remoteverbindung zur MySQL-Implementierungsschritteanalyse
Der spezifische Code zur Implementierung von Skin...
Szenario 1: Aufgrund von Serverbeschränkungen ist...
Struktureller (Position) Pseudoklassenselektor (C...
Bei der Entwicklung für Mobilgeräte tritt häufig ...
Die Docker-Image-ID ist eindeutig und kann ein Im...
Beginnen wir mit einer Frage Als ich vor fünf Jah...
Inhaltsverzeichnis 1. Ich habe das Root-Passwort ...
Inhaltsverzeichnis Wie wird das SQL-Protokoll ang...
Die gebräuchlichste, am häufigsten verwendete und ...
Inhaltsverzeichnis 1. Hintergrund 2. Verifizierun...
Eine auf Canvas basierende Demo einer dynamischen...
Das Modul async_hooks ist eine experimentelle API...
1. Grundlinien 2. Spezialeffekte (die Effekte sin...
Es ist sehr einfach, eine Go-Umgebung unter Linux...
1. Was ist Responsive Design? Responsive Design b...