Heim > Artikel > Betrieb und Instandhaltung > Was sind die drei Arbeitsmodi von SELinux?
SELinux verfügt über drei Arbeitsmodi: Deaktiviert, Zulässig und Durchsetzend. Im Deaktivierungsmodus ist SELinux ausgeschaltet und die standardmäßige DAC-Zugriffskontrollmethode wird verwendet. Im Permissive-Modus ist SELinux aktiviert, Sicherheitsrichtlinienregeln werden jedoch nicht erzwungen; der Zugriff ist weiterhin zulässig, wenn Sicherheitsrichtlinienregeln den Zugriff verweigern sollten. Im Durchsetzungsmodus wird SELinux gestartet und alle Sicherheitsrichtlinienregeln werden durchgesetzt.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Anfänger können SELinux auf diese Weise verstehen. Es handelt sich um ein Funktionsmodul, das unter Linux zur Verbesserung der Systemsicherheit eingesetzt wird. Wir wissen, dass in herkömmlichen Linux-Systemen die Standardberechtigungen darin bestehen, die Lese-, Schreib- und Ausführungsberechtigungen des Eigentümers, der Gruppe und anderer einer Datei oder eines Verzeichnisses zu steuern. Diese Kontrollmethode wird als
DAC-Methode (Discretionary Access Control) bezeichnet. In SELinux wird das „Mandatory Access Control (MAC)-System“ verwendet, das steuert, ob ein Prozess Zugriffsrechte auf Dateien oder Verzeichnisse in einem bestimmten Dateisystem hat, und die Grundlage für die Bestimmung, ob ein Prozess auf Dateien oder Verzeichnisse zugreifen kann. , hängt von vielen in SELinux festgelegten Richtlinienregeln ab. Apropos, es ist notwendig, dass die Leser die Eigenschaften dieser beiden Zugangskontrollsysteme im Detail verstehen:
Discretionary Access Control (DAC) ist die Standard-Zugriffskontrollmethode von Linux, die auf dem Benutzer basiert Identität und die rwx-Berechtigungen der Identität für Dateien und Verzeichnisse werden verwendet, um zu bestimmen, ob auf sie zugegriffen werden kann. Allerdings haben wir auch einige Probleme bei der tatsächlichen Verwendung der DAC-Zugriffskontrolle festgestellt: Die Root-Berechtigungen sind zu hoch und die rwx-Berechtigungen sind für den Root-Benutzer nicht wirksam wird das Linux-System beschädigen.
Eine unangemessene Zuweisung von Berechtigungen führt zu schwerwiegenden Konsequenzen, wie z. B. dem Festlegen von 777-Berechtigungen für vertrauliche Dateien oder Verzeichnisse im System oder dem Festlegen spezieller Berechtigungen – SetUID-Berechtigungen für vertrauliche Dateien usw.
Um den Lesern ein klares Verständnis der Rolle von SELinux zu vermitteln, finden Sie hier ein Beispiel. Angenommen, in Apache wird eine Sicherheitslücke entdeckt, die einem Remote-Benutzer den Zugriff auf vertrauliche Dateien des Systems (z. B. /etc/shadow) ermöglicht. . Wenn SELinux in unserem Linux aktiviert ist, wird der Zugriff des Remote-Benutzers auf die Datei /etc/shadow über Apache durch SELinux blockiert, was Linux schützt, da der Apache-Dienstprozess nicht über die Berechtigung zum Zugriff auf /etc/shadow verfügt. Die Rolle des Systems.
SELinux-Arbeitsmodi (Deaktiviert, Zulässig und Erzwingend)
Basierend auf der Zugriffskontrollmethode, die von herkömmlichen Linux-Systemen verwendet wird, kann die zusätzliche Verwendung von SELinux die Systemsicherheit verbessern. Wie funktioniert SELinux?
Bevor wir den Arbeitsmodus von SELinux erklären, erklären wir einige Konzepte.
1.Betreff: Es handelt sich um den Prozess, der auf Datei- oder Verzeichnisressourcen zugreifen möchte. Um Ressourcen zu erhalten, ist der grundlegende Prozess wie folgt: Der Benutzer ruft einen Befehl auf, der Befehl generiert einen Prozess und der Prozess greift auf die Datei- oder Verzeichnisressource zu. In einem diskretionären Zugriffskontrollsystem (Linux-Standardberechtigungen) ist das durch Berechtigungen kontrollierte Subjekt der Benutzer; in einem obligatorischen Zugriffskontrollsystem (SELinux) ist das durch Richtlinienregeln kontrollierte Subjekt der Prozess.
2. Objekt (Objekt): Dieses Konzept ist relativ klar, es handelt sich um die Datei- oder Verzeichnisressource, auf die zugegriffen werden muss.
3. Richtlinie: Es gibt eine große Anzahl von Prozessen und Dateien im Linux-System, daher ist die Anzahl der SELinux-Regeln, die den Zugriff von Prozessen auf Dateien einschränken, noch umständlicher, wenn jede Regel manuell vom Administrator festgelegt werden muss , dann wird die Verfügbarkeit von SELinux extrem niedrig sein. Glücklicherweise müssen wir die Regeln nicht manuell definieren. SELinux definiert standardmäßig zwei Richtlinien. Rufen Sie einfach die Richtlinie auf und sie können normal verwendet werden. Die beiden Standardrichtlinien lauten wie folgt:
4. Sicherheitskontext: Jeder Prozess, jede Datei und jedes Verzeichnis verfügt über einen eigenen Sicherheitskontext. Ob der Prozess auf die Datei oder das Verzeichnis zugreifen kann, hängt davon ab, ob der Sicherheitskontext übereinstimmt. Wenn der Sicherheitskontext des Prozesses mit dem Sicherheitskontext der Datei oder des Verzeichnisses übereinstimmt, kann der Prozess auf die Datei oder das Verzeichnis zugreifen. Um festzustellen, ob der Sicherheitskontext eines Prozesses mit dem Sicherheitskontext einer Datei oder eines Verzeichnisses übereinstimmt, müssen Sie sich natürlich auf die Regeln in der Richtlinie verlassen.
Zum Beispiel müssen wir einen Partner finden, Männer können als Subjekt betrachtet werden und Frauen als Ziele. Ob ein Mann eine Frau verfolgen kann (ob das Subjekt auf das Ziel zugreifen kann), hängt hauptsächlich davon ab, ob die Persönlichkeiten der beiden Personen zueinander passen (ob die Sicherheitskontexte des Subjekts und des Ziels übereinstimmen). Ob die Persönlichkeiten zweier Personen jedoch geeignet sind, muss anhand spezifischer Bedingungen wie Lebensgewohnheiten, Verhalten, familiärem Umfeld usw. beurteilt werden. (Ob der Sicherheitskontext übereinstimmt, muss anhand der Regeln in der Richtlinie festgestellt werden).
Zeichnen wir ein schematisches Diagramm, um die Beziehung zwischen diesen Konzepten zu zeigen, wie in Abbildung 1 dargestellt.
Abbildung 1 Relevante Konzepte des SELinux-Betriebsmodus
Erläutern Sie dieses Diagramm: Wenn das Subjekt auf das Ziel zugreifen möchte und SELinux im System gestartet wird, muss die Zugriffsanforderung des Subjekts zunächst mit der in SELinux definierten Richtlinie verarbeitet werden übereinstimmen. Wenn der Prozess den in der Richtlinie definierten Regeln entspricht, ist der Zugriff zulässig. Zu diesem Zeitpunkt kann der Sicherheitskontext des Prozesses mit dem Sicherheitskontext des Ziels abgeglichen werden. Wenn der Vergleich fehlschlägt, wird der Zugriff verweigert und der Zugriffsvektorcache aktiviert wird über AVC (Access Vector Cache) geleitet. Wird hauptsächlich zum Aufzeichnen aller Zugriffsstatistiken im Zusammenhang mit SELinux und zum Generieren von Zugriffsverweigerungsinformationen verwendet. Wenn der Sicherheitskontext übereinstimmt, kann normal auf die Zieldatei zugegriffen werden. Ob am Ende tatsächlich auf die Zieldatei zugegriffen werden kann, hängt natürlich davon ab, ob der Benutzer, der den Prozess erstellt hat (Subjekt), über angemessene Lese-, Schreib- und Ausführungsberechtigungen für die Zieldatei verfügt.
Wenn wir SELinux verwalten, ändern wir normalerweise nur > den Sicherheitskontext einer Datei oder eines Verzeichnisses , sodass er mit dem Sicherheitskontext des zugreifenden Prozesses übereinstimmt oder nicht, um zu steuern, ob der Prozess auf Datei- oder Verzeichnisressourcen zugreifen kann; Es ist selten, die spezifischen Regeln in der Richtlinie zu ändern, da es zu viele Regeln gibt und es zu kompliziert ist, sie zu ändern. Wir können jedoch manuell festlegen, ob die Regeln wirksam werden, um die Aktivierung und Deaktivierung der Regeln zu steuern.
Arbeitsmodi von SELinux
SELinux bietet drei Arbeitsmodi: Deaktiviert, Zulässig und Durchsetzend, und jeder Modus bietet unterschiedliche Vorteile für die Linux-Systemsicherheit.
Arbeitsmodus deaktivieren (Aus-Modus)
Im Deaktivierungsmodus ist SELinux ausgeschaltet und die standardmäßige DAC-Zugriffskontrollmethode wird verwendet. Dieser Modus ist in Umgebungen nützlich, die keine erhöhte Sicherheit erfordern.
Wenn beispielsweise eine laufende Anwendung aus Ihrer Sicht einwandfrei funktioniert, aber eine große Anzahl von SELinux AVC-Ablehnungsmeldungen generiert, kann es sein, dass dadurch die Protokolldatei überfüllt wird und das System unbrauchbar wird. In diesem Fall besteht die einfachste Lösung darin, SELinux zu deaktivieren. Sie können jedoch auch den richtigen Sicherheitskontext für die Dateien festlegen, auf die Ihre Anwendung zugreift.
Beachten Sie, dass Sie vor der Deaktivierung von SELinux überlegen müssen, ob SELinux erneut auf dem System verwendet werden darf. Wenn Sie sich entscheiden, es in Zukunft auf „Erzwingen“ oder „Zulässig“ zu setzen, übergibt das System automatisch eine SELinux-Datei, wenn das System aktiviert ist Nächstes Mal neu verarbeiten.
Das Ausschalten von SELinux ist ebenfalls sehr einfach. Bearbeiten Sie einfach die Konfigurationsdatei /etc/selinux/config und ändern Sie SELINUX= im Text in SELINUX=disabled. Nach dem Neustart des Systems wird SELinux deaktiviert.
Permissiver Arbeitsmodus (permissiver Modus)
Im permissiven Modus ist SELinux aktiviert, aber Sicherheitsrichtlinienregeln werden nicht durchgesetzt. Wenn Sicherheitsrichtlinienregeln den Zugriff verweigern sollten, ist der Zugriff dennoch zulässig. Es wird jedoch eine Meldung an die Protokolldatei gesendet, dass der Zugriff verweigert werden sollte.
Der SELinux-Permissive-Modus wird hauptsächlich in den folgenden Situationen verwendet:
Überprüfen Sie die aktuellen SELinux-Richtlinienregeln.
Testen Sie neue Anwendungen, um zu sehen, welche Auswirkungen die SELinux-Richtlinienregeln haben, wenn sie auf diese Programme angewendet werden.
Beheben Sie einen bestimmten Dienst oder ein Problem wo die Anwendung unter SELinux nicht mehr richtig funktioniert.
In einigen Fällen kann der Befehl audit2allow verwendet werden, um das SELinux-Überwachungsprotokoll zu lesen und neue SELinux-Regeln zu generieren, um verweigerte Verhaltensweisen selektiv zuzulassen. Dies ist auch eine Möglichkeit, Anwendungen zuzulassen, ohne SELinux zu deaktivieren Systeme.
Enforcing-Arbeitsmodus (Enforcing-Modus)
Wie aus dem Namen dieses Modus ersichtlich ist, wird im Enforcing-Modus SELinux gestartet und alle Sicherheitsrichtlinienregeln werden durchgesetzt.
Verwandte Empfehlungen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas sind die drei Arbeitsmodi von SELinux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!