Zum Inhalt springen

Linux/SELinux/Tools: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 1: Zeile 1:
'''[[Linux/SELinux/Tools]]'''
'''[[Linux/SELinux/Tools]]'''
== Beschreibung ==


== Werkzeuge ==
== Werkzeuge ==

Version vom 31. März 2026, 22:51 Uhr

Linux/SELinux/Tools

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)