Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was sind die drei Arbeitsmodi von SELinux?

Was sind die drei Arbeitsmodi von SELinux?

青灯夜游
青灯夜游Original
2023-02-13 10:04:136196Durchsuche

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.

Was sind die drei Arbeitsmodi von SELinux?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Was ist SELinux?? ). Es wurde entwickelt, um die Sicherheit herkömmlicher Linux-Betriebssysteme zu verbessern und verschiedene Berechtigungsprobleme im DAC-System (Discretionary Access Control) in herkömmlichen Linux-Systemen zu lösen (z. B. übermäßige Root-Berechtigungen usw.).

Das SELinux-Projekt wurde im Jahr 2000 unter der GPL-Lizenz als Open Source bereitgestellt. SELinux wurde nach und nach populär, als Red Hat SELinux in seine Linux-Distribution aufnahm. Mittlerweile wird SELinux von vielen Organisationen häufig verwendet, und fast alle Linux-Kernelversionen 2.6 und höher verfügen über integrierte SELinux-Funktionen.

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.

Die Standardberechtigungen von Linux sind zu einfach. Sie umfassen nur die Identität des Eigentümers, der Gruppe, zu der sie gehören, und anderer Personen. Die Berechtigungen umfassen nur Lese-, Schreib- und Ausführungsberechtigungen, was der Unterteilung von Berechtigungen nicht förderlich ist Einstellung.

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.

  • Mandatory Access Control (MAC) verwendet die Standardrichtlinienregeln von SELinux, um den Zugriff bestimmter Prozesse auf Systemdateiressourcen zu steuern. Mit anderen Worten: Selbst wenn Sie ein Root-Benutzer sind und beim Zugriff auf eine Dateiressource einen falschen Prozess verwenden, können Sie nicht auf die Dateiressource zugreifen.

    Auf diese Weise kontrolliert SELinux nicht nur Benutzer und Berechtigungen, sondern auch Prozesse. Auf welche Dateiressourcen jeder Prozess zugreifen kann und auf welche Prozesse jede Dateiressource zugreifen kann, wird durch die SELinux-Regelrichtlinie bestimmt.
  • Beachten Sie, dass in SELinux die Standardberechtigungen von Linux weiterhin wirksam sind. Mit anderen Worten: Damit ein Benutzer auf eine Datei zugreifen kann, müssen die Berechtigungen des Benutzers den rwx-Berechtigungen entsprechen, und der Prozess des Benutzers ist erforderlich um die Vorschriften von SELinux einzuhalten.
  • Allerdings gibt es so viele Prozesse und so viele Dateien im System. Wenn die Zuordnung und Angabe manuell erfolgt, ist der Arbeitsaufwand zu groß. Daher bietet SELinux viele Standardrichtlinienregeln, die relativ vollständig sind. Wir werden später lernen, wie diese Richtlinienregeln angezeigt und verwaltet werden.

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:

  • -targeted: Dies ist die Standardrichtlinie von SELinux. Diese Richtlinie beschränkt hauptsächlich Netzwerkdienste und hat nur sehr wenige Einschränkungen für das lokale System. Diese Strategie reicht uns.
  • -mls: Mehrstufige Sicherheitsschutzstrategie, diese Strategie ist restriktiver.

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.

Was sind die drei Arbeitsmodi von SELinux?
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn