Zum Inhalt springen

Linux/SELinux/04 Arbeiten mit SELinux: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 394: Zeile 394:


=== SELinux-Kontexte – Dateien kennzeichnen ===
=== SELinux-Kontexte – Dateien kennzeichnen ===
Auf Systemen, auf denen SELinux läuft, werden alle Prozesse und Dateien so gekennzeichnet, dass sie sicherheitsrelevante Informationen darstellen
[[SELinux/DOC/04 Arbeiten mit SELinux/SELinux-Kontexte Dateien kennzeichnen]]
* Diese Informationen werden als SELinux-Kontext bezeichnet
* Bei Dateien kann dies mit dem Befehl [[ls -Z]] angezeigt werden
ls -Z file1
-rw-rw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 file1
 
In diesem Beispiel stellt SELinux einen Benutzer ([[unconfined_u]]), eine Rolle ([[object_r]]), einen Typ ([[user_home_t]]) und eine Stufe ([[s0]]) bereit
* Diese Informationen werden verwendet, um Entscheidungen zur Zugriffskontrolle zu treffen
* Auf DAC-Systemen wird der Zugriff auf Basis der Linux-Benutzer- und Gruppen-IDs kontrolliert
* SELinux-Richtlinienregeln werden nach den DAC-Regeln überprüft
* SELinux-Richtlinienregeln werden nicht angewendet, wenn DAC-Regeln den Zugriff zuvor verweigern
 
; Hinweis
: Standardmäßig erben neu erstellte Dateien und Verzeichnisse den SELinux-Typ ihrer übergeordneten Verzeichnisse
* Wenn Sie beispielsweise eine neue Datei im Verzeichnis [[/etc]] erstellen, das mit dem Typ [[etc_t]] gekennzeichnet ist, erbt die neue Datei denselben Typ
ls -dZ - /etc
drwxr-xr-x root root system_u:object_r:‚'etc_t‘':s0 /etc
 
sudo touch /etc/file1
 
sudo ls -lZ /etc/file1
-rw-r--r-- root root unconfined_u:object_r:‚'etc_t‘':s0 /etc/file1
 
SELinux bietet mehrere Befehle zur Verwaltung der Dateisystem-Kennzeichnung, wie beispielsweise [[chcon]], [[semanage fcontext]], [[restorecon]] und [[matchpathcon]]
 
==== Temporäre Änderungen: chcon ====
Der Befehl [[chcon]] ändert den SELinux-Kontext für Dateien
* Änderungen, die mit dem Befehl [[chcon]] vorgenommen werden, bleiben jedoch nicht bestehen, wenn das Dateisystem neu gekennzeichnet wird oder der Befehl [[restorecon]]
* Die SELinux-Richtlinie legt fest, ob Benutzer den SELinux-Kontext für eine bestimmte Datei ändern dürfen
* Bei der Verwendung von [[chcon]] geben Benutzer den gesamten oder einen Teil des SELinux-Kontexts an, der geändert werden soll
* Ein falscher Dateityp ist eine häufige Ursache dafür, dass SELinux den Zugriff verweigert
 
==== Kurzreferenz ====
* Führen Sie den Befehl [[chcon -t ‚'type‘' ‚'file-name‘' ]], um den Dateityp zu ändern, wobei ‚'type‘' ein SELinux-Typ ist, wie z. B. [ [httpd_sys_content_t]], und ‚'file-name‘' ein Datei- oder Verzeichnisname ist
chcon -t httpd_sys_content_t ‚'file-name‘'
 
* Führen Sie den Befehl [[chcon -R -t ‚'type‘' ‚'directory-name‘']] aus, um den Typ des Verzeichnisses und dessen Inhalt zu ändern, wobei ‚'type‘' ein SELinux-Typ ist, wie beispielsweise [[httpd_sys_content_t]], und ‚'Verzeichnisname‘' ein Verzeichnisname ist
chcon -R -t httpd_sys_content_t ‚'Verzeichnisname‘'
 
; Ändern des Typs einer Datei oder eines Verzeichnisses
Das folgende Verfahren zeigt, wie der Typ und keine anderen Attribute des SELinux-Kontexts geändert werden
* Das Beispiel in diesem Abschnitt funktioniert genauso für Verzeichnisse, beispielsweise wenn [[file1]] ein Verzeichnis wäre. # Wechseln Sie in Ihr Home-Verzeichnis
# Erstellen Sie eine neue Datei und zeigen Sie deren SELinux-Kontext an
touch file1
 
ls -Z file1
-rw -rw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 file1
 
In diesem Beispiel umfasst der SELinux-Kontext für [[file1]] den SELinux-Benutzer [[unconfined_u]], die Rolle [[object_r]], den Typ [[user_home_t]] und die [[s0]] Ebene
* Eine Beschreibung der einzelnen Bestandteile des SELinux-Kontexts finden Sie in Kapitel 2, ‚'SELinux-Kontexte‘'
# Geben Sie den folgenden Befehl ein, um den Typ in [[samba_share_t]] zu ändern
* Die Option [[-t]] ändert nur den Typ
* Zeigen Sie anschließend die Änderung an
chcon -t samba_share_t file1
 
ls -Z file1
-rw-rw-r-- user1 group1 unconfined_u:object_r:samba_share_t:s0 file1
 
# Verwenden Sie den folgenden Befehl, um den SELinux-Kontext für die Datei [[file1]] wiederherzustellen
* Verwenden Sie die Option [[-v]], um die Änderungen anzuzeigen
restorecon -v file1
restorecon reset file1 context unconfined_u:object_r:samba_share_t:s0->system_u:object_r:user_home_t:s0
 
In diesem Beispiel wird der vorherige Typ, [[samba_share_t]], auf den korrekten Typ, [[user_home_t]], zurückgesetzt
* Bei Verwendung der Targeted-Richtlinie (der Standard-SELinux-Richtlinie in Red Hat Enterprise Linux) liest der Befehl [[restorecon]] die Dateien im Verzeichnis [[/etc/selinux/targeted/contexts/files/]] aus, um festzustellen, welchen SELinux-Kontext die Dateien haben sollten
 
; Ändern der Typen eines Verzeichnisses und seines Inhalts
Das folgende Beispiel zeigt, wie ein neues Verzeichnis erstellt und der Dateityp des Verzeichnisses sowie dessen Inhalt auf einen vom Apache-HTTP-Server verwendeten Typ geändert wird
* Die Konfiguration in diesem Beispiel wird verwendet, wenn Sie möchten, dass der Apache-HTTP-Server ein anderes Dokumentstammverzeichnis (anstelle von [[/var/www/html/]]) verwendet
# Erstellen Sie als Root-Benutzer ein neues [ [web/]]-Verzeichnis und anschließend 3 leere Dateien ([[file1]], [[file2]] und [[file3]]) in diesem Verzeichnis
* Das [[web/]]-Verzeichnis und die darin enthaltenen Dateien sind mit dem Typ [[default_t]] gekennzeichnet
sudo mkdir /web
sudo touch /web/file{1,2,3}
sudo ls -dZ /web
drwxr-xr-x root root unconfined_u:object_r:default_t:s0 /web
 
sudo ls -lZ /web
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file1
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file2
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file3
 
# Geben Sie als root den folgenden Befehl ein, um den Typ des Verzeichnisses [[web/]] (und dessen Inhalt) in [[httpd_sys_content_t]] zu ändern
sudo chcon -R -t httpd_sys_content_t /web/
 
sudo ls -dZ /web/
drwxr-xr-x root root unconfined_u:object_r:httpd_sys_content_t:s0 /web/
sudo ls -lZ /web/
-rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file1
-rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file2
-rw-r--r-- root root unconfined_u:object_r: httpd_sys_content_t:s0 file3
 
# Um die Standard-SELinux-Kontexte wiederherzustellen, verwenden Sie das Dienstprogramm [[restorecon]] als root
sudo restorecon -R -v /web/
restorecon reset /web context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t:s0
restorecon reset /web/file2 context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t:s0
restorecon reset /web/file3 context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t: s0
restorecon reset /web/file1 context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t:s0
 
Weitere Informationen zu [[chcon]] finden Sie auf der chcon(1)-Manpage
 
; Hinweis
: Typen-Enforcement ist die wichtigste Berechtigungssteuerung, die in der SELinux-Targeted-Policy verwendet wird
* In den meisten Fällen können SELinux-Benutzer und -Rollen ignoriert werden
 
==== Dauerhafte Änderungen: semanage fcontext ====
Der Befehl [[semanage fcontext]] wird verwendet, um den SELinux-Kontext von Dateien zu ändern
* Um die Kontexte neu erstellter Dateien und Verzeichnisse anzuzeigen, geben Sie als root den folgenden Befehl ein
sudo semanage fcontext -C -l
 
Änderungen, die mit [[semanage fcontext]] vorgenommen wurden, werden von den folgenden Dienstprogrammen verwendet
* Das Dienstprogramm [[setfiles]] wird verwendet, wenn ein Dateisystem neu gekennzeichnet wird, und das Dienstprogramm [[restorecon]] stellt die Standard-SELinux-Kontexte wieder her
* Das bedeutet, dass durch [[semanage fcontext]] vorgenommene Änderungen dauerhaft sind, selbst wenn das Dateisystem neu gekennzeichnet wird
* Die SELinux-Richtlinie steuert, ob Benutzer den SELinux-Kontext für eine bestimmte Datei ändern können
 
==== Kurzübersicht ====
Um SELinux-Kontextänderungen vorzunehmen, die eine Neukennzeichnung des Dateisystems überdauern
# Geben Sie den folgenden Befehl ein und achten Sie darauf, den vollständigen Pfad zur Datei oder zum Verzeichnis zu verwenden
sudo semanage fcontext -a ‚'Optionen‘' ‚'Dateiname‘ ‚|‘'Verzeichnisname'‚
 
# Verwenden Sie das Dienstprogramm [[restorecon]], um die Kontextänderungen anzuwenden
sudo restorecon -v ‘'Dateiname'‚|‘'Verzeichnisname'‚
 
===== Verwendung regulärer Ausdrücke mit semanage fcontext =====
Damit der Befehl [[semanage fcontext]] korrekt funktioniert, können Sie entweder einen vollqualifizierten Pfad oder ‘'' Perl-kompatible reguläre Ausdrücke ()‚‘'
* Das einzige verwendete ‚'PCRE‘'-Flag ist [[PCRE2_DOTALL]], wodurch der Platzhalter [[.]] mit allem übereinstimmt, einschließlich einer neuen Zeile
* Zeichenfolgen, die Pfade darstellen, werden als Bytes verarbeitet, was bedeutet, dass Nicht-ASCII-Zeichen nicht durch einen einzelnen Platzhalter abgeglichen werden
 
Beachten Sie, dass mit [[semanage fcontext]] angegebene Dateikontextdefinitionen in umgekehrter Reihenfolge zu ihrer Definition ausgewertet werden
der letzte Eintrag wird unabhängig von der Stammlänge zuerst ausgewertet
* Lokale Dateikontextänderungen, die in [[file_contexts.local]] gespeichert sind, haben eine höhere Priorität als die in Policy-Modulen angegebenen
* Das bedeutet, dass immer dann, wenn in [[file_contexts.local]] gefunden wird, werden keine anderen Dateikontextdefinitionen berücksichtigt
 
; Wichtig
: Mit dem Befehl [[semanage fcontext]] festgelegte Dateikontextdefinitionen überschreiben effektiv alle anderen Dateikontextdefinitionen
* Alle regulären Ausdrücke sollten daher so spezifisch wie möglich sein, um unbeabsichtigte Auswirkungen auf andere Teile des Dateisystems zu vermeiden
 
Weitere Informationen zu den in Dateikontextdefinitionen verwendeten regulären Ausdrücken und den geltenden Flags finden Sie in der [[semanage-fcontext(8) ]] Man-Seite
 
; Ändern des Typs einer Datei oder eines Verzeichnisses
Das folgende Beispiel zeigt, wie der Typ einer Datei geändert wird, ohne andere Attribute des SELinux-Kontexts zu beeinflussen
* Dieses Beispiel funktioniert genauso für Verzeichnisse, beispielsweise wenn [[file1]] ein Verzeichnis wäre. # Erstellen Sie als Root-Benutzer eine neue Datei im Verzeichnis [[/etc]]
* Standardmäßig werden neu erstellte Dateien in [[/etc]] mit dem Typ [[etc_t]] gekennzeichnet
sudo touch /etc/file1
ls -Z /etc/file1
-rw-r--r-- root root unconfined_u:object_r:etc_t:s0 /etc/file1
 
Um Informationen zu einem Verzeichnis aufzulisten, verwenden Sie den folgenden Befehl
ls -dZ ‚'Verzeichnisname‘'
 
# Geben Sie als root den folgenden Befehl ein, um den Typ von [[file1]] in [[samba_share_t]] zu ändern
* Die Option [[-a]] fügt einen neuen Eintrag hinzu, und die Option [[-t]] definiert einen Typ ([[samba_share_t]])
* Beachten Sie, dass die Ausführung dieses Befehls den Typ nicht direkt ändert; [[file1]] ist weiterhin mit dem Typ [[etc_t]] gekennzeichnet
sudo semanage fcontext -a -t samba_share_t /etc/file1
 
sudo ls -Z /etc/file1
-rw-r--r-- root root unconfined_u:object_r:etc_t:s0 /etc/file1
 
semanage fcontext -C -l
/etc/file1 unconfined_u:object_r:samba_share_t:s0
 
# Verwenden Sie als root das Dienstprogramm [[restorecon]], um den Typ zu ändern
* Da [[semanage]] einen Eintrag für [[/etc/file1]] in [[file_contexts.local]] hinzugefügt hat, ändert [[restorecon]] den Typ in [[samba_share_t]]
sudo restorecon -v /etc/file1
restorecon reset /etc/file1 context unconfined_u:object_r:etc_t:s0->system_u:object_r:samba_share_t:s0
 
; Ändern der Typen eines Verzeichnisses und seines Inhalts
Das folgende Beispiel zeigt, wie ein neues Verzeichnis erstellt und der Dateityp des Verzeichnisses sowie dessen Inhalt auf einen vom Apache-HTTP-Server verwendeten Typ geändert wird
* Die Konfiguration in diesem Beispiel wird verwendet, wenn Sie möchten, dass der Apache-HTTP-Server anstelle von [[/var/www/html/] einen anderen Dokumentenstamm verwendet ]
# Erstellen Sie als Root-Benutzer ein neues Verzeichnis [[web/]] und anschließend 3 leere Dateien ([[file1]], [[file2]] und [[file3]]) in diesem Verzeichnis
* Das Verzeichnis [[web/ ]] und die darin enthaltenen Dateien sind mit dem Typ [[default_t]] gekennzeichnet
sudo mkdir /web
sudo touch /web/file{1,2,3}
sudo ls -dZ /web
drwxr-xr-x root root unconfined_u:object_r:default_t:s0 /web
sudo ls -lZ /web
-rw-r--r-- root root unconfined_ u:object_r:default_t:s0 file1
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file2
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file3
 
# Geben Sie als root den folgenden Befehl ein, um den Typ des [[web/]]-Verzeichnisses und der darin enthaltenen Dateien in [[httpd_sys_content_t]] zu ändern
* Die Option [[-a]] fügt einen neuen Eintrag hinzu, und die Option [[-t]] definiert einen Typ ([[httpd_sys_content_t]])
* Der reguläre Ausdruck [[„/web(/.*)?“] ] bewirkt, dass [[semanage]] die Änderungen auf [[web/]] sowie die darin enthaltenen Dateien anwendet
* Beachten Sie, dass die Ausführung dieses Befehls den Typ nicht direkt ändert; [[web/]] und die darin enthaltenen Dateien sind weiterhin mit dem Typ [[default_t]] gekennzeichnet
sudo semanage fcontext -a -t httpd_sys_content_t „/web(/.*)?“
ls -dZ /web
drwxr-xr-x root root unconfined_u:object_r:default_t:s0 /web
ls -lZ /web
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file1
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file2
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file3
 
Der Befehl [[semanage fcontext -a -t httpd_sys_content_t „/web(/.*)?“]] fügt den folgenden Eintrag zu [[/etc/selinux/targeted/contexts/files/file_contexts.local]] hinzu
/web(/.*)? system_u:object_r:httpd_sys_content_t:s0
 
# Verwenden Sie als root das Dienstprogramm [[restorecon]], um den Typ von [[web/]] sowie aller darin enthaltenen Dateien
* Der Parameter [[-R]] steht für rekursiv, was bedeutet, dass alle Dateien und Verzeichnisse unter [[web/]] mit dem Typ [[httpd_sys_content_t]] gekennzeichnet werden
* Da [[semanage]] einen Eintrag für [[/web(/.*)?]] in [[file.contexts.local]] hinzugefügt hat, ändert [[restorecon]] die Typen in [
[httpd_sys_content_t]]
sudo restorecon -R -v /web
restorecon reset /web context unconfined_u:object_r:default_t:s0->system_u:object_r: httpd_sys_content_t:s0
restorecon reset /web/file2 context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
restorecon reset /web/file3 context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
restorecon reset /web/file1 context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
 
Beachten Sie, dass neu erstellte Dateien und Verzeichnisse standardmäßig den SELinux-Typ ihrer übergeordneten Verzeichnisse erben
 
; Einen hinzugefügten Kontext löschen
Das folgende Beispiel zeigt das Hinzufügen und Entfernen eines SELinux-Kontexts
* Wenn der Kontext Teil eines regulären Ausdrucks ist, zum Beispiel [[/web(/.*)?]], setzen Sie den regulären Ausdruck in Anführungszeichen
sudo semanage fcontext -d „/web(/.*)?“
 
# Um den Kontext zu entfernen, geben Sie als Root den folgenden Befehl ein, wobei ‚'Dateiname‘'|‚'Verzeichnisname‘' der erste Teil in [[file_contexts.local]] ist
sudo semanage fcontext -d ‚'Dateiname‘'|‚'Verzeichnisname‘'
 
Das Folgende ist ein Beispiel für einen Kontext in [[file_contexts. local]]
/test system_u:object_r:httpd_sys_content_t:s0
 
wobei der erste Teil [[test]] ist
* Um zu verhindern, dass das Verzeichnis [[test/]] nach dem Ausführen von [[restorecon]] oder nach einer Neulabelung des Dateisystems mit dem [[httpd_sys_content_t]]-Label versehen wird, geben Sie als Root den folgenden Befehl ein, um den Kontext aus [[file_contexts.local]] zu löschen
sudo semanage fcontext -d /test
 
# Verwenden Sie als root das Dienstprogramm [[restorecon]], um den Standard-SELinux-Kontext wiederherzustellen
 
Weitere Informationen zu [[semanage]] finden Sie in den Handbuchseiten semanage(8) und semanage-fcontext(8)
 
; Wichtig
: Wenn Sie den SELinux-Kontext mit [[semanage fcontext -a]] ändern, verwenden Sie den vollständigen Pfad zur Datei oder zum Verzeichnis, um zu vermeiden, dass Dateien nach einer Neukennzeichnung des Dateisystems oder nach dem Ausführen des Befehls [
[restorecon]]-Befehls
 
==== Wie der Dateikontext bestimmt wird ====
Die Bestimmung des Dateikontexts basiert auf Dateikontextdefinitionen, die in der Systemsicherheitsrichtlinie (den [[.fc]]-Dateien) festgelegt sind
* Basierend auf der Systemrichtlinie generiert [[semanage]] die Dateien [[file_contexts.homedirs]] und [ [file_contexts]]-Dateien
 
Systemadministratoren können Dateikontextdefinitionen mit dem Befehl [[semanage fcontext]] anpassen
* Solche Anpassungen werden in der Datei [[file_contexts.local]] gespeichert
 
Wenn ein Kennzeichnungsprogramm wie [[matchpathcon]] oder [[restorecon]] die richtige Kennzeichnung für einen bestimmten Pfad ermittelt, sucht es zunächst nach lokalen Änderungen ([[file_contexts.local]])
* Findet das Dienstprogramm kein passendes Muster, durchsucht es die Datei [[file_contexts.homedirs]] und schließlich die Datei [[file_contexts]]
* Sobald jedoch eine Übereinstimmung für einen bestimmten Dateipfad gefunden wird, endet die Suche, sucht das Dienstprogramm nicht nach weiteren Dateikontext-Definitionen
* Das bedeutet, dass Dateikontexte, die sich auf das Home-Verzeichnis beziehen, eine höhere Priorität haben als die übrigen, und lokale Anpassungen überschreiben die Systemrichtlinie
 
Dateikontext-Definitionen, die durch die [[Systemrichtlinie]] festgelegt sind (Inhalt der Dateien [[file_contexts.homedirs]] und [[file_contexts]]), werden vor der Auswertung nach der Länge des Stamms (Präfix des Pfads vor etwaigen Platzhaltern) sortiert
* Das bedeutet, dass der spezifischste Pfad ausgewählt wird
* Mit [[semanage fcontext]] festgelegte Dateikontextdefinitionen werden jedoch in umgekehrter Reihenfolge zu ihrer Definition ausgewertet
der letzte Eintrag wird unabhängig von der Stammlänge zuerst ausgewertet
 
Weitere Informationen zu
* der Änderung des Dateikontexts mit [[chcon]] finden Sie im Abschnitt „Temporäre Änderungen
chcon“
* das Ändern und Hinzufügen einer Dateikontextdefinition mit [[semanage fcontext]] finden Sie im Abschnitt „ Dauerhafte Änderungen
semanage fcontext“
* das Ändern und Hinzufügen einer Dateikontextdefinition durch eine Systemrichtlinienoperation, siehe Abschnitt „[[Pflege von SELinux-Labels]]“ oder Abschnitt „[[Priorisierung und Deaktivierung von SELinux-Richtlinienmodulen]]


=== Die Typen file_t und default_t ===
=== Die Typen file_t und default_t ===

Version vom 23. März 2026, 23:29 Uhr

Arbeiten mit SELinux

Beschreibung

Die folgenden Abschnitte bieten einen Überblick über

  • die wichtigsten SELinux-Pakete in Red Hat Enterprise Linux
  • die Installation und Aktualisierung von Paketen
  • die verwendeten Protokolldateien
  • die wichtigste SELinux-Konfigurationsdatei
  • das Aktivieren und Deaktivieren von SELinux
  • SELinux-Modi
  • das Konfigurieren von Booleschen Werten
  • das vorübergehende und dauerhafte Ändern von Datei- und Verzeichnis-Labels
  • das Überschreiben von Dateisystem-Labels mit dem Befehl mount
  • das Einbinden von NFS-Volumes
  • sowie das Beibehalten von SELinux-Kontexten beim Kopieren und Archivieren von Dateien und Verzeichnissen

SELinux-Pakete

Bei einer vollständigen Installation von Red Hat Enterprise Linux werden die SELinux-Pakete standardmäßig installiert, sofern sie nicht während der Installation manuell ausgeschlossen werden

  • Bei einer Minimalinstallation im Textmodus werden die Pakete policycoreutils-python und policycoreutils-gui standardmäßig nicht installiert
  • Außerdem läuft SELinux standardmäßig SELinux im Enforcing-Modus und die SELinux-Targeted-Policy wird verwendet
  • Die folgenden SELinux-Pakete sind standardmäßig auf Ihrem System installiert
  • policycoreutils stellt Dienstprogramme wie restorecon, secon, setfiles, semodule, load_policy und setsebool für den Betrieb und die Verwaltung von SELinux bereit
  • selinux-policy stellt eine grundlegende Verzeichnisstruktur, die Datei selinux-policy.conf und RPM-Makros bereit
  • selinux-policy -targeted stellt die SELinux-Targeted-Richtlinie bereit
  • libselinux – stellt eine API für SELinux-Anwendungen bereit
  • libselinux-utils stellt die Dienstprogramme avcstat, getenforce, getsebool, matchpathcon, selinuxconlist, selinuxdefcon, selinuxenabled und setenforce bereit
  • libselinux-python stellt Python-Bindungen für die Entwicklung von SELinux-Anwendungen bereit

Die folgenden Pakete sind standardmäßig nicht installiert, können aber optional durch Ausführen des Befehls [[yum install ‚‘<package-name>‚‘]] installiert werden

  • selinux-policy-devel stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen bereit
  • selinux-policy-doc enthält Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
  • selinux-policy-mls enthält die MLS-SELinux-Richtlinie (Multi-Level Security)
  • setroubleshoot-server übersetzt Ablehnungsmeldungen, die bei einer Zugriffsverweigerung durch SELinux ausgegeben werden, in detaillierte Beschreibungen, die mit dem ebenfalls in diesem Paket enthaltenen Dienstprogramm sealert angezeigt werden können
  • setools-console stellt die Tresys Technology SETools-Distribution bereit, eine Reihe von Dienstprogrammen und Bibliotheken zur Analyse und Abfrage von Richtlinien, zur Überwachung und Berichterstellung von Audit-Protokollen sowie zur Verwaltung von Dateikontexten
  • Das Paket setools ist ein Metapaket für SETools
  • Das Paket setools-gui stellt die Dienstprogramme apol und seaudit bereit
  • Das Paket setools-console stellt die Befehlszeilen-Dienstprogramme sechecker, sediff, seinfo, sesearch und findcon bereit
  • Beachten Sie, dass die Pakete setools und setools-gui nur verfügbar sind, wenn der Red Hat Network Optional-Kanal aktiviert ist
  • Weitere Informationen finden Sie unter Details zum Abdeckungsumfang
  • mcstrans übersetzt Stufen wie s0-s0:c0.c1023 in eine besser lesbare Form wie SystemLow-SystemHigh
  • policycoreutils-python bietet Dienstprogramme wie semanage, audit2allow, audit2why und chcat zum Bedienen und Verwalten von SELinux
  • policycoreutils-gui stellt system-config-selinux bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux

Welche Protokolldatei wird verwendet

Unter Red Hat Enterprise Linux sind die Pakete dbus und audit standardmäßig installiert, sofern sie nicht aus der Standard-Paketauswahl entfernt wurden

Wenn der auditd-Daemon läuft, wird standardmäßig eine SELinux-Ablehnungsmeldung wie die folgende in /var/log/audit/audit.log geschrieben

type=AVC msg=audit (1223024155.684:49)
avc
denied { getattr } for pid=2000 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=399185 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:samba_share_t:s0 tclass=file

Außerdem wird eine Meldung ähnlich der folgenden in die Datei /var/log/message geschrieben

7. Mai 18:55:56 localhost setroubleshoot

SELinux verhindert, dass httpd (httpd_t) „getattr“ auf /var/www/html/file1 (samba_share_t) ausführt

  • Für vollständige SELinux-Meldungen

führen Sie sealert -l de7e30d6-5488-466d-a606-92c9f40d316d aus

In Red Hat Enterprise Linux 7 läuft setroubleshootd nicht mehr ständig als Dienst

  • Es wird jedoch weiterhin zur Analyse der AVC-Meldungen verwendet
  • Zwei neue Programme dienen dazu, setroubleshoot bei Bedarf zu starten
  • Das Dienstprogramm sedispatch läuft als Teil des audit-Subsystems
  • Wenn eine AVC-Ablehnungsmeldung zurückgegeben wird, sendet sedispatch eine Nachricht über dbus
  • Diese Nachrichten gehen direkt an setroubleshootd, sofern dieses bereits läuft
  • Läuft es nicht, startet sedispatch es automatisch
  • Das Dienstprogramm seapplet läuft in der System-Symbolleiste und wartet auf DBus-Meldungen von setroubleshootd
  • Es öffnet die Benachrichtigungsblase, in der der Benutzer die AVC-Meldungen einsehen kann
Daemons automatisch starten
  1. Um die Daemons auditd und [ [rsyslog]]-Daemons so zu konfigurieren, dass sie beim Booten automatisch starten, geben Sie als Root-Benutzer die folgenden Befehle ein
sudo systemctl enable auditd.service
sudo systemctl enable rsyslog.service
  1. Um sicherzustellen, dass die Daemons aktiviert sind, geben Sie an der Shell-Eingabeaufforderung die folgenden Befehle ein
systemctl is-enabled auditd
enabled

systemctl is-enabled rsyslog

enabled

Alternativ können Sie den Befehl systemctl status ‚'service-name‘'.service verwenden und in der Befehlsausgabe nach dem Schlüsselwort enabled suchen, zum Beispiel

systemctl status auditd.service | grep enabled
auditd.service – Sicherheitsüberwachungsdienst
Geladen
geladen (/usr/lib/systemd/system/auditd.service; ‚'enabled‘')

Weitere Informationen darüber, wie der systemd-Daemon Systemdienste verwaltet, finden Sie im Kapitel „Verwaltung von Systemdiensten“ im Systemadministratorhandbuch

Hauptkonfigurationsdatei

Die Datei /etc/selinux/config ist die Hauptkonfigurationsdatei von SELinux

  • Sie steuert, ob SELinux aktiviert oder deaktiviert ist und welcher SELinux-Modus sowie welche SELinux-Richtlinie verwendet wird
# Diese Datei steuert den Status von SELinux auf dem System
# SELINUX= kann einen dieser drei Werte annehmen
# enforcing – Die SELinux-Sicherheitsrichtlinie wird durchgesetzt
# permissive – SELinux gibt Warnungen aus, anstatt die Richtlinie durchzusetzen
# disabled – Es wird keine SELinux-Richtlinie geladen
SELINUX=enforcing
# SELINUXTYPE= kann einen dieser beiden Werte annehmen

  1. targeted – Zielgerichtete Prozesse werden geschützt,
# mls – Multi-Level-Security-Schutz
SELINUXTYPE=targeted
[[SELINUX=]]

Die Option [[SELINUX]] legt fest, ob SELinux deaktiviert oder aktiviert ist und in welchem Modus – enforcing oder permissive – es läuft

  • Bei Verwendung von SELINUX=enforcing wird die SELinux-Richtlinie durchgesetzt, und SELinux verweigert den Zugriff auf Grundlage der SELinux-Richtlinienregeln
  • Verweigerungsmeldungen werden protokolliert
  • Bei Verwendung von SELINUX=permissive wird die SELinux-Richtlinie nicht durchgesetzt
  • SELinux verweigert keinen Zugriff, aber Verweigerungen werden für Aktionen protokolliert, die verweigert worden wären, wenn SELinux im Durchsetzungsmodus laufen würde
  • Bei Verwendung von SELINUX=disabled ist SELinux deaktiviert, das SELinux-Modul ist nicht beim Linux-Kernel registriert und es werden nur DAC-Regeln verwendet
[[SELINUXTYPE=]]

Die Option SELINUXTYPE legt die zu verwendende SELinux-Richtlinie fest

  • Die Targeted-Richtlinie ist die Standardrichtlinie
  • Ändern Sie diese Option nur, wenn Sie die MLS-Richtlinie verwenden möchten
  • Informationen zum Aktivieren der MLS-Richtlinie finden Sie im Abschnitt „Aktivieren von MLS in SELinux

Dauerhafte Änderungen an SELinux-Zuständen und -Modi

SELinux kann aktiviert oder deaktiviert werden

  • Wenn aktiviert, hat SEL

inux zwei Modi: „enforcing“ und „permissive“

Verwenden Sie die Befehle getenforce oder sestatus, um zu überprüfen, in welchem Modus SELinux läuft

Der Befehl sestatus gibt den SELinux-Status und die verwendete SELinux-Richtlinie zurück sestatus SELinux-Status

 enabled

SELinuxfs-Mount

 /sys/fs/selinux

SELinux-Stammverzeichnis

 /etc/selinux

Name der geladenen Richtlinie

 targeted
Aktueller Modus
 enforcing
Modus aus Konfigurationsdatei
 enforcing
MLS-Status der Richtlinie
 enabled
Status von deny_unknown in der Richtlinie
 allowed
Maximale Kernel-Richtlinienversion
 30
Hinweis
Wenn Systeme SELinux im permissiven Modus ausführen, können Benutzer Dateien falsch kennzeichnen
  • Dateien, die erstellt wurden, während SELinux deaktiviert war, werden überhaupt nicht gekennzeichnet
  • Dieses Verhalten verursacht Probleme beim Wechsel in den enforcing-Modus, da Dateien falsch oder gar nicht gekennzeichnet sind
  • Um zu verhindern, dass falsch gekennzeichnete und nicht gekennzeichnete Dateien Probleme verursachen, werden Dateisysteme automatisch neu gekennzeichnet, wenn vom deaktivierten Zustand in den permissiven oder den enforcing-Modus gewechselt wird

SELinux aktivieren

Wenn SELinux aktiviert ist, kann es in einem von zwei Modi ausgeführt werden: enforcing oder permissive

  • Die folgenden Abschnitte zeigen, wie Sie dauerhaft in diese Modi wechseln

Beim Aktivieren von SELinux auf Systemen, auf denen es zuvor deaktiviert war, empfiehlt Red Hat, um Probleme wie das Nicht-Booten des Systems oder Prozessfehler zu vermeiden, dieses Verfahren zu befolgen

  1. Aktivieren Sie SELinux im permissiven Modus
  • Weitere Informationen finden Sie im Abschnitt „Permissiver Modus“
  1. Starten Sie Ihr System neu
  2. Überprüfen Sie, ob SELinux-Ablehnungsmeldungen vorliegen
  • Weitere Informationen finden Sie im Abschnitt „Suchen und Anzeigen von Ablehnungen“
  1. Wenn keine Ablehnungen vorliegen, wechseln Sie in den Durchsetzungsmodus
  • Weitere Informationen finden Sie im Abschnitt „Enforcing-Modus“

Um benutzerdefinierte Anwendungen mit SELinux im Enforcing-Modus auszuführen, wählen Sie eines der folgenden Szenarien

  • Führen Sie Ihre Anwendung in der Domäne unconfined_service_t aus
  • Weitere Informationen finden Sie im Abschnitt „Unconfined-Prozesse
  • Schreiben Sie eine neue Richtlinie für Ihre Anwendung
  • Weitere Informationen finden Sie im Knowledge-Base-Artikel „Writing Custom SELinux Policy“
Permissive-Modus

Wenn SELinux im Permissive-Modus läuft, wird die SELinux-Richtlinie nicht durchgesetzt

  • Das System bleibt betriebsbereit und SELinux verweigert keine Vorgänge, sondern protokolliert lediglich AVC-Meldungen, die dann zur Fehlerbehebung, zum Debugging und zur Verbesserung der SELinux-Richtlinie verwendet werden können
  • In diesem Fall wird jede AVC-Meldung nur einmal protokolliert

Um den Modus dauerhaft auf „permissive“ umzustellen, befolgen Sie die folgenden Schritte

Umstellung auf den permissiven Modus
  1. Bearbeiten Sie die Datei /etc/selinux/config wie folgt
# Diese Datei steuert den Status von SELinux auf dem System
# SELINUX= kann einen dieser drei Werte annehmen
# enforcing – Die SELinux-Sicherheitsrichtlinie wird durchgesetzt
# permissive – SELinux gibt Warnungen aus, anstatt die Richtlinie durchzusetzen
# disabled – Es wird keine SELinux-Richtlinie geladen
SELINUX=‚‘'permissive
# SELINUXTYPE= kann einen dieser beiden Werte annehmen
# targeted – Zielprozesse werden geschützt,

  1. mls – Multi-Level-Security-Schutz
SELINUXTYPE=targeted
  1. Starten Sie das System neu
sudo reboot
Durchsetzungsmodus

Wenn SELinux im Durchsetzungsmodus läuft, setzt es die SELinux-Richtlinie durch und verweigert den Zugriff auf der Grundlage der SELinux-Richtlinienregeln

  • Unter Red Hat Enterprise Linux ist der Durchsetzungsmodus standardmäßig aktiviert, wenn das System ursprünglich mit SELinux

Wenn SELinux deaktiviert wurde, befolgen Sie die nachstehende Vorgehensweise, um den Modus wieder auf „Enforcing“ umzustellen

Umstellung auf den Enforcing-Modus

Diese Vorgehensweise setzt voraus, dass die Pakete selinux-policy -targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils und policycoreutils-python installiert sind

  • Um zu überprüfen, ob die Pakete installiert sind, verwenden Sie den folgenden Befehl
rpm -q ‚'Paketname‘'
  1. Bearbeiten Sie die Datei /etc/selinux/config wie folgt
# Diese Datei steuert den Status von SELinux auf dem System
# SELINUX= kann einen dieser drei Werte annehmen
# enforcing – Die SELinux-Sicherheitsrichtlinie wird durchgesetzt
# permissive – SELinux gibt Warnungen aus, anstatt die Richtlinie durchzusetzen
# disabled – Es wird keine SELinux-Richtlinie geladen
SELINUX=‚‘'enforcing

  1. SELINUXTYPE= kann einen dieser beiden Werte annehmen
# targeted – Zielgerichtete Prozesse werden geschützt,
# mls – Multi-Level-Security-Schutz
SELINUXTYPE=targeted
  1. Starten Sie das System neu
sudo reboot

Beim nächsten Systemstart kennzeichnet SELinux alle Dateien und Verzeichnisse im System neu und fügt einen SELinux-Kontext für Dateien und Verzeichnisse hinzu, die erstellt wurden, als SELinux deaktiviert war

Hinweis
Nach dem Wechsel in den Enforcing-Modus kann SELinux einige Aktionen aufgrund falscher oder fehlender SELinux-Richtlinien verweigern

Um anzuzeigen, welche Aktionen SELinux verweigert, geben Sie als Root den folgenden Befehl ein

sudo ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today

Alternativ können Sie, sofern das Paket setroubleshoot-server installiert ist, als root den folgenden Befehl eingeben

sudo grep „SELinux is preventing“ /var/log/messages

Falls SELinux bestimmte Aktionen verweigert, finden Sie Informationen zur Fehlerbehebung in Kapitel 11, „Fehlerbehebung“

Vorübergehende Änderungen der Modi werden in Abschnitt „SELinux-Zustände und -Modi“ behandelt

Deaktivieren von SELinux

Wenn SELinux deaktiviert ist, wird die SELinux-Richtlinie überhaupt nicht geladen; sie wird nicht durchgesetzt und AVC-Meldungen werden nicht protokolliert

  • Daher gehen alle in Abschnitt 1.1, „Vorteile des Betriebs von SELinux“, aufgeführten Vorteile des Betriebs von SELinux verloren
Wichtig
Red Hat empfiehlt dringend, den permissiven Modus zu verwenden, anstatt SELinux dauerhaft zu deaktivieren
  • Weitere Informationen zum permissiven Modus finden Sie im Abschnitt „Permissive Mode

Um SELinux dauerhaft zu deaktivieren, gehen Sie wie folgt vor

SELinux deaktivieren
  1. Konfigurieren Sie SELINUX=disabled in der Datei /etc/selinux/config
# Diese Datei steuert den Status von SELinux auf dem System
# SELINUX= kann einen dieser drei Werte annehmen
# enforcing – Die SELinux-Sicherheitsrichtlinie wird durchgesetzt
# permissive – SELinux gibt Warnungen aus, anstatt die Richtlinie durchzusetzen
# disabled – Es wird keine SELinux-Richtlinie geladen
SELINUX=‚‘'disabled
# SELINUXTYPE= kann einen dieser beiden Werte annehmen
# targeted – Zielgerichtete Prozesse werden geschützt,
# mls – Multi-Level-Security-Schutz
SELINUXTYPE=targeted
  1. Starten Sie Ihr System neu

Vergewissern Sie sich nach dem Neustart, dass der Befehl getenforce den Wert Disabled zurückgibt

getenforce
Disabled

Ändern der SELinux-Modi beim Systemstart

Beim Systemstart können Sie mehrere Kernel-Parameter setzen, um die Funktionsweise von SELinux zu ändern

enforcing=0

Durch das Setzen dieses Parameters startet das System im permissiven Modus, was bei der Fehlerbehebung nützlich ist

  • Die Verwendung des permissiven Modus ist möglicherweise die einzige Möglichkeit, ein Problem zu erkennen, wenn Ihr Dateisystem zu stark beschädigt ist
  • Außerdem erstellt das System im permissiven Modus weiterhin die Labels korrekt
  • Die in diesem Modus erzeugten AVC-Meldungen können sich von denen im Enforcing-Modus unterscheiden

Im Permissive-Modus wird nur die erste Verweigerung aus einer Reihe gleicher Verweigerungen gemeldet

  • Im Enforcing-Modus hingegen erhalten Sie möglicherweise eine Verweigerung beim Lesen eines Verzeichnisses, woraufhin eine Anwendung stoppt
  • Im permissiven Modus erhalten Sie dieselbe AVC-Meldung, aber die Anwendung liest weiterhin Dateien in dem Verzeichnis, und Sie erhalten zusätzlich für jede Verweigerung eine AVC
selinux=0

Dieser Parameter bewirkt, dass der Kernel keinen Teil der SELinux-Infrastruktur lädt

  • Die Init-Skripte erkennen, dass das System mit dem Parameter selinux=0 gebootet wurde, und schreiben in die Datei /.autorelabel
  • Dies bewirkt, dass das System beim nächsten Start mit aktiviertem SELinux automatisch eine Neukennzeichnung durchführt
Wichtig
Red Hat empfiehlt die Verwendung des Parameters selinux=0 nicht
  • Verwenden Sie zum Debuggen Ihres Systems vorzugsweise den permissiven Modus
autorelabel=1

Dieser Parameter zwingt das System zu einer Neukennzeichnung, ähnlich wie die folgenden Befehle

sudo touch /.autorelabel
sudo reboot

Wenn die Systemkennzeichnung eine große Anzahl von Fehlern enthält, müssen Sie möglicherweise im permissiven Modus booten, damit die automatische Neukennzeichnung erfolgreich ist

Weitere SELinux-bezogene Kernel-Boot-Parameter, wie beispielsweise checkreqprot, finden Sie in der Datei [[/ usr/share/doc/kernel-doc-‚‘<KERNEL_VER>‚‘/Documentation/kernel-parameters.txt]]-Datei

  • Diese Dokumentation wird mit dem Paket kernel-doc installiert
  • Ersetzen Sie die Zeichenfolge ‚‘<KERNEL_VER>‚‘ durch die Versionsnummer des installierten Kernels, zum Beispiel
sudo yum install kernel-doc
less /usr/share/doc/kernel-doc-‚'3.10.0‘' /Documentation/kernel-parameters.txt

Booleane

Booleane ermöglichen es, Teile der SELinux-Richtlinie zur Laufzeit zu ändern, ohne Kenntnisse im Schreiben von SELinux-Richtlinien zu benötigen

  • Dies ermöglicht Änderungen, wie z. B. das Zulassen des Zugriffs von Diensten auf NFS-Volumes, ohne die SELinux-Richtlinie neu zu laden oder neu zu kompilieren

Auflisten von Booleanen

Um eine Liste der Booleans, eine Erklärung zu deren Bedeutung sowie Angaben dazu, ob sie aktiviert oder deaktiviert sind, zu erhalten, führen Sie den Befehl semanage boolean -l als Linux-Root-Benutzer aus

Das folgende Beispiel listet nicht alle Booleans auf, und die Ausgabe wurde der Kürze halber gekürzt

sudo semanage boolean -l
SELinux-Boolean Status Standard Beschreibung
smartmon_3ware (aus , aus) Legt fest, ob smartmon...
mpd_enable_homedirs (aus, aus) Legt fest, ob mpd...
Hinweis
Um detailliertere Beschreibungen zu erhalten, installieren Sie das Paket selinux-policy-devel

Die Spalte SELinux-Boolean listet die Namen der Booleans auf

  • Die Spalte Beschreibung gibt an, ob die Booleans aktiviert oder deaktiviert sind und welche Funktion sie haben

Der Befehl getsebool -a listet Boolesche Werte auf, unabhängig davon, ob sie aktiviert oder deaktiviert sind, gibt jedoch keine Beschreibung zu jedem einzelnen

  • Das folgende Beispiel listet nicht alle Booleschen Werte auf
getsebool -a
cvs_read_shadow --> off
daemons_dump_core --> on

Führen Sie den Befehl getsebool ‚‘ boolean-name'‚ aus, um nur den Status des Booleschen Werts ‘'boolean-name aufzulisten

getsebool cvs_read_shadow
cvs_read_shadow --> off

Verwenden Sie eine durch Leerzeichen getrennte Liste, um mehrere Boolesche Werte aufzulisten

getsebool cvs_read_shadow daemons_dump_core
cvs_read_shadow --> off
daemons _dump_core --> on

Konfigurieren von Booleschen Werten

Führen Sie das Dienstprogramm setsebool im Format setsebool ‚'boolean_name‘' on/off aus, um Boolesche Werte zu aktivieren oder zu deaktivieren

Das folgende Beispiel zeigt die Konfiguration des Booleschen Werts httpd_can_network_connect_db

Konfigurieren von Booleschen Werten
  1. Standardmäßig ist der Boolesche Wert httpd_can_network_connect_db deaktiviert, wodurch Skripte und Module des Apache-HTTP-Servers daran gehindert werden, eine Verbindung zu Datenbankservern herzustellen
getsebool httpd_can_network_connect_db
httpd_can_network_connect_db --> off
  1. Um Skripte und Module des Apache-HTTP-Servers vorübergehend die Verbindung zu Datenbankservern zu ermöglichen, geben Sie als Root den folgenden Befehl ein
sudo setsebool httpd_can_network_connect_db on
  1. Verwenden Sie das Dienstprogramm getsebool, um zu überprüfen, ob der Boolean-Wert aktiviert wurde
getsebool httpd_can_network_connect_db
httpd_can_network_connect_db --> on

Dadurch können Skripte und Module des Apache-HTTP-Servers eine Verbindung zu Datenbankservern herstellen

  1. Diese Änderung bleibt nach einem Neustart nicht erhalten
sudo setsebool -P httpd_can_network_connect_db on

Shell-Autovervollständigung

Es ist möglich, die Shell-Autovervollständigung mit den Dienstprogrammen getsebool, setsebool und semanage zu verwenden

  • Verwenden Sie die Autovervollständigung mit getsebool und [ [setsebool]], um sowohl Befehlszeilenparameter als auch Boolesche Werte zu vervollständigen
  • Um nur die Befehlszeilenparameter aufzulisten, fügen Sie das Bindestrichzeichen („-“) hinter dem Befehlsnamen ein und drücken Sie die Tab-Taste
sudo setsebool -[Tab]
-P

Um einen Booleschen Wert zu vervollständigen, beginnen Sie mit der Eingabe des Booleschen Werts und drücken Sie dann die Tab-Taste

getsebool samba_[Tab]
samba_create_home_dirs samba_export_all_ro samba_run_unconfined
samba_domain_controller samba_export_all_rw samba_share_fusefs
samba_enable_home_dirs samba_portmapper samba_share_nfs

sudo setsebool -P virt_use_[Tab]

virt_use_comm virt_use_nfs virt_use_sanlock
virt_use_execmem virt_use_rawip virt_use_usb
virt_use_fusefs virt_use_samba virt_use_xserver

Das Dienstprogramm semanage wird mit mehreren Befehlszeilenargumenten verwendet, die nacheinander vervollständigt werden

  • Das erste Argument eines semanage-Befehls ist eine Option, die angibt, welcher Teil der SELinux-Richtlinie verwaltet wird
sudo semanage [Tab]
boolean export import login node port
dontaudit fcontext interface module permissive user

Anschließend folgen ein oder mehrere Befehlszeilenparameter

sudo semanage fcontext -[Tab]
-a -D --equal --help -m -o
--add --delete -f -l --modify -S
-C --deleteall --ftype --list -n -t
-d -e -h --locallist --noheading --type

Geben Sie schließlich den Namen eines bestimmten SELinux-Eintrags ein, z. B. einen Booleschen Wert, einen SELinux-Benutzer, eine Domäne oder einen anderen

  • Beginnen Sie mit der Eingabe des Eintrags und drücken Sie Tab
sudo semanage fcontext -a -t samba<tab>

samba_etc_t samba_secrets_t

sambagui_exec_t samba_share_t
samba_initrc_exec_t samba_unconfined_script_exec_t
samba_log_t samba_unit_file_t
samba_net_exec_t

Befehls- -Parameter können in einem Befehl verkettet werden

sudo semanage port -a -t http_port_t -p tcp 81

SELinux-Kontexte – Dateien kennzeichnen

SELinux/DOC/04 Arbeiten mit SELinux/SELinux-Kontexte – Dateien kennzeichnen

Die Typen file_t und default_t

SELinux/DOC/04 Arbeiten mit SELinux/Die Typen file t und default t

Einbinden von Dateisystemen

SELinux/DOC/04 Arbeiten mit SELinux/Einbinden von Dateisystemen

SELinux-Labels beibehalten

SELinux/DOC/04 Arbeiten mit SELinux/SELinux-Labels beibehalten

Tools zur Informationsbeschaffung

SELinux/DOC/04 Arbeiten mit SELinux/Tools zur Informationsbeschaffung

Priorisierung und Deaktivierung von SELinux-Richtlinienmodulen

SELinux/DOC/04 Arbeiten mit SELinux/Priorisierung und Deaktivierung von SELinux-Richtlinienmodulen

Multi-Level Security (MLS)

SELinux/DOC/04 Arbeiten mit SELinux/Multi-Level Security (MLS)

Dateinamenübergang

SELinux/DOC/04 Arbeiten mit SELinux/Dateinamenübergang

Deaktivieren von ptrace()

SELinux/DOC/04 Arbeiten mit SELinux/Deaktivieren von ptrace()

Schutz von Miniaturansichten

SELinux/DOC/04 Arbeiten mit SELinux/Schutz von Miniaturansichten

Fußnoten