Linux/SELinux/05 SEPolicy: Unterschied zwischen den Versionen
K Dirkwagner verschob die Seite SELinux/DOC/05 sepolicy suite nach SELinux/DOC/05 Sepolicy |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
'''SELinux/DOC/05 Sepolicy''' | |||
== Die sepolicy-Suite == | |||
[[sepolicy]] bietet eine Reihe von Funktionen zur Abfrage der installierten SELinux-Richtlinie | [[sepolicy]] bietet eine Reihe von Funktionen zur Abfrage der installierten SELinux-Richtlinie | ||
* Diese Funktionen sind entweder neu oder wurden zuvor von separaten Dienstprogrammen wie ''sepolgen'' oder ''setrans'' bereitgestellt | * Diese Funktionen sind entweder neu oder wurden zuvor von separaten Dienstprogrammen wie ''sepolgen'' oder ''setrans'' bereitgestellt | ||
| Zeile 40: | Zeile 42: | ||
|} | |} | ||
== sepolicy-Python-Bindings == | |||
In früheren Linux-Versionen enthielt das setools-Paket die Dienstprogramme ''sesearch'' und ''seinfo'' | In früheren Linux-Versionen enthielt das setools-Paket die Dienstprogramme ''sesearch'' und ''seinfo'' | ||
* Das Dienstprogramm ''sesearch'' dient zum Suchen von Regeln in einer SELinux-Richtlinie, während das Dienstprogramm ''seinfo'' es ermöglicht, verschiedene andere Komponenten der Richtlinie abzufragen | * Das Dienstprogramm ''sesearch'' dient zum Suchen von Regeln in einer SELinux-Richtlinie, während das Dienstprogramm ''seinfo'' es ermöglicht, verschiedene andere Komponenten der Richtlinie abzufragen | ||
| Zeile 54: | Zeile 56: | ||
Gibt ein Wörterbuch mit allen Zulassungsregeln in der Richtlinie zurück.‚‘ | Gibt ein Wörterbuch mit allen Zulassungsregeln in der Richtlinie zurück.‚‘ | ||
== Generieren von SELinux-Richtlinienmodulen: sepolicy generate == | |||
In früheren Linux-Versionen wurden die Dienstprogramme „sepolgen“ oder „selinux-polgengui“ zum Generieren einer SELinux-Richtlinie verwendet | In früheren Linux-Versionen wurden die Dienstprogramme „sepolgen“ oder „selinux-polgengui“ zum Generieren einer SELinux-Richtlinie verwendet | ||
* Diese Tools wurden in die „sepolicy“-Suite integriert | * Diese Tools wurden in die „sepolicy“-Suite integriert | ||
| Zeile 83: | Zeile 85: | ||
* Weitere Informationen zu ''sepolicy generate'' finden Sie auf der Man-Seite sepolicy-generate(8) | * Weitere Informationen zu ''sepolicy generate'' finden Sie auf der Man-Seite sepolicy-generate(8) | ||
== Domänenübergänge verstehen: sepolicy transition == | |||
Früher wurde das Dienstprogramm ''setrans'' verwendet, um zu prüfen, ob ein Übergang zwischen zwei Domänen- oder Prozesstypen möglich ist, und es gab alle Zwischentypen aus, die für den Übergang zwischen diesen Domänen oder Prozessen verwendet werden | Früher wurde das Dienstprogramm ''setrans'' verwendet, um zu prüfen, ob ein Übergang zwischen zwei Domänen- oder Prozesstypen möglich ist, und es gab alle Zwischentypen aus, die für den Übergang zwischen diesen Domänen oder Prozessen verwendet werden | ||
* Unter Linux ist ''setrans'' als Teil der ''sepolicy''-Suite verfügbar, und stattdessen wird nun der Befehl ''sepolicy transition'' verwendet | * Unter Linux ist ''setrans'' als Teil der ''sepolicy''-Suite verfügbar, und stattdessen wird nun der Befehl ''sepolicy transition'' verwendet | ||
| Zeile 119: | Zeile 121: | ||
Weitere Informationen zum „sepolicy-transition“ finden Sie in der sepolicy-transition(8)-Handbuchseite | Weitere Informationen zum „sepolicy-transition“ finden Sie in der sepolicy-transition(8)-Handbuchseite | ||
== Erstellen von Handbuchseiten: sepolicy manpage == | |||
Der Befehl „sepolicy manpage“ generiert Handbuchseiten auf Basis der SELinux-Richtlinie, die Prozessdomänen dokumentieren | Der Befehl „sepolicy manpage“ generiert Handbuchseiten auf Basis der SELinux-Richtlinie, die Prozessdomänen dokumentieren | ||
* Dadurch ist diese Dokumentation stets auf dem neuesten Stand | * Dadurch ist diese Dokumentation stets auf dem neuesten Stand | ||
Version vom 24. März 2026, 09:46 Uhr
SELinux/DOC/05 Sepolicy
Die sepolicy-Suite
sepolicy bietet eine Reihe von Funktionen zur Abfrage der installierten SELinux-Richtlinie
- Diese Funktionen sind entweder neu oder wurden zuvor von separaten Dienstprogrammen wie sepolgen oder setrans bereitgestellt
- Mit dieser Suite können Sie Übergangsberichte, Manpages oder sogar neue Richtlinienmodule erstellen, wodurch Benutzer einen einfacheren Zugang zur SELinux-Richtlinie erhalten und diese besser verstehen können
Das Paket policycoreutils-devel stellt sepolicy bereit
Geben Sie als Root-Benutzer den folgenden Befehl ein, um sepolicy zu installieren
sudo yum install policycoreutils-devel
- Funktionen von sepolicy
Die sepolicy-Suite bietet die folgenden Funktionen, die als Befehlszeilenparameter aufgerufen werden:
| Funktion | Beschreibung |
|---|---|
| booleans | Abfrage der SELinux-Richtlinie zur Anzeige der Beschreibung von Booleschen Werten |
| communicate | Abfrage der SELinux-Richtlinie, um zu prüfen, ob Domänen miteinander kommunizieren können |
| generate | Erstellung einer Vorlage für ein SELinux-Richtlinienmodul |
| gui | Grafische Benutzeroberfläche für die SELinux-Richtlinie |
| interface | Auflistung der SELinux-Richtlinien-Schnittstellen |
| manpage | SELinux-Manpages generieren |
| network | Netzwerkinformationen der SELinux-Richtlinie abfragen |
| transition | SELinux-Richtlinie abfragen und einen Prozessübergangsbericht generieren |
sepolicy-Python-Bindings
In früheren Linux-Versionen enthielt das setools-Paket die Dienstprogramme sesearch und seinfo
- Das Dienstprogramm sesearch dient zum Suchen von Regeln in einer SELinux-Richtlinie, während das Dienstprogramm seinfo es ermöglicht, verschiedene andere Komponenten der Richtlinie abzufragen
In Linux wurden Python-Bindings für sesearch und seinfo hinzugefügt, sodass Sie die Funktionalität dieser Dienstprogramme über die sepolicy-Suite nutzen können
- Beispiel
‚‘> python >>> import sepolicy >>> sepolicy.info(sepolicy.ATTRIBUTE) Gibt ein Wörterbuch mit allen Informationen zu SELinux-Attributen zurück >>>sepolicy.search([sepolicy.ALLOW]) Gibt ein Wörterbuch mit allen Zulassungsregeln in der Richtlinie zurück.‚‘
Generieren von SELinux-Richtlinienmodulen: sepolicy generate
In früheren Linux-Versionen wurden die Dienstprogramme „sepolgen“ oder „selinux-polgengui“ zum Generieren einer SELinux-Richtlinie verwendet
- Diese Tools wurden in die „sepolicy“-Suite integriert
- Unter Linux wird der Befehl „sepolicy generate“ verwendet, um eine erste Vorlage für ein SELinux-Richtlinienmodul zu generieren
Im Gegensatz zu sepolgen ist es nicht erforderlich, sepolicy generate als Root-Benutzer auszuführen
- Dieses Dienstprogramm erstellt außerdem eine RPM-Spec-Datei, mit der ein RPM-Paket erstellt werden kann, das die Policy-Paketdatei (‚NAME'‚.pp) und die Schnittstellendatei (‚NAME'‚.if) am richtigen Ort installiert, die SELinux-Policy in den Kernel integriert und die Labeling-Einstellungen anpasst
- Das Setup-Skript installiert anschließend die SELinux-Policy und richtet das Labeling ein
- Darüber hinaus wird mit dem Befehl sepolicy manpage eine Handbuchseite basierend auf der installierten Richtlinie generiert. [7] Schließlich erstellt und kompiliert sepolicy generate die SELinux-Richtlinie und die Handbuchseite zu einem RPM-Paket, das zur Installation auf anderen Systemen bereit ist
Wenn sepolicy generate ausgeführt wird, werden die folgenden Dateien erzeugt:
- ‚'NAME'‚.te – Typ-Enforcing-Datei
- Diese Datei definiert alle Typen und Regeln für eine bestimmte Domäne
- ‚'NAME'‚.if – Schnittstellendatei
- Diese Datei definiert den Standard-Dateikontext für das System
- Sie übernimmt die in der Datei NAME.te erstellten Dateitypen und ordnet den Typen Dateipfade zu
- Dienstprogramme wie restorecon und rpm verwenden diese Pfade, um Labels zu schreiben
- ‚'NAME'‚_selinux.spec – RPM-Spezifikationsdatei
- Diese Datei ist eine RPM-Spezifikationsdatei, die die SELinux-Richtlinie installiert und die Labeling-Einstellungen vornimmt
- Diese Datei installiert außerdem die Schnittstellendatei und eine Man-Seite, die die Richtlinie beschreibt
- Sie können den Befehl sepolicy manpage -d NAME'‚ verwenden, um die Man-Seite zu generieren
- ‚'NAME'‚.sh – Hilfs-Shell-Skript
- Dieses Skript hilft beim Kompilieren, Installieren und Korrigieren der Kennzeichnung auf dem System
- Es generiert außerdem eine Man-Seite basierend auf der installierten Richtlinie, kompiliert und erstellt ein RPM-Paket, das für die Installation auf anderen Systemen geeignet ist
Wenn es möglich ist, ein SELinux-Richtlinienmodul zu generieren, gibt sepolicy generate alle generierten Pfade von der Quelldomäne zur Zieldomäne aus
- Weitere Informationen zu sepolicy generate finden Sie auf der Man-Seite sepolicy-generate(8)
Domänenübergänge verstehen: sepolicy transition
Früher wurde das Dienstprogramm setrans verwendet, um zu prüfen, ob ein Übergang zwischen zwei Domänen- oder Prozesstypen möglich ist, und es gab alle Zwischentypen aus, die für den Übergang zwischen diesen Domänen oder Prozessen verwendet werden
- Unter Linux ist setrans als Teil der sepolicy-Suite verfügbar, und stattdessen wird nun der Befehl sepolicy transition verwendet
Der Befehl sepolicy transition fragt eine SELinux-Richtlinie ab und erstellt einen Prozessübergangsbericht
- Der Befehl sepolicy transition benötigt zwei Befehlszeilenargumente – eine Quelldomäne (angegeben mit der Option ‚‘-s'‚) und eine Zieldomäne (angegeben mit der Option -t)
- Wenn nur die Quelldomäne angegeben wird, listet „sepolicy transition“ alle möglichen Domänen auf, zu denen die Quelldomäne wechseln kann
- Die folgende Ausgabe enthält nicht alle Einträge
- Das Zeichen „@“ bedeutet „ausführen“:
‚‘~]$ sepolicy transition -s httpd_t httpd_t @ httpd_suexec_exec_t --> httpd_suexec_t
httpd_t @ mailman_cgi_exec_t --> mailman_cgi_t
httpd_t @ abrt_retrace_worker_exec_t --> abrt_retrace_worker_t httpd_t @ dirsrvadmin_unconfined_script_exec_t --> dirsrvadmin_unconfined_script_t
httpd_t @ httpd_unconfined_script_exec_t --> httpd_unconfined_script_t Wenn die Zieldomäne angegeben ist, untersucht „sepolicy transition“ die SELinux-Richtlinie auf alle Übergangspfade von der Quelldomäne zur Zieldomäne und listet diese Pfade auf
Die folgende Ausgabe ist unvollständig:
sepolicy transition -s httpd_t -t system_mail_t httpd_t @ exim_exec_t --> system_mail_t httpd_t @ courier_exec_t --> system_mail_t httpd_t @ sendmail_exec_t --> system_mail_t httpd_t ..
- httpd_suexec_t @ sendmail_exec_t --> system_mail_t
httpd_t ..
- httpd_suexec_t @ exim_exec_t --> system_mail_t
httpd_t ..
- httpd_suexec_t @ courier_exec_t --> system_mail_t
httpd_t ..
- httpd_suexec_t ..
- httpd_mojomojo_script_t @ sendmail_exec_t --> system_mail_t
Weitere Informationen zum „sepolicy-transition“ finden Sie in der sepolicy-transition(8)-Handbuchseite
Erstellen von Handbuchseiten: sepolicy manpage
Der Befehl „sepolicy manpage“ generiert Handbuchseiten auf Basis der SELinux-Richtlinie, die Prozessdomänen dokumentieren
- Dadurch ist diese Dokumentation stets auf dem neuesten Stand
- Jeder Name der automatisch generierten Handbuchseiten besteht aus dem Namen der Prozessdomäne und dem Suffix _selinux, zum Beispiel httpd_selinux
Die Handbuchseiten enthalten mehrere Abschnitte, die Informationen zu verschiedenen Teilen der SELinux-Richtlinie für eingeschränkte Domänen bereitstellen:
- Der Abschnitt Entrypoints enthält alle ausführbaren Dateien, die während eines Domänenübergangs ausgeführt werden müssen
- Der Abschnitt „Process Types“ listet alle Prozesstypen auf, die mit demselben Präfix wie die Zieldomäne beginnen
- Der Abschnitt „Booleans“ listet die mit der Domäne verbundenen Booleschen Werte auf
- Der Abschnitt „Port Types“ enthält die Porttypen, die mit demselben Präfix wie die Domäne übereinstimmen, und beschreibt die diesen Porttypen zugewiesenen Standardportnummern
- Der Abschnitt „Managed Files“ beschreibt die Typen, in die die Domäne schreiben darf, sowie die diesen Typen zugeordneten Standardpfade
- Der Abschnitt „File Contexts“ enthält alle mit der Domäne verbundenen Dateitypen und beschreibt, wie diese Dateitypen zusammen mit der Standard-Pfadkennzeichnung auf einem System verwendet werden
- Der Abschnitt „Sharing Files“ erläutert die Verwendung der Domänen-Freigabetypen, wie z. B. „public_content_t“
Weitere Informationen zu „sepolicy manpage“ finden Sie auf der sepolicy-manpage(8)-Handbuchseite
[7] Weitere Informationen zu „sepolicy manpage“ finden Sie in Abschnitt 5.4, „Erstellen von Handbuchseiten: „sepolicy manpage““