Zum Inhalt springen

Linux/SELinux/04/02 Protokolldateien

Aus Foxwiki
Version vom 31. März 2026, 12:00 Uhr von Dirkwagner (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Linux/SELinux/04/02 Protokolldateien - Fehlermeldungen finden

Welche Protokolldatei wird verwendet

SELinux-Ablehnungen werden primär über das Linux-Audit-Subsystem protokolliert. Wenn der auditd-Daemon läuft, werden rohe AVC-Meldungen standardmäßig in /var/log/audit/audit.log geschrieben. Für die Analyse ist diese Datei die wichtigste Quelle.

Zusätzlich können interpretierte Hinweise im Systemprotokoll erscheinen, zum Beispiel über setroubleshoot. Diese Meldungen erleichtern die Einordnung, ersetzen aber nicht die rohe AVC-Meldung.

Quelle Inhalt Zweck
/var/log/audit/audit.log rohe Audit- und AVC-Meldungen erste Quelle für Analyse und Korrelation
Systemjournal interpretierte Meldungen, z. B. von setroubleshoot schnelle Einordnung und Verweis auf sealert
  • SELinux prüft Zugriffe erst nach den klassischen Dateirechten. Wird ein Zugriff bereits dort verweigert, entsteht keine SELinux-Ablehnung.

Beispiel einer AVC-Meldung

Eine AVC-Meldung kann beispielsweise wie folgt aussehen:

type=AVC msg=audit(1710000000.123:321): avc: denied { getattr } for pid=1234 comm="httpd" path="/var/www/html/file1" scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:samba_share_t:s0 tclass=file

Die wichtigsten Bestandteile:

Feld Bedeutung
{ getattr } verweigerte Operation
comm="httpd" aufgerufener Prozess
path="/var/www/html/file1" betroffenes Zielobjekt
scontext=...:httpd_t:s0 SELinux-Kontext des Prozesses
tcontext=...:samba_share_t:s0 SELinux-Kontext des Zielobjekts
tclass=file Objektklasse

Vollständige SELinux-Meldungen

Für die gezielte Auswertung der Audit-Einträge eignet sich ausearch:

ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
ausearch -m AVC -i -ts recent

Ist setroubleshoot installiert, können zusätzliche Hinweise mit sealert angezeigt werden. Enthält eine Meldung eine lokale ID, lässt sie sich direkt auflösen:

sealert -l <ID>

Interpretierte Meldungen von setroubleshoot lassen sich im Systemjournal anzeigen:

journalctl -t setroubleshoot

Wenn keine Meldungen erscheinen

Erscheinen keine AVC-Meldungen, sollten zuerst die üblichen Fehlerquellen geprüft werden:

  • Läuft auditd nicht, werden keine rohen Audit-Einträge in /var/log/audit/audit.log geschrieben.
  • Ohne Treffer in ausearch sollte der blockierte Zugriff erneut ausgeführt und danach erneut gesucht werden.
  • Ist auditd nicht aktiv, können einzelne SELinux-Meldungen noch im Kernel-Puffer sichtbar sein.

Praktische Prüfung:

systemctl status auditd.service
dmesg | grep -i -e type=1300 -e type=1400

Für eine dauerhafte Protokollierung kann auditd aktiviert werden:

systemctl enable --now auditd.service
systemctl is-enabled auditd.service

Werden Ablehnungen durch dontaudit-Regeln unterdrückt, lässt sich die Protokollierung kurzfristig erweitern:

semodule -DB
# blockierten Zugriff erneut ausführen
ausearch -m AVC -i -ts recent
semodule -B

Red Hat Documentation:

Debian Manpages: