Linux/SELinux/Tools: Unterschied zwischen den Versionen
| (10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''[[Linux/SELinux/Tools]]''' | '''[[Linux/SELinux/Tools]]''' | ||
== Werkzeuge == | == Werkzeuge == | ||
| Zeile 21: | Zeile 13: | ||
|} | |} | ||
== | == Analyse == | ||
Analysewerkzeuge dienen in erster Linie dazu, die Kernel-Richtlinie (entweder die auf der Festplatte gespeicherte Richtliniendatei oder die im Arbeitsspeicher des Kernels befindliche Richtlinie über /sys/fs/selinux/policy) auf bestimmte Kriterien hin zu analysieren, beispielsweise den Informationsfluss. | |||
* Diese Werkzeuge bilden die Grundlage, auf der wir Aussagen über die Sicherheitseigenschaften eines SELinux-Systems treffen können. | |||
* Sie werden auf Entwicklungssystemen benötigt, die zur Analyse einer Zielrichtlinie verwendet werden, und sind auf Produktionssystemen selten installiert. | |||
{| class="wikitable big options" | |||
{| class="wikitable | !Name des Tools | ||
!Beschreibung | |||
!Paket | |||
! | |||
|- | |- | ||
|apol | |[[apol]] | ||
| | |führt zahlreiche Analysen der Zielrichtlinie durch, darunter Domänenübergänge, Informationsfluss, Standardabfragen, Dateisystemanalyse und so weiter | ||
|setools-gui | |setools-gui | ||
|- | |- | ||
|sechecker | |[[sechecker]] | ||
| | |konfigurationsgesteuerte automatisierte Richtlinienanalyse | ||
|setools-console | |setools-console | ||
|- | |- | ||
|sediff | |[[sediff]] | ||
| | |führt eine semantische Differenzanalyse zwischen zwei Richtlinien durch | ||
|setools-console | |setools-console | ||
|- | |- | ||
|sedta | |[[sedta]] | ||
| | |führt eine Domänenübergangsanalyse für eine Richtlinie durch | ||
|setools-console-analyses | |setools-console-analyses | ||
|- | |- | ||
|seinfo | |[[seinfo]] | ||
| | |abfragt die Komponenten einer SELinux-Richtlinie | ||
|setools-console | |setools-console | ||
|- | |- | ||
|seinfoflow | |[[seinfoflow]] | ||
| | |Durchführung einer Informationsflussanalyse für eine Richtlinie | ||
|setools-console-analyses | |setools-console-analyses | ||
|- | |- | ||
|sesearch | |[[sesearch]] | ||
| | |Durchsuchen einer Richtliniendatei nach verschiedenen Richtlinienregeln oder Komponenten wie Zulassungsregeln, Symbolen usw. | ||
|setools-console | |setools-console | ||
|} | |} | ||
== | == Erstellungszeit == | ||
Werkzeuge für die Erstellungszeit werden beim Erstellen einer Richtlinie aus dem Quellcode in Module oder eine monolithische Kernel-Richtlinie verwendet. | |||
* Sie sind auf Systemen erforderlich, die Richtlinien aus dem Quellcode erstellen sollen, einschließlich Produktionssystemen, die Tools wie audit2allow verwenden, um zur Laufzeit neue Richtlinienregeln hinzuzufügen. | |||
* Auf typischen Endsystemen, die nicht von Entwicklern genutzt werden, sind sie nicht erforderlich. | |||
{| class="wikitable big options" | {| class="wikitable big options" | ||
!Tool | !Tool-Name | ||
! | !Beschreibung | ||
! | !Paket | ||
|- | |- | ||
|checkmodule | |[[checkmodule]] | ||
| | |Kompilieren eines binären Richtlinienmoduls aus einer Modul-Quelldatei | ||
|checkpolicy | |checkpolicy | ||
|- | |- | ||
|checkpolicy | |[[checkpolicy]] | ||
| | |Kompiliert eine Kernel-Richtlinie aus einer Richtlinien-Quelldatei | ||
|checkpolicy | |checkpolicy | ||
|- | |- | ||
|semodule_package | |[[semodule_package]] | ||
| | |Erstellt ein binäres Richtlinienpaket aus einem binären Modul und optional null oder mehr der Dateien file contexts, seusers, user_extra und/oder netfilter_contexts | ||
|semodule-utils ( | |semodule-utils (Upstream) oder policycoreutils (Fedora) | ||
|- | |- | ||
|semodule_unpackage | |[[semodule_unpackage]] | ||
| | |Extrahieren des binären Policy-Moduls und optional der Datei „file contexts“ aus einem binären Policy-Paket | ||
|semodule-utils ( | |semodule-utils (Upstream) oder policycoreutils (Fedora) | ||
|- | |- | ||
|secilc | |[[secilc]] | ||
| | |Kompilieren einer binären Kernel-Policy aus einem Common Intermediate Language (CIL)-Policy-Modul | ||
|secilc | |secilc | ||
|} | |} | ||
== | == Entwicklung == | ||
Entwicklungswerkzeuge werden beim Schreiben oder Debuggen von SELinux-Richtlinien verwendet und werden in der Regel während der Entwicklung und des Testens auf Entwicklungs- oder Endsystemen installiert. | |||
* Einige Werkzeuge richten sich eher an typische Endbenutzer, während andere eher für erfahrene Kernel- oder Richtlinienentwickler gedacht sind. | |||
* Beispielsweise kann audit2allow von typischen Endbenutzern verwendet werden, um Richtlinien aus Audit-Meldungen zu erstellen, während sedispol im Allgemeinen nur von Kernel- oder Richtlinienentwicklern genutzt wird, um bestimmte Komponenten einer Kernel-Richtlinie zu untersuchen. | |||
{| class="wikitable big options" | {| class="wikitable big options" | ||
! | !Werkzeugname | ||
! | !Beschreibung | ||
! | !Paket | ||
|- | |- | ||
|audit2allow | |[[audit2allow]] | ||
| | |Erzeugt Zulassungsregeln aus SELinux-AVC-Audit-Meldungen | ||
|selinux-python ( | |selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) | ||
|- | |- | ||
|audit2why | |[[audit2why]] | ||
| | |Diagnose der Ursache von SELinux-AVC-Audit-Meldungen mittels Richtlinienanalyse | ||
|selinux-python ( | |selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) | ||
|- | |- | ||
|dismod | |[[dismod]] | ||
| | |Abfrage verschiedener Teile eines kompilierten Richtlinienmoduls oder Richtlinienpakets | ||
|checkpolicy ( | |checkpolicy (als sedismod in Fedora) | ||
|- | |- | ||
|dispol | |[[dispol]] | ||
| | |Abfrage verschiedener Teile einer kompilierten Kernel-Richtlinie | ||
|checkpolicy ( | |checkpolicy (als sedispol in Fedora) | ||
|- | |- | ||
|getconlist | |[[getconlist]] | ||
| | |Auflistung aller SELinux-Kontexte, die für den angegebenen Benutzer vom aktuellen oder angegebenen Kontext aus erreichbar sind | ||
|libselinux-utils ( | |libselinux-utils (als selinuxconlist in Fedora) | ||
|- | |- | ||
|getdefaultcon | |[[getdefaultcon]] | ||
| | |Anzeige des Standard-SELinux-Kontexts für den angegebenen Benutzer vom angegebenen Kontext aus | ||
|libselinux-utils ( | |libselinux-utils (als selinuxdefcon in Fedora) | ||
|- | |- | ||
|getpolicyload | |[[getpolicyload]] | ||
| | |Zeigt die maximale vom Kernel zum Laden unterstützte Richtlinienversion an | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|matchpathcon | |[[matchpathcon]] | ||
| | |Abfrage der aktiven Datei „file_contexts“, um zu ermitteln, wie ein bestimmter Pfad gekennzeichnet werden soll | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selabel_compare | |[[selabel_compare]] | ||
| | |vergleicht zwei Label-Konfigurationsdateien | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selabel_digest | |[[selabel_digest]] | ||
| | |berechnet Digests für eine Label-Konfiguration | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selabel_get_digests_all_partial_matches | |[[selabel_get_digests_all_partial_matches]] | ||
| | |vergleicht das Verzeichnis-Digest-xattr mit dem Digest aus der Label-Konfiguration | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selabel_lookup | |[[selabel_lookup]] | ||
| | |Nachschlagen des Labels für einen bestimmten Schlüssel in einer Label-Konfiguration | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selabel_lookup_best_match | |[[selabel_lookup_best_match]] | ||
| | |Nachschlagen des am besten passenden Kontexts für einen Pfad mit mehreren Verknüpfungen | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selabel_partial_match | |[[selabel_partial_match]] | ||
| | |Feststellen, ob eine Teilübereinstimmung für einen Pfad möglich ist | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selinuxexeccon | |[[selinuxexeccon]] | ||
| | |Anzeige des SELinux-Kontexts, der für eine ausführbare Datei aus dem aktuellen oder angegebenen Kontext verwendet würde | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selinux-polgengui | |[[selinux-polgengui]] | ||
|GUI | |GUI zur Erzeugung von Richtlinien | ||
|selinux-gui ( | |selinux-gui (Upstream) oder policycoreutils-gui (Fedora) | ||
|- | |- | ||
|selinux_check_access | |[[selinux_check_access]] | ||
| | |prüft, ob die angegebene Berechtigung zulässig ist | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|semodule_expand | |[[semodule_expand]] | ||
| | |erweitert ein Basis-Policy-Modul zu einer Kernel-Policy | ||
|semodule-utils ( | |semodule-utils (Upstream) oder policycoreutils (Fedora) | ||
|- | |- | ||
|semodule_link | |[[semodule_link]] | ||
| | |eine Liste von Richtlinienmodulen miteinander verknüpfen | ||
|semodule-utils ( | |semodule-utils (Upstream) oder policycoreutils (Fedora) | ||
|- | |- | ||
|sepolgen | |[[sepolgen]] | ||
| | |ein Richtlinienmodul generieren | ||
|selinux-python ( | |selinux-python (Upstream) oder policycoreutils-devel (Fedora) | ||
|- | |- | ||
|sepolgen-ifgen | |[[sepolgen-ifgen]] | ||
| | |Erzeugt die Schnittstellendatei, die audit2allow verwendet, um Schnittstellen bei der Generierung von Policy-Modulen im refpolicy-Stil mit Regeln abzugleichen | ||
|selinux-python ( | |selinux-python (Upstream) oder policycoreutils-devel (Fedora) | ||
|- | |- | ||
|sepolicy | |[[sepolicy]] | ||
| | |Frontend zum Überprüfen oder Generieren von Policies | ||
|selinux-python ( | |selinux-python (Upstream) oder policycoreutils-devel (Fedora) | ||
|- | |- | ||
|validatetrans | |[[validatetrans]] | ||
| | |Überprüft einen Kontextwechsel auf Übereinstimmung mit der Richtlinie | ||
|libselinux-utils | |libselinux-utils | ||
|} | |} | ||
== | == Neulabelung == | ||
Neulabelungs-Tools werden verwendet, um Dateien anhand verschiedener Arten von Eingaben neu zu labeln. | |||
* Einige Tools nehmen einfach einen Kontext entgegen, während andere die aktive Datei „file_contexts“ auf dem System abfragen. | |||
* Einige sind in der Lage, die Paketdaten der verwendeten Distribution zu überprüfen, um eine Liste der neu zu labelnenden Dateien zu erhalten. | |||
* Nicht in dieser Liste enthalten ist das Init-Skript oder die systemd-Unit-Datei, die auf einigen Systemen verwendet wird, um ein Dateisystem bei Bedarf automatisch beim Systemstart neu zu kennzeichnen. | |||
{| class="wikitable big options" | {| class="wikitable big options" | ||
!Tool | !Tool-Name | ||
! | !Beschreibung | ||
! | !Paket | ||
|- | |- | ||
|chcon | |[[chcon]] | ||
| | |Ändert den Kontext oder einen Teil eines Kontexts einer Datei | ||
|coreutils | |coreutils | ||
|- | |- | ||
|chcat | |[[chcat]] | ||
| | |Ändert die Kategorien einer Datei oder die autorisierten Kategorien für einen Benutzer | ||
|selinux-python ( | |selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) | ||
|- | |- | ||
|fixfiles | |[[fixfiles]] | ||
| | |Korrigiert Dateikennzeichnungen basierend auf aktiven policy file_contexts-Dateien | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|rlpkg | |[[rlpkg]] | ||
| | |Kennzeichnet Dateien neu basierend auf Gentoo-Paketen (Gentoo-spezifisch) | ||
|gentoo | |gentoo | ||
|- | |- | ||
|restorecon | |[[restorecon]] | ||
| | |Stellt Dateien in den durch die file_contexts-Dateien festgelegten Kontexten wieder her | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|restorecond | |[[restorecond]] | ||
| | |Daemon, der auf neu erstellte Dateien achtet und diese zur Laufzeit kennzeichnet | ||
|restorecond ( | |restorecond (Upstream) oder policycoreutils-restorecond (Fedora) | ||
|- | |- | ||
|setfiles | |[[setfiles]] | ||
| | |Dateien basierend auf der file_contexts-Konfiguration neu kennzeichnen oder die Gültigkeit von file_contexts anhand der Binärrichtlinie überprüfen | ||
|policycoreutils | |policycoreutils | ||
|} | |} | ||
== | == Laufzeit == | ||
Laufzeit-Tools werden zur Laufzeit auf Endsystemen verwendet, um das Laufverhalten von SELinux zu ändern oder anzuzeigen. | |||
* Einige sind möglicherweise nicht auf Endsystemen installiert, wie z. B. setroubleshootd (nur erforderlich, wenn Endbenutzer Benachrichtigungen über und Hilfe bei Richtlinienverweigerungen benötigen), system-config-selinux (nur erforderlich, wenn eine GUI zur Verwaltung von SELinux benötigt wird) und mctransd (nur erforderlich auf Systemen, die MCS/MLS-Konfigurationen zur Übersetzung von Labels in lesbare Form benötigen). | |||
* Diese drei Werkzeuge sollten auf Systemen, die sie nicht benötigen, weggelassen werden. | |||
{| class="wikitable big options" | {| class="wikitable big options" | ||
!Tool | !Tool-Name | ||
! | !Beschreibung | ||
! | !Paket | ||
|- | |- | ||
|avcstat | |[[avcstat]] | ||
| | |liefert Statistiken zum Zugriffsvektor-Cache im Kernel, wie z. B. Anzahl der Suchvorgänge, Treffer und Fehltreffer | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|genhomedircon | |[[genhomedircon]] | ||
| | |Erzeugt Dateikontexte für Benutzer-Home-Verzeichnisse basierend auf Vorlagen-Dateikontexten (HOMEDIR, HOMEROOT usw.) | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|getenforce | |[[getenforce]] | ||
| | |Ruft den Durchsetzungsstatus des Kernel-Zugriffsvektor-Caches ab | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|getsebool | |[[getsebool]] | ||
| | |Ruft den aktuellen Status eines SELinux-Booles im SELinux-Sicherheitsserver ab | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|load_policy | |[[load_policy]] | ||
| | |Lädt die aktive Kernel-Richtlinie | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|mcstransd | |[[mcstransd]] | ||
| | |Daemon, der Übersetzungen für Ebenen und Kategorien bereitstellt | ||
|mcstrans | |mcstrans | ||
|- | |- | ||
|newrole | |[[newrole]] | ||
| | |Ändert Ihre Rolle, Ihren Typ oder Ihre Stufe; erfordert eine erneute Authentifizierung; geeignet für die Verwendung durch Benutzerdomänen | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|runcon | |[[runcon]] | ||
| | |Führt einen Befehl mit einem angegebenen SELinux-Kontext aus; führt keine erneute Authentifizierung durch; geeignet für die Verwendung in Skripten, um einen Dienst in einer anderen Domäne auszuführen | ||
|coreutils | |coreutils | ||
|- | |- | ||
|secon | |[[secon]] | ||
| | |Zeigt den vollständigen Kontext oder dessen Komponenten für ein angegebenes Objekt (Datei, Prozess, Schlüssel) an | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|sefcontext_compile | |[[sefcontext_compile]] | ||
| | |Kompiliert Dateikontxtkonfigurationen zu einer Binärversion für eine schnellere Suche | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|selinuxenabled | |[[selinuxenabled]] | ||
| | |Prüft, ob SELinux derzeit aktiviert ist | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|semanage | |[[semanage]] | ||
| | |Verwaltet verschiedene Aspekte von SELinux, darunter Port-, Schnittstellen- und Knoten-Labeling, persistente Dateikontexte und boolesche Einstellungen, autorisierte Rollen und Ebenen für SELinux-Benutzer, autorisierte SELinux-Benutzer und Ebenen für Seusers (Login- oder Linux-Benutzer), MLS-Übersetzungen und permissive Typen | ||
|selinux-python ( | |selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) | ||
|- | |- | ||
|semodule | |[[semodule]] | ||
| | |Einfügen, Löschen und Auflisten von SELinux-Richtlinienmodulen auf dem laufenden System | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|sestatus | |[[sestatus]] | ||
| | |Abrufen verschiedener Informationen zum Laufzustand von SELinux, einschließlich Aktivierungsstatus, Enforcing/Permissive, Richtlinienname und Kontexte verschiedener wichtiger Prozesse und Dateien | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|setenforce | |[[setenforce]] | ||
| | |den Enforcing-Status des Kernel-Access-Vector-Caches festlegen | ||
|libselinux-utils | |libselinux-utils | ||
|- | |- | ||
|setroubleshoot | |[[setroubleshoot]] | ||
| | |ein Daemon, der auf Zugriffsverweigerungen achtet und Vorschläge zu deren Behebung anbietet (verfügt über mehrere Frontends, darunter eine Gnome-Tray-Schnittstelle) | ||
|setroubleshoot-server (Fedora) | |setroubleshoot-server (Fedora) | ||
|- | |- | ||
|setsebool | |[[setsebool]] | ||
| | |Setzt einen oder mehrere SELinux-Booleans | ||
|policycoreutils | |policycoreutils | ||
|- | |- | ||
|system-config-selinux | |[[system-config-selinux]] | ||
|GUI | |GUI zur Verwaltung von SELinux | ||
|selinux-gui ( | |selinux-gui (Upstream) oder policycoreutils-gui (Fedora) | ||
|} | |} | ||
<noinclude> | <noinclude> | ||
| Zeile 348: | Zeile 326: | ||
==== Projekt ==== | ==== Projekt ==== | ||
==== Weblinks ==== | ==== Weblinks ==== | ||
# https://github.com/SELinuxProject/selinux/wiki/Tools | |||
<!-- | <!-- | ||
Aktuelle Version vom 31. März 2026, 23:03 Uhr
Werkzeuge
Neben den offiziellen SELinux-Werkzeugen existieren zahlreiche nützliche Werkzeuge, die das Arbeiten mit SELinux erleichtern
| Tool | Beschreibung |
|---|---|
| setroubleshoot | benachrichtigt über ein Task-Symbol über durchgesetzte Beschränkungen von Programmen und stellt auf Anfrage zusätzliche Informationen wie auch mögliche Lösungsvorschläge bereit, um das Problem zu beheben |
| SLIDE | ist eine IDE für die Entwicklung der Richtlinie, die in Form einer Eclipse-Erweiterung veröffentlicht wird |
| apol | ist für die Analyse von Richtlinien zuständig |
Analyse
Analysewerkzeuge dienen in erster Linie dazu, die Kernel-Richtlinie (entweder die auf der Festplatte gespeicherte Richtliniendatei oder die im Arbeitsspeicher des Kernels befindliche Richtlinie über /sys/fs/selinux/policy) auf bestimmte Kriterien hin zu analysieren, beispielsweise den Informationsfluss.
- Diese Werkzeuge bilden die Grundlage, auf der wir Aussagen über die Sicherheitseigenschaften eines SELinux-Systems treffen können.
- Sie werden auf Entwicklungssystemen benötigt, die zur Analyse einer Zielrichtlinie verwendet werden, und sind auf Produktionssystemen selten installiert.
| Name des Tools | Beschreibung | Paket |
|---|---|---|
| apol | führt zahlreiche Analysen der Zielrichtlinie durch, darunter Domänenübergänge, Informationsfluss, Standardabfragen, Dateisystemanalyse und so weiter | setools-gui |
| sechecker | konfigurationsgesteuerte automatisierte Richtlinienanalyse | setools-console |
| sediff | führt eine semantische Differenzanalyse zwischen zwei Richtlinien durch | setools-console |
| sedta | führt eine Domänenübergangsanalyse für eine Richtlinie durch | setools-console-analyses |
| seinfo | abfragt die Komponenten einer SELinux-Richtlinie | setools-console |
| seinfoflow | Durchführung einer Informationsflussanalyse für eine Richtlinie | setools-console-analyses |
| sesearch | Durchsuchen einer Richtliniendatei nach verschiedenen Richtlinienregeln oder Komponenten wie Zulassungsregeln, Symbolen usw. | setools-console |
Erstellungszeit
Werkzeuge für die Erstellungszeit werden beim Erstellen einer Richtlinie aus dem Quellcode in Module oder eine monolithische Kernel-Richtlinie verwendet.
- Sie sind auf Systemen erforderlich, die Richtlinien aus dem Quellcode erstellen sollen, einschließlich Produktionssystemen, die Tools wie audit2allow verwenden, um zur Laufzeit neue Richtlinienregeln hinzuzufügen.
- Auf typischen Endsystemen, die nicht von Entwicklern genutzt werden, sind sie nicht erforderlich.
| Tool-Name | Beschreibung | Paket |
|---|---|---|
| checkmodule | Kompilieren eines binären Richtlinienmoduls aus einer Modul-Quelldatei | checkpolicy |
| checkpolicy | Kompiliert eine Kernel-Richtlinie aus einer Richtlinien-Quelldatei | checkpolicy |
| semodule_package | Erstellt ein binäres Richtlinienpaket aus einem binären Modul und optional null oder mehr der Dateien file contexts, seusers, user_extra und/oder netfilter_contexts | semodule-utils (Upstream) oder policycoreutils (Fedora) |
| semodule_unpackage | Extrahieren des binären Policy-Moduls und optional der Datei „file contexts“ aus einem binären Policy-Paket | semodule-utils (Upstream) oder policycoreutils (Fedora) |
| secilc | Kompilieren einer binären Kernel-Policy aus einem Common Intermediate Language (CIL)-Policy-Modul | secilc |
Entwicklung
Entwicklungswerkzeuge werden beim Schreiben oder Debuggen von SELinux-Richtlinien verwendet und werden in der Regel während der Entwicklung und des Testens auf Entwicklungs- oder Endsystemen installiert.
- Einige Werkzeuge richten sich eher an typische Endbenutzer, während andere eher für erfahrene Kernel- oder Richtlinienentwickler gedacht sind.
- Beispielsweise kann audit2allow von typischen Endbenutzern verwendet werden, um Richtlinien aus Audit-Meldungen zu erstellen, während sedispol im Allgemeinen nur von Kernel- oder Richtlinienentwicklern genutzt wird, um bestimmte Komponenten einer Kernel-Richtlinie zu untersuchen.
| Werkzeugname | Beschreibung | Paket |
|---|---|---|
| audit2allow | Erzeugt Zulassungsregeln aus SELinux-AVC-Audit-Meldungen | selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) |
| audit2why | Diagnose der Ursache von SELinux-AVC-Audit-Meldungen mittels Richtlinienanalyse | selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) |
| dismod | Abfrage verschiedener Teile eines kompilierten Richtlinienmoduls oder Richtlinienpakets | checkpolicy (als sedismod in Fedora) |
| dispol | Abfrage verschiedener Teile einer kompilierten Kernel-Richtlinie | checkpolicy (als sedispol in Fedora) |
| getconlist | Auflistung aller SELinux-Kontexte, die für den angegebenen Benutzer vom aktuellen oder angegebenen Kontext aus erreichbar sind | libselinux-utils (als selinuxconlist in Fedora) |
| getdefaultcon | Anzeige des Standard-SELinux-Kontexts für den angegebenen Benutzer vom angegebenen Kontext aus | libselinux-utils (als selinuxdefcon in Fedora) |
| getpolicyload | Zeigt die maximale vom Kernel zum Laden unterstützte Richtlinienversion an | libselinux-utils |
| matchpathcon | Abfrage der aktiven Datei „file_contexts“, um zu ermitteln, wie ein bestimmter Pfad gekennzeichnet werden soll | libselinux-utils |
| selabel_compare | vergleicht zwei Label-Konfigurationsdateien | libselinux-utils |
| selabel_digest | berechnet Digests für eine Label-Konfiguration | libselinux-utils |
| selabel_get_digests_all_partial_matches | vergleicht das Verzeichnis-Digest-xattr mit dem Digest aus der Label-Konfiguration | libselinux-utils |
| selabel_lookup | Nachschlagen des Labels für einen bestimmten Schlüssel in einer Label-Konfiguration | libselinux-utils |
| selabel_lookup_best_match | Nachschlagen des am besten passenden Kontexts für einen Pfad mit mehreren Verknüpfungen | libselinux-utils |
| selabel_partial_match | Feststellen, ob eine Teilübereinstimmung für einen Pfad möglich ist | libselinux-utils |
| selinuxexeccon | Anzeige des SELinux-Kontexts, der für eine ausführbare Datei aus dem aktuellen oder angegebenen Kontext verwendet würde | libselinux-utils |
| selinux-polgengui | GUI zur Erzeugung von Richtlinien | selinux-gui (Upstream) oder policycoreutils-gui (Fedora) |
| selinux_check_access | prüft, ob die angegebene Berechtigung zulässig ist | libselinux-utils |
| semodule_expand | erweitert ein Basis-Policy-Modul zu einer Kernel-Policy | semodule-utils (Upstream) oder policycoreutils (Fedora) |
| semodule_link | eine Liste von Richtlinienmodulen miteinander verknüpfen | semodule-utils (Upstream) oder policycoreutils (Fedora) |
| sepolgen | ein Richtlinienmodul generieren | selinux-python (Upstream) oder policycoreutils-devel (Fedora) |
| sepolgen-ifgen | Erzeugt die Schnittstellendatei, die audit2allow verwendet, um Schnittstellen bei der Generierung von Policy-Modulen im refpolicy-Stil mit Regeln abzugleichen | selinux-python (Upstream) oder policycoreutils-devel (Fedora) |
| sepolicy | Frontend zum Überprüfen oder Generieren von Policies | selinux-python (Upstream) oder policycoreutils-devel (Fedora) |
| validatetrans | Überprüft einen Kontextwechsel auf Übereinstimmung mit der Richtlinie | libselinux-utils |
Neulabelung
Neulabelungs-Tools werden verwendet, um Dateien anhand verschiedener Arten von Eingaben neu zu labeln.
- Einige Tools nehmen einfach einen Kontext entgegen, während andere die aktive Datei „file_contexts“ auf dem System abfragen.
- Einige sind in der Lage, die Paketdaten der verwendeten Distribution zu überprüfen, um eine Liste der neu zu labelnenden Dateien zu erhalten.
- Nicht in dieser Liste enthalten ist das Init-Skript oder die systemd-Unit-Datei, die auf einigen Systemen verwendet wird, um ein Dateisystem bei Bedarf automatisch beim Systemstart neu zu kennzeichnen.
| Tool-Name | Beschreibung | Paket |
|---|---|---|
| chcon | Ändert den Kontext oder einen Teil eines Kontexts einer Datei | coreutils |
| chcat | Ändert die Kategorien einer Datei oder die autorisierten Kategorien für einen Benutzer | selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) |
| fixfiles | Korrigiert Dateikennzeichnungen basierend auf aktiven policy file_contexts-Dateien | policycoreutils |
| rlpkg | Kennzeichnet Dateien neu basierend auf Gentoo-Paketen (Gentoo-spezifisch) | gentoo |
| restorecon | Stellt Dateien in den durch die file_contexts-Dateien festgelegten Kontexten wieder her | policycoreutils |
| restorecond | Daemon, der auf neu erstellte Dateien achtet und diese zur Laufzeit kennzeichnet | restorecond (Upstream) oder policycoreutils-restorecond (Fedora) |
| setfiles | Dateien basierend auf der file_contexts-Konfiguration neu kennzeichnen oder die Gültigkeit von file_contexts anhand der Binärrichtlinie überprüfen | policycoreutils |
Laufzeit
Laufzeit-Tools werden zur Laufzeit auf Endsystemen verwendet, um das Laufverhalten von SELinux zu ändern oder anzuzeigen.
- Einige sind möglicherweise nicht auf Endsystemen installiert, wie z. B. setroubleshootd (nur erforderlich, wenn Endbenutzer Benachrichtigungen über und Hilfe bei Richtlinienverweigerungen benötigen), system-config-selinux (nur erforderlich, wenn eine GUI zur Verwaltung von SELinux benötigt wird) und mctransd (nur erforderlich auf Systemen, die MCS/MLS-Konfigurationen zur Übersetzung von Labels in lesbare Form benötigen).
- Diese drei Werkzeuge sollten auf Systemen, die sie nicht benötigen, weggelassen werden.
| Tool-Name | Beschreibung | Paket |
|---|---|---|
| avcstat | liefert Statistiken zum Zugriffsvektor-Cache im Kernel, wie z. B. Anzahl der Suchvorgänge, Treffer und Fehltreffer | libselinux-utils |
| genhomedircon | Erzeugt Dateikontexte für Benutzer-Home-Verzeichnisse basierend auf Vorlagen-Dateikontexten (HOMEDIR, HOMEROOT usw.) | policycoreutils |
| getenforce | Ruft den Durchsetzungsstatus des Kernel-Zugriffsvektor-Caches ab | libselinux-utils |
| getsebool | Ruft den aktuellen Status eines SELinux-Booles im SELinux-Sicherheitsserver ab | libselinux-utils |
| load_policy | Lädt die aktive Kernel-Richtlinie | policycoreutils |
| mcstransd | Daemon, der Übersetzungen für Ebenen und Kategorien bereitstellt | mcstrans |
| newrole | Ändert Ihre Rolle, Ihren Typ oder Ihre Stufe; erfordert eine erneute Authentifizierung; geeignet für die Verwendung durch Benutzerdomänen | policycoreutils |
| runcon | Führt einen Befehl mit einem angegebenen SELinux-Kontext aus; führt keine erneute Authentifizierung durch; geeignet für die Verwendung in Skripten, um einen Dienst in einer anderen Domäne auszuführen | coreutils |
| secon | Zeigt den vollständigen Kontext oder dessen Komponenten für ein angegebenes Objekt (Datei, Prozess, Schlüssel) an | policycoreutils |
| sefcontext_compile | Kompiliert Dateikontxtkonfigurationen zu einer Binärversion für eine schnellere Suche | libselinux-utils |
| selinuxenabled | Prüft, ob SELinux derzeit aktiviert ist | libselinux-utils |
| semanage | Verwaltet verschiedene Aspekte von SELinux, darunter Port-, Schnittstellen- und Knoten-Labeling, persistente Dateikontexte und boolesche Einstellungen, autorisierte Rollen und Ebenen für SELinux-Benutzer, autorisierte SELinux-Benutzer und Ebenen für Seusers (Login- oder Linux-Benutzer), MLS-Übersetzungen und permissive Typen | selinux-python (Upstream) oder policycoreutils-python-utils (Fedora) |
| semodule | Einfügen, Löschen und Auflisten von SELinux-Richtlinienmodulen auf dem laufenden System | policycoreutils |
| sestatus | Abrufen verschiedener Informationen zum Laufzustand von SELinux, einschließlich Aktivierungsstatus, Enforcing/Permissive, Richtlinienname und Kontexte verschiedener wichtiger Prozesse und Dateien | policycoreutils |
| setenforce | den Enforcing-Status des Kernel-Access-Vector-Caches festlegen | libselinux-utils |
| setroubleshoot | ein Daemon, der auf Zugriffsverweigerungen achtet und Vorschläge zu deren Behebung anbietet (verfügt über mehrere Frontends, darunter eine Gnome-Tray-Schnittstelle) | setroubleshoot-server (Fedora) |
| setsebool | Setzt einen oder mehrere SELinux-Booleans | policycoreutils |
| system-config-selinux | GUI zur Verwaltung von SELinux | selinux-gui (Upstream) oder policycoreutils-gui (Fedora) |
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks