Zum Inhalt springen

Linux/SELinux/04 Arbeiten mit SELinux

Aus Foxwiki

Arbeiten mit SELinux

Beschreibung

Die folgenden Abschnitte bieten einen Überblick über

  • die wichtigsten SELinux-Pakete in Red Hat Enterprise Linux
  • die Installation und Aktualisierung von Paketen
  • die verwendeten Protokolldateien
  • die wichtigste SELinux-Konfigurationsdatei
  • das Aktivieren und Deaktivieren von SELinux
  • SELinux-Modi
  • das Konfigurieren von Booleschen Werten
  • das vorübergehende und dauerhafte Ändern von Datei- und Verzeichnis-Labels
  • das Überschreiben von Dateisystem-Labels mit dem Befehl mount
  • das Einbinden von NFS-Volumes
  • sowie das Beibehalten von SELinux-Kontexten beim Kopieren und Archivieren von Dateien und Verzeichnissen

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 install ‚‘<package-name>‚‘]] installiert werden

  • 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

Unter Red Hat Enterprise Linux sind die Pakete dbus und audit standardmäßig installiert, sofern sie nicht aus der Standard-Paketauswahl entfernt wurden

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
  1. 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
  1. 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

SELinux/DOC/04 Arbeiten mit SELinux/Hauptkonfigurationsdatei

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