Linux/SELinux/Tools: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 326: | 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