Zum Inhalt springen

Linux/SELinux/04 Arbeiten mit SELinux: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „wikitable“ durch „table table-striped table-hover“
 
(46 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Arbeiten mit SELinux'''  
{{Navigation|Linux/SELinux/03 Default Policy/Benutzer|Linux/SELinux/04/02 Protokolldateien}}
'''Linux/SELinux/04 Arbeiten mit SELinux''' - Arbeiten mit SELinux


=== Beschreibung ===
== Beschreibung ==
Die folgenden Abschnitte bieten einen Überblick über
{| class="table table-striped table-hover options big col1center"
* die wichtigsten SELinux-Pakete in Red Hat Enterprise Linux
! Nummer !! Kapitel !! Beschreibung
* die Installation und Aktualisierung von Paketen
|-
* die verwendeten Protokolldateien
| 04/02
* die wichtigste SELinux-Konfigurationsdatei
| [[Linux/SELinux/04/02 Protokolldateien|Protokolldateien]]
* das Aktivieren und Deaktivieren von SELinux
| Welche Protokolldatei wird verwendet
* SELinux-Modi
|-
* das Konfigurieren von Booleschen Werten
| 04/03
* das vorübergehende und dauerhafte Ändern von Datei- und Verzeichnis-Labels
| [[Linux/SELinux/04/03 Hauptkonfigurationsdatei|Hauptkonfigurationsdatei]]
* das Überschreiben von Dateisystem-Labels mit dem Befehl [[mount]]
| Hauptkonfigurationsdatei
* das Einbinden von NFS-Volumes
|-
* sowie das Beibehalten von SELinux-Kontexten beim Kopieren und Archivieren von Dateien und Verzeichnissen
| 04/04
| [[Linux/SELinux/04/04 Dauerhafte Änderungen|Dauerhafte Änderungen]]
| Dauerhafte Änderungen an SELinux-Zuständen und -Modi
|-
| 04/05
| [[Linux/SELinux/04/05 Systemstart|Systemstart]]
| Ändern der SELinux-Modi beim Systemstart
|-
| 04/06
| [[Linux/SELinux/04/06 Booleane|Booleane]]
| Booleane
|-
| 04/07
| [[Linux/SELinux/04/07 Kontexte|SELinux-Kontexte]]
| SELinux-Kontexte – Dateien kennzeichnen
|-
| 04/08
| [[Linux/SELinux/04/08 Typen|Typen]]
| Typen file_t und default_t
|-
| 04/09
| [[Linux/SELinux/04/09 Dateisysteme|Dateisysteme]]
| Einbinden von Dateisystemen
|-
| 04/10
| [[Linux/SELinux/04/10 Labels beibehalten|Labels beibehalten]]
| SELinux-Labels beibehalten
|-
| 04/11
| [[Linux/SELinux/04/11 Informationsbeschaffung|Informationsbeschaffung]]
| Tools zur Informationsbeschaffung
|-
| 04/12
| [[Linux/SELinux/04/12 Richtlinienmodule|Richtlinienmodule]]
| Priorisierung und Deaktivierung von SELinux-Richtlinienmodulen
|-
| 04/13
| [[Linux/SELinux/04/13 Multi-Level Security|Multi-Level Security]]
| Multi-Level Security (MLS)
|-
| 04/14
| [[Linux/SELinux/04/14 Dateinamenübergang|Dateinamenübergang]]
| Dateinamenübergang
|-
| 04/15
| [[Linux/SELinux/04/15 ptrace|ptrace()]]
| Deaktivieren von ptrace()
|-
| 04/16
| [[Linux/SELinux/04/16 Miniaturansichten|Miniaturansichten]]
| Schutz von Miniaturansichten
|}


=== SELinux-Pakete ===
----
Bei einer vollständigen Installation von Red Hat Enterprise Linux werden die SELinux-Pakete standardmäßig installiert, sofern sie nicht während der Installation manuell ausgeschlossen werden
* Bei einer Minimalinstallation im Textmodus werden die Pakete policycoreutils-python und policycoreutils-gui standardmäßig nicht installiert
* Außerdem läuft SELinux standardmäßig SELinux im Enforcing-Modus und die SELinux-Targeted-Policy wird verwendet
* Die folgenden SELinux-Pakete sind standardmäßig auf Ihrem System installiert
* policycoreutils stellt Dienstprogramme wie [[restorecon]], [[secon]], [[setfiles]], [[semodule]], [[load_policy]] und [[setsebool]] für den Betrieb und die Verwaltung von SELinux bereit
* selinux-policy stellt eine grundlegende Verzeichnisstruktur, die Datei [[selinux-policy.conf]] und RPM-Makros bereit
* selinux-policy -targeted stellt die SELinux-Targeted-Richtlinie bereit
* libselinux – stellt eine API für SELinux-Anwendungen bereit
* libselinux-utils stellt die Dienstprogramme [[avcstat]], [[getenforce]], [[getsebool]], [[matchpathcon]], [[selinuxconlist]], [[selinuxdefcon]], [[selinuxenabled]] und [[setenforce]] bereit
* libselinux-python stellt Python-Bindungen für die Entwicklung von SELinux-Anwendungen bereit


Die folgenden Pakete sind standardmäßig nicht installiert, können aber optional durch Ausführen des Befehls [[yum&nbsp;install&nbsp;‚‘<package-name>‚‘]] installiert werden
{{Navigation|Linux/SELinux/03 Default Policy/Benutzer|Linux/SELinux/04/02 Protokolldateien}}
* selinux-policy-devel stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen bereit
* selinux-policy-doc enthält Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
* selinux-policy-mls enthält die MLS-SELinux-Richtlinie (Multi-Level Security)
* setroubleshoot-server übersetzt Ablehnungsmeldungen, die bei einer Zugriffsverweigerung durch SELinux ausgegeben werden, in detaillierte Beschreibungen, die mit dem ebenfalls in diesem Paket enthaltenen Dienstprogramm [[sealert]] angezeigt werden können
* setools-console stellt die Tresys Technology SETools-Distribution bereit, eine Reihe von Dienstprogrammen und Bibliotheken zur Analyse und Abfrage von Richtlinien, zur Überwachung und Berichterstellung von Audit-Protokollen sowie zur Verwaltung von Dateikontexten
* Das Paket setools ist ein Metapaket für SETools
* Das Paket setools-gui stellt die Dienstprogramme [[apol]] und [[seaudit]] bereit
* Das Paket setools-console stellt die Befehlszeilen-Dienstprogramme [[sechecker]], [[sediff]], [[seinfo]], [[sesearch]] und [[findcon]] bereit
* Beachten Sie, dass die Pakete setools und setools-gui nur verfügbar sind, wenn der Red Hat Network Optional-Kanal aktiviert ist
* Weitere Informationen finden Sie unter Details zum Abdeckungsumfang
* mcstrans übersetzt Stufen wie [[s0-s0:c0.c1023]] in eine besser lesbare Form wie [[SystemLow-SystemHigh]]
* policycoreutils-python bietet Dienstprogramme wie [[semanage]], [[audit2allow]], [[audit2why]] und [[chcat]] zum Bedienen und Verwalten von SELinux
* policycoreutils-gui stellt [[system-config-selinux]] bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux


=== Welche Protokolldatei wird verwendet ===
[[Kategorie:Linux/SELinux]]
Unter Red Hat Enterprise Linux sind die Pakete dbus und audit standardmäßig installiert, sofern sie nicht aus der Standard-Paketauswahl entfernt wurden
[[Kategorie:Linux/SELinux/04]]
* Der Setroubleshoot-Server muss über Yum installiert werden (verwenden Sie den Befehl [[yum&nbsp;install&nbsp;setroubleshoot-server]])
 
Wenn der [[auditd]]-Daemon läuft, wird standardmäßig eine SELinux-Ablehnungsmeldung wie die folgende in [[/var/log/audit/audit.log]] geschrieben
type=AVC msg=audit (1223024155.684:49)
avc
denied { getattr } for pid=2000 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=399185 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:samba_share_t:s0 tclass=file
 
Außerdem wird eine Meldung ähnlich der folgenden in die Datei [[/var/log/message]] geschrieben
7. Mai 18:55:56 localhost setroubleshoot
SELinux verhindert, dass httpd (httpd_t) „getattr“ auf /var/www/html/file1 (samba_share_t) ausführt
* Für vollständige SELinux-Meldungen
führen Sie sealert -l de7e30d6-5488-466d-a606-92c9f40d316d aus
 
In Red Hat Enterprise Linux 7 läuft [[setroubleshootd]] nicht mehr ständig als Dienst
* Es wird jedoch weiterhin zur Analyse der AVC-Meldungen verwendet
* Zwei neue Programme dienen dazu, [[setroubleshoot]] bei Bedarf zu starten
* Das Dienstprogramm [[sedispatch]] läuft als Teil des [[audit]]-Subsystems
* Wenn eine AVC-Ablehnungsmeldung zurückgegeben wird, sendet [[sedispatch]] eine Nachricht über [[dbus]]
* Diese Nachrichten gehen direkt an [[setroubleshootd]], sofern dieses bereits läuft
* Läuft es nicht, startet [[sedispatch]] es automatisch
* Das Dienstprogramm [[seapplet]] läuft in der System-Symbolleiste und wartet auf DBus-Meldungen von [[setroubleshootd]]
* Es öffnet die Benachrichtigungsblase, in der der Benutzer die AVC-Meldungen einsehen kann
 
; Daemons automatisch starten
# Um die Daemons [[auditd]] und [ [rsyslog]]-Daemons so zu konfigurieren, dass sie beim Booten automatisch starten, geben Sie als Root-Benutzer die folgenden Befehle ein
sudo systemctl enable auditd.service
sudo systemctl enable rsyslog.service
# Um sicherzustellen, dass die Daemons aktiviert sind, geben Sie an der Shell-Eingabeaufforderung die folgenden Befehle ein
systemctl is-enabled auditd
enabled
systemctl is-enabled rsyslog
enabled
Alternativ können Sie den Befehl [[systemctl status ‚'service-name‘'.service]] verwenden und in der Befehlsausgabe nach dem Schlüsselwort [[enabled]] suchen, zum Beispiel
systemctl status auditd.service | grep enabled
auditd.service – Sicherheitsüberwachungsdienst
Geladen
geladen (/usr/lib/systemd/system/auditd.service; ‚'enabled‘')
 
Weitere Informationen darüber, wie der [[systemd]]-Daemon Systemdienste verwaltet, finden Sie im Kapitel „Verwaltung von Systemdiensten“ im Systemadministratorhandbuch
 
=== Hauptkonfigurationsdatei ===
Die Datei [[/etc/selinux/config]] ist die Hauptkonfigurationsdatei von SELinux
* Sie steuert, ob SELinux aktiviert oder deaktiviert ist und welcher SELinux-Modus sowie welche SELinux-Richtlinie verwendet wird
# Diese Datei steuert den Status von SELinux auf dem System
# SELINUX= kann einen dieser drei Werte annehmen
# enforcing – Die SELinux-Sicherheitsrichtlinie wird durchgesetzt
# permissive – SELinux gibt Warnungen aus, anstatt die Richtlinie durchzusetzen
# disabled – Es wird keine SELinux-Richtlinie geladen
SELINUX=enforcing
# SELINUXTYPE= kann einen dieser beiden Werte annehmen
# targeted – Zielgerichtete Prozesse werden geschützt,
# mls – Multi-Level-Security-Schutz
SELINUXTYPE=targeted
 
; <nowiki>[[SELINUX=]]</nowiki>
 
Die Option <nowiki>[[SELINUX]]</nowiki> legt fest, ob SELinux deaktiviert oder aktiviert ist und in welchem Modus – enforcing oder permissive – es läuft
* Bei Verwendung von [[SELINUX=enforcing]] wird die SELinux-Richtlinie durchgesetzt, und SELinux verweigert den Zugriff auf Grundlage der SELinux-Richtlinienregeln
* Verweigerungsmeldungen werden protokolliert
* Bei Verwendung von [[SELINUX=permissive]] wird die SELinux-Richtlinie nicht durchgesetzt
* SELinux verweigert keinen Zugriff, aber Verweigerungen werden für Aktionen protokolliert, die verweigert worden wären, wenn SELinux im Durchsetzungsmodus laufen würde
* Bei Verwendung von [[SELINUX=disabled]] ist SELinux deaktiviert, das SELinux-Modul ist nicht beim Linux-Kernel registriert und es werden nur DAC-Regeln verwendet
 
; <nowiki>[[SELINUXTYPE=]]</nowiki>
Die Option [[SELINUXTYPE]] legt die zu verwendende SELinux-Richtlinie fest
* Die Targeted-Richtlinie ist die Standardrichtlinie
* Ändern Sie diese Option nur, wenn Sie die MLS-Richtlinie verwenden möchten
* Informationen zum Aktivieren der MLS-Richtlinie finden Sie im Abschnitt „[[Aktivieren von MLS in SELinux]]“
 
=== Dauerhafte Änderungen an SELinux-Zuständen und -Modi ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Dauerhafte Änderungen an SELinux-Zuständen und -Modi]]
 
=== Ändern der SELinux-Modi beim Systemstart ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Ändern der SELinux-Modi beim Systemstart]]
 
=== Booleane ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Booleane]]
 
=== SELinux-Kontexte – Dateien kennzeichnen ===
[[SELinux/DOC/04 Arbeiten mit SELinux/SELinux-Kontexte – Dateien kennzeichnen]]
 
=== Die Typen file_t und default_t ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Die Typen file t und default t]]
 
=== Einbinden von Dateisystemen ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Einbinden von Dateisystemen]]
 
=== SELinux-Labels beibehalten ===
[[SELinux/DOC/04 Arbeiten mit SELinux/SELinux-Labels beibehalten]]
 
=== Tools zur Informationsbeschaffung ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Tools zur Informationsbeschaffung]]
 
=== Priorisierung und Deaktivierung von SELinux-Richtlinienmodulen ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Priorisierung und Deaktivierung von SELinux-Richtlinienmodulen]]
 
=== Multi-Level Security (MLS) ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Multi-Level Security (MLS)]]
 
=== Dateinamenübergang ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Dateinamenübergang]]
 
=== Deaktivieren von ptrace() ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Deaktivieren von ptrace()]]
 
=== Schutz von Miniaturansichten ===
[[SELinux/DOC/04 Arbeiten mit SELinux/Schutz von Miniaturansichten]]
 
== Fußnoten ==
* [3] Um vorübergehend zum Standardverhalten zurückzukehren, führen Sie als Linux-Root-Benutzer den Befehl [[setsebool httpd_can_network_connect_db off]] aus
** Für Änderungen, die über Neustarts hinweg bestehen bleiben, führen Sie den Befehl [[setsebool -P httpd_can_network_connect_db off]]
* [4] Dateien im Verzeichnis [[/etc/selinux/targeted/contexts/files/]] definieren Kontexte für Dateien und Verzeichnisse
* Dateien in diesem Verzeichnis werden von den Dienstprogrammen [[restorecon]] und [[setfiles]] gelesen, um Dateien und Verzeichnisse in ihre Standardkontexte zurückzusetzen
* [5] Morris, James. „Filesystem Labeling in SELinux“ http://www.linuxjournal.com/article/7426
* [6] Weitere Informationen zu [[matchpathcon]] finden Sie auf der Handbuchseite matchpathcon(8)
 
[[Kategorie:SELinux/DOC]]

Aktuelle Version vom 29. Juli 2026, 11:01 Uhr

Linux/SELinux/04 Arbeiten mit SELinux - Arbeiten mit SELinux

Beschreibung

Nummer Kapitel Beschreibung
04/02 Protokolldateien Welche Protokolldatei wird verwendet
04/03 Hauptkonfigurationsdatei Hauptkonfigurationsdatei
04/04 Dauerhafte Änderungen Dauerhafte Änderungen an SELinux-Zuständen und -Modi
04/05 Systemstart Ändern der SELinux-Modi beim Systemstart
04/06 Booleane Booleane
04/07 SELinux-Kontexte SELinux-Kontexte – Dateien kennzeichnen
04/08 Typen Typen file_t und default_t
04/09 Dateisysteme Einbinden von Dateisystemen
04/10 Labels beibehalten SELinux-Labels beibehalten
04/11 Informationsbeschaffung Tools zur Informationsbeschaffung
04/12 Richtlinienmodule Priorisierung und Deaktivierung von SELinux-Richtlinienmodulen
04/13 Multi-Level Security Multi-Level Security (MLS)
04/14 Dateinamenübergang Dateinamenübergang
04/15 ptrace() Deaktivieren von ptrace()
04/16 Miniaturansichten Schutz von Miniaturansichten