Zum Inhalt springen

Linux/SELinux/Tools: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 46: Zeile 46:
|}
|}


= Tools =
= Werkzeuge =


== Analysis ==
== Analyse ==
Analysis tools are primarily used to analyze the kernel policy (either the on-disk policy file or the kernel's in-memory policy via /sys/fs/selinux/policy) for certain criteria, for example information flow. These tools form the basis on which we can make claims concerning the security properties of an SELinux system. They are required on development systems being used to analyze a target policy, and are rarely installed on production systems.
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"
{| class="wikitable big options"
|Tool name
|Name des Tools
|Description
|Beschreibung
|Package
|Paket
|-
|-
|apol
|apol
|perform many analyses on the target policy including domain transition, information flow, standard queries, filesystem analysis and so on
|führt zahlreiche Analysen der Zielrichtlinie durch, darunter Domänenübergänge, Informationsfluss, Standardabfragen, Dateisystemanalyse und so weiter
|setools-gui
|setools-gui
|-
|-
|sechecker
|sechecker
|configuration-driven automated policy analysis
|konfigurationsgesteuerte automatisierte Richtlinienanalyse
|setools-console
|setools-console
|-
|-
|sediff
|sediff
|perform a semantic difference between two policies
|führt eine semantische Differenzanalyse zwischen zwei Richtlinien durch
|setools-console
|setools-console
|-
|-
|sedta
|sedta
|perform domain transition analysis on a policy
|führt eine Domänenübergangsanalyse für eine Richtlinie durch
|setools-console-analyses
|setools-console-analyses
|-
|-
|seinfo
|seinfo
|query the components of a SELinux policy
|abfragt die Komponenten einer SELinux-Richtlinie
|setools-console
|setools-console
|-
|-
|seinfoflow
|seinfoflow
|perform information flow analysis on a policy
|Durchführung einer Informationsflussanalyse für eine Richtlinie
|setools-console-analyses
|setools-console-analyses
|-
|-
|sesearch
|sesearch
|search a policy file for various policy rules or components such as allow rules, symbols, etc
|Durchsuchen einer Richtliniendatei nach verschiedenen Richtlinienregeln oder Komponenten wie Zulassungsregeln, Symbolen usw.
|setools-console
|setools-console
|}
|}


== Build time ==
== Erstellungszeit ==
Build time tools are used during building a policy from source into modules or a monolithic kernel policy. They are required on systems that intend to build policies from source, including production systems that use tools such as audit2allow to add new policy rules at runtime. They are not required on typical non-developer end-systems.
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 name
!Tool-Name
!Description
!Beschreibung
!Package
!Paket
|-
|-
|checkmodule
|checkmodule
|compile a binary policy module from a module source file
|Kompilieren eines binären Richtlinienmoduls aus einer Modul-Quelldatei
|checkpolicy
|checkpolicy
|-
|-
|checkpolicy
|checkpolicy
|compile a kernel policy from a policy source file
|Kompiliert eine Kernel-Richtlinie aus einer Richtlinien-Quelldatei
|checkpolicy
|checkpolicy
|-
|-
|semodule_package
|semodule_package
|create a binary policy package from a binary module and optionally zero or more of file contexts, seusers, user_extra, and/or netfilter_contexts file
|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) or policycoreutils (Fedora)
|semodule-utils (Upstream) oder policycoreutils (Fedora)
|-
|-
|semodule_unpackage
|semodule_unpackage
|extract the binary policy module and optionally the file contexts file from a binary policy package
|Extrahieren des binären Policy-Moduls und optional der Datei „file contexts“ aus einem binären Policy-Paket
|semodule-utils (upstream) or policycoreutils (Fedora)
|semodule-utils (Upstream) oder policycoreutils (Fedora)
|-
|-
|secilc
|secilc
|compile a binary kernel policy from a Common Intermediate Language (CIL) policy module
|Kompilieren einer binären Kernel-Policy aus einem Common Intermediate Language (CIL)-Policy-Modul
|secilc
|secilc
|}
|}


== Development ==
== Entwicklung ==
Development tools are used when writing or debugging SELinux policy and are typically installed on development systems or end-systems during development and testing. Some tools are more focused on typical end-users while others are more focused on experienced kernel or policy developers. For example, audit2allow may be used by typical end users to create policies from audit messages, while sedispol would generally only be used by kernel or policy developers to inspect specific components of a kernel policy.
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"
!Tool name
!Werkzeugname
!Description
!Beschreibung
!Package
!Paket
|-
|-
|audit2allow
|audit2allow
|generate allow rules from SELinux AVC audit messages
|Erzeugt Zulassungsregeln aus SELinux-AVC-Audit-Meldungen
|selinux-python (upstream) or policycoreutils-python-utils (Fedora)
|selinux-python (Upstream) oder policycoreutils-python-utils (Fedora)
|-
|-
|audit2why
|audit2why
|diagnose the cause of SELinux AVC audit messages via policy analysis
|Diagnose der Ursache von SELinux-AVC-Audit-Meldungen mittels Richtlinienanalyse
|selinux-python (upstream) or policycoreutils-python-utils (Fedora)
|selinux-python (Upstream) oder policycoreutils-python-utils (Fedora)
|-
|-
|dismod
|dismod
|query various parts of a compiled policy module or policy package
|Abfrage verschiedener Teile eines kompilierten Richtlinienmoduls oder Richtlinienpakets
|checkpolicy (as sedismod in Fedora)
|checkpolicy (als sedismod in Fedora)
|-
|-
|dispol
|dispol
|query various parts of a compiled kernel policy
|Abfrage verschiedener Teile einer kompilierten Kernel-Richtlinie
|checkpolicy (as sedispol in Fedora)
|checkpolicy (als sedispol in Fedora)
|-
|-
|getconlist
|getconlist
|list all SELinux contexts reachable for the specified user from the current or specified context
|Auflistung aller SELinux-Kontexte, die für den angegebenen Benutzer vom aktuellen oder angegebenen Kontext aus erreichbar sind
|libselinux-utils (as selinuxconlist in Fedora)
|libselinux-utils (als selinuxconlist in Fedora)
|-
|-
|getdefaultcon
|getdefaultcon
|display the default SELinux context for the specified user from the specified context
|Anzeige des Standard-SELinux-Kontexts für den angegebenen Benutzer vom angegebenen Kontext aus
|libselinux-utils (as selinuxdefcon in Fedora)
|libselinux-utils (als selinuxdefcon in Fedora)
|-
|-
|getpolicyload
|getpolicyload
|display the maximum policy version supported by the kernel for loading
|Zeigt die maximale vom Kernel zum Laden unterstützte Richtlinienversion an
|libselinux-utils
|libselinux-utils
|-
|-
|matchpathcon
|matchpathcon
|query the active file_contexts file for how a particular path should be labeled
|Abfrage der aktiven Datei „file_contexts“, um zu ermitteln, wie ein bestimmter Pfad gekennzeichnet werden soll
|libselinux-utils
|libselinux-utils
|-
|-
|selabel_compare
|selabel_compare
|compare two label configuration files
|vergleicht zwei Label-Konfigurationsdateien
|libselinux-utils
|libselinux-utils
|-
|-
|selabel_digest
|selabel_digest
|compute digests for a label configuration
|berechnet Digests für eine Label-Konfiguration
|libselinux-utils
|libselinux-utils
|-
|-
|selabel_get_digests_all_partial_matches
|selabel_get_digests_all_partial_matches
|check directory digest xattr against digest from labeling configuration
|vergleicht das Verzeichnis-Digest-xattr mit dem Digest aus der Label-Konfiguration
|libselinux-utils
|libselinux-utils
|-
|-
|selabel_lookup
|selabel_lookup
|look up the label for a given key in a label configuration
|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
|look up the best matching context for a path with multiple links
|Nachschlagen des am besten passenden Kontexts für einen Pfad mit mehreren Verknüpfungen
|libselinux-utils
|libselinux-utils
|-
|-
|selabel_partial_match
|selabel_partial_match
|determine whether a partial match is possible for a path
|Feststellen, ob eine Teilübereinstimmung für einen Pfad möglich ist
|libselinux-utils
|libselinux-utils
|-
|-
|selinuxexeccon
|selinuxexeccon
|display the SELinux context that would be used for an executable from the current or specified context
|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 for policy generation
|GUI zur Erzeugung von Richtlinien
|selinux-gui (upstream) or policycoreutils-gui (Fedora)
|selinux-gui (Upstream) oder policycoreutils-gui (Fedora)
|-
|-
|selinux_check_access
|selinux_check_access
|check whether the specified permission is allowed
|prüft, ob die angegebene Berechtigung zulässig ist
|libselinux-utils
|libselinux-utils
|-
|-
|semodule_expand
|semodule_expand
|expand a base policy module into a kernel policy
|erweitert ein Basis-Policy-Modul zu einer Kernel-Policy
|semodule-utils (upstream) or policycoreutils (Fedora)
|semodule-utils (Upstream) oder policycoreutils (Fedora)
|-
|-
|semodule_link
|semodule_link
|link a list of policy modules together
|eine Liste von Richtlinienmodulen miteinander verknüpfen
|semodule-utils (upstream) or policycoreutils (Fedora)
|semodule-utils (Upstream) oder policycoreutils (Fedora)
|-
|-
|sepolgen
|sepolgen
|generate a policy module
|ein Richtlinienmodul generieren
|selinux-python (upstream) or policycoreutils-devel (Fedora)
|selinux-python (Upstream) oder policycoreutils-devel (Fedora)
|-
|-
|sepolgen-ifgen
|sepolgen-ifgen
|generate the interface file that audit2allow uses to match interfaces to rules when generating refpolicy style policy modules
|Erzeugt die Schnittstellendatei, die audit2allow verwendet, um Schnittstellen bei der Generierung von Policy-Modulen im refpolicy-Stil mit Regeln abzugleichen
|selinux-python (upstream) or policycoreutils-devel (Fedora)
|selinux-python (Upstream) oder policycoreutils-devel (Fedora)
|-
|-
|sepolicy
|sepolicy
|front-end for inspecting or generating policy
|Frontend zum Überprüfen oder Generieren von Policies
|selinux-python (upstream) or policycoreutils-devel (Fedora)
|selinux-python (Upstream) oder policycoreutils-devel (Fedora)
|-
|-
|validatetrans
|validatetrans
|validate a context transition against policy
|Überprüft einen Kontextwechsel auf Übereinstimmung mit der Richtlinie
|libselinux-utils
|libselinux-utils
|}
|}


== Relabeling ==
== Neulabelung ==
Relabeling tools are used to relabel files given different kinds of inputs. Some tools simply take a context while others query the active file_contexts file on the system. Some are able to look at the package data of the distribution they are using to get a list of files to be relabeled. Not included in this list is the init script or systemd unit file used on some systems to relabel a filesystem automatically at boot time when necessary.
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 name
!Tool-Name
!Description
!Beschreibung
!Package
!Paket
|-
|-
|chcon
|chcon
|change the context or part of a context on a file
|Ändert den Kontext oder einen Teil eines Kontexts einer Datei
|coreutils
|coreutils
|-
|-
|chcat
|chcat
|change the categories on a file, or the authorized categories for a user
|Ändert die Kategorien einer Datei oder die autorisierten Kategorien für einen Benutzer
|selinux-python (upstream) or policycoreutils-python-utils (Fedora)
|selinux-python (Upstream) oder policycoreutils-python-utils (Fedora)
|-
|-
|fixfiles
|fixfiles
|fix file labels based on active policy file_contexts files
|Korrigiert Dateikennzeichnungen basierend auf aktiven policy file_contexts-Dateien
|policycoreutils
|policycoreutils
|-
|-
|rlpkg
|rlpkg
|relabel files based on gentoo package (gentoo specific)
|Kennzeichnet Dateien neu basierend auf Gentoo-Paketen (Gentoo-spezifisch)
|gentoo
|gentoo
|-
|-
|restorecon
|restorecon
|restore files to the contexts specified by the file_contexts files
|Stellt Dateien in den durch die file_contexts-Dateien festgelegten Kontexten wieder her
|policycoreutils
|policycoreutils
|-
|-
|restorecond
|restorecond
|daemon that watches for new files to be created and labels them at runtime
|Daemon, der auf neu erstellte Dateien achtet und diese zur Laufzeit kennzeichnet
|restorecond (upstream) or policycoreutils-restorecond (Fedora)
|restorecond (Upstream) oder policycoreutils-restorecond (Fedora)
|-
|-
|setfiles
|setfiles
|relabel files based on file_contexts configuration or verify file_contexts validity against binary policy
|Dateien basierend auf der file_contexts-Konfiguration neu kennzeichnen oder die Gültigkeit von file_contexts anhand der Binärrichtlinie überprüfen
|policycoreutils
|policycoreutils
|}
|}


== Runtime ==
== Laufzeit ==
Runtime tools are used at runtime on end-systems to change or view the running behavior of SELinux. Some might not be installed on end-systems such as setroubleshootd (only needed if end users need notifications of and help with policy denials), system-config-selinux (only needed if a GUI is required to manage SELinux), and mctransd (only needed on systems requiring MCS/MLS human-readable label translation configurations). These three tools should be omitted from systems that do not require them.
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 name
!Tool-Name
!Description
!Beschreibung
!Package
!Paket
|-
|-
|avcstat
|avcstat
|give statistics about the in-kernel access vector cache, such as number of lookups, hits and misses
|liefert Statistiken zum Zugriffsvektor-Cache im Kernel, wie z. B. Anzahl der Suchvorgänge, Treffer und Fehltreffer
|libselinux-utils
|libselinux-utils
|-
|-
|genhomedircon
|genhomedircon
|generate user home directory file contexts based on template file contexts (HOMEDIR, HOMEROOT, etc)
|Erzeugt Dateikontexte für Benutzer-Home-Verzeichnisse basierend auf Vorlagen-Dateikontexten (HOMEDIR, HOMEROOT usw.)
|policycoreutils
|policycoreutils
|-
|-
|getenforce
|getenforce
|get the enforcing state of the kernel access vector cache
|Ruft den Durchsetzungsstatus des Kernel-Zugriffsvektor-Caches ab
|libselinux-utils
|libselinux-utils
|-
|-
|getsebool
|getsebool
|get the current state of an SELinux boolean in the SELinux security server
|Ruft den aktuellen Status eines SELinux-Booles im SELinux-Sicherheitsserver ab
|libselinux-utils
|libselinux-utils
|-
|-
|load_policy
|load_policy
|load the active kernel policy
|Lädt die aktive Kernel-Richtlinie
|policycoreutils
|policycoreutils
|-
|-
|mcstransd
|mcstransd
|daemon that provides translations for levels and categories
|Daemon, der Übersetzungen für Ebenen und Kategorien bereitstellt
|mcstrans
|mcstrans
|-
|-
|newrole
|newrole
|change your role, type or level, requires re-authentication, suitable for use by user domains
|Ändert Ihre Rolle, Ihren Typ oder Ihre Stufe; erfordert eine erneute Authentifizierung; geeignet für die Verwendung durch Benutzerdomänen
|policycoreutils
|policycoreutils
|-
|-
|runcon
|runcon
|run a command with a specified SELinux context, does not re-authenticate, suitable for use in scripts to run a service in a different domain
|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
|display the full context or its components for a specified object (file, process, key)
|Zeigt den vollständigen Kontext oder dessen Komponenten für ein angegebenes Objekt (Datei, Prozess, Schlüssel) an
|policycoreutils
|policycoreutils
|-
|-
|sefcontext_compile
|sefcontext_compile
|compile file contexts configurations to a binary version for faster lookup
|Kompiliert Dateikontxtkonfigurationen zu einer Binärversion für eine schnellere Suche
|libselinux-utils
|libselinux-utils
|-
|-
|selinuxenabled
|selinuxenabled
|Check whether SELinux is currently enabled
|Prüft, ob SELinux derzeit aktiviert ist
|libselinux-utils
|libselinux-utils
|-
|-
|semanage
|semanage
|manage several aspects of SELinux including port, interface and node labeling, persistent file context and boolean settings, authorized roles and levels for SELinux users, authorized SELinux users and levels for seusers (login or Linux users), MLS translations and permissive types
|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) or policycoreutils-python-utils (Fedora)
|selinux-python (Upstream) oder policycoreutils-python-utils (Fedora)
|-
|-
|semodule
|semodule
|insert, delete and list SELinux policy modules on the running system
|Einfügen, Löschen und Auflisten von SELinux-Richtlinienmodulen auf dem laufenden System
|policycoreutils
|policycoreutils
|-
|-
|sestatus
|sestatus
|get several pieces of information about the running state of SELinux including enabled status, enforcing/permissive, policy name and contexts of various important processes and files
|Abrufen verschiedener Informationen zum Laufzustand von SELinux, einschließlich Aktivierungsstatus, Enforcing/Permissive, Richtlinienname und Kontexte verschiedener wichtiger Prozesse und Dateien
|policycoreutils
|policycoreutils
|-
|-
|setenforce
|setenforce
|set the enforcing state of the kernel access vector cache
|den Enforcing-Status des Kernel-Access-Vector-Caches festlegen
|libselinux-utils
|libselinux-utils
|-
|-
|setroubleshoot
|setroubleshoot
|a daemon that watches for denials and offers suggestions on fixing them (has multiple frontends including a gnome tray interface)
|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
|set one or more SELinux booleans
|Setzt einen oder mehrere SELinux-Booleans
|policycoreutils
|policycoreutils
|-
|-
|system-config-selinux
|system-config-selinux
|GUI for managing SELinux
|GUI zur Verwaltung von SELinux
|selinux-gui (upstream) or policycoreutils-gui (Fedora)
|selinux-gui (Upstream) oder policycoreutils-gui (Fedora)
|}
|}
<noinclude>
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
=== Dokumentation ===
<!--
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
; Info-Pages
-->
=== Links ===
==== Projekt ====
==== Weblinks ====
<!--
{{DEFAULTSORT:new}}
{{DISPLAYTITLE:new}}
-->
[[Kategorie:Linux/SELinux/Tools]]
</noinclude>

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

Linux/SELinux/Tools

Beschreibung

setenforce / getenforce seinfo chcon restorecon semanage (fcontext / login / boolean ... ) setsebool / getsebool

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

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Werkzeuge

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)