Linux/SELinux/02 Kontext: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 69: | Zeile 69: | ||
== Praxis: Kontexte anzeigen und ändern == | == Praxis: Kontexte anzeigen und ändern == | ||
; SELinux-Kontext von Dateien und Verzeichnissen anzeigen | ; SELinux-Kontext von Dateien und Verzeichnissen anzeigen | ||
<syntaxhighlight lang="bash" highlight="1" copy line> | <syntaxhighlight lang="bash" highlight="1" copy line> | ||
Version vom 30. März 2026, 03:37 Uhr
Linux/SELinux/02 Kontext - Security Context Verwaltung
Beschreibung
- Kennzeichnung
Prozesse und Dateien werden mit einem Kontext gekennzeichnet
- Kontext
- SELinux-Benutzer
- Rolle
- Typ
- Sicherheitsstufe
- Ausführung von SELinux
Entscheidungen zur Zugriffskontrolle des Kontexts
SELinux bietet eine Kombination aus
- Beispiele für SELinux-Kontexte
SELinux-Kontexte werden auf Prozessen, Linux-Benutzern und Dateien unter Linux-Betriebssystemen verwendet, auf denen SELinux läuft
Kontext-Syntax
SELinuxUser:role:type:level
- Felder
| Bestandteil | Beispiel | Beschreibung |
|---|---|---|
| user | <name>_u | SELinux-Benutzer
|
| role | <name>_r | SELinux-Rolle
|
| type | <name>_t | SELinux-Typ – 'der wichtigste Bestandteil' im Type-Enforcement-Modell
|
| level | s0 | SELinux-Level – die Sicherheitsstufe
|
Domänenübergänge
Ein Prozess in einer Domäne wechselt in eine andere Domäne, indem er eine Anwendung ausführt, die den Typ entrypoint für die neue Domäne hat
- Die Berechtigung entrypoint wird in der SELinux-Richtlinie verwendet und steuert, welche Anwendungen zum Betreten einer Domäne verwendet werden können
- Das folgende Beispiel veranschaulicht einen Domänenwechsel
- Ein Beispiel für einen Domänenübergang
Ein Benutzer möchte sein Passwort ändern
- Dazu führt er das Dienstprogramm passwd aus
Die ausführbare Datei /usr/bin/passwd ist mit dem Typ passwd_exec_t gekennzeichnet. Das Dienstprogramm passwd greift auf /etc/shadow zu, das mit dem Typ shadow_t gekennzeichnet ist.
Eine SELinux-Richtlinienregel besagt, dass Prozesse, die in der passwd_t-Domäne laufen, Dateien lesen und schreiben dürfen, die mit dem Typ shadow_t gekennzeichnet sind. Wenn ein Benutzer das Dienstprogramm passwd ausführt, wechselt der Shell-Prozess des Benutzers in die passwd_t-Domäne. Da bei SELinux die Standardaktion „Verweigern“ ist und eine Regel existiert, die Anwendungen, die in der passwd_t-Domäne laufen, den Zugriff auf Dateien mit dem Typ shadow_t erlaubt, darf die passwd-Anwendung auf /etc/shadow zugreifen und das Passwort des Benutzers aktualisieren.
Praxis: Kontexte anzeigen und ändern
- SELinux-Kontext von Dateien und Verzeichnissen anzeigen
ls -Z file1
-rwxrw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 file1
- SELinux- und Linux-Benutzer
Geben Sie den folgenden Befehl als root ein, um eine Liste der Zuordnungen zwischen SELinux- und Linux-Benutzerkonten anzuzeigen (das Paket policycoreutils-python muss installiert sein):
sudo semanage login -l
Anmeldename SELinux-Benutzer MLS/MCS-Bereich Dienst
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
- Prozesskontext
Verwenden Sie den Befehl ps -eZ, um den SELinux-Kontext für Prozesse anzuzeigen. Anzeigen des SELinux-Kontexts für das Dienstprogramm passwd:
ps -eZ | grep passwd
unconfined_u:unconfined_r:passwd_t:s0-s0:c0.c1023 13212 pts/1 00:00:00 passwd
Um die SELinux-Kontexte aller laufenden Prozesse anzuzeigen, führen Sie das Dienstprogramm ps erneut aus:
ps -eZ
system_u:system_r:dhcpc_t:s0 1869 ? 00:00:00 dhclient
system_u:system_r:sshd_t:s0-s0:c0.c1023 1882 ? 00:00:00 sshd
system_u:system_r:gpm_t:s0 1964 ? 00:00:00 gpm
system_u:system_r:crond_t:s0-s0:c0.c1023 1973 ? 00:00:00 crond
system_u:system_r:kerneloops_t:s0 1983 ? 00:00:05 kerneloops
system_u:system_r:crond_t:s0-s0:c0.c1023 1991 ? 00:00:00 atd
Die Rolle system_r wird für Systemprozesse wie Daemons verwendet. Type Enforcement trennt dann jede Domäne.
- Benutzerkontext
Verwenden Sie den folgenden Befehl, um den SELinux-Kontext anzuzeigen, der Ihrem Linux-Benutzer zugeordnet ist:
id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Dieser SELinux-Kontext zeigt, dass der Linux-Benutzer dem SELinux-Benutzer unconfined_u zugeordnet ist, in der Rolle unconfined_r läuft und in der Domäne unconfined_t ausgeführt wird. s0-s0 ist ein MLS-Bereich, der in diesem Fall mit s0 identisch ist. Standardmäßig laufen Linux-Benutzer in der unconfined-Rolle.
Context setzen mit chcon
- Category und Sensitivity Label setzen mit chcat
ps -eZ | grep httpd
system_u:system_r:httpd_t:s0 16392 ? 00:00:01 apache2
Anhang
Siehe auch
- Unterseiten
- Inhalt der aktuellen Kategorie
Dokumentation
Links
Projekt
Weblinks