Linux/SELinux/04/02 Protokolldateien: Unterschied zwischen den Versionen
K Dirkwagner verschob die Seite Linux/SELinux/DOC/04/02 Protokolldateien nach Linux/SELinux/04/02 Protokolldateien: Textersetzung - „Linux/SELinux/DOC/0“ durch „Linux/SELinux/0“ |
K Textersetzung - „ z. B.“ durch „ beispielsweise“ |
||
| (8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{Navigation|Linux/SELinux/04 Arbeiten mit SELinux|Linux/SELinux/04/03 Hauptkonfigurationsdatei}} | |||
'''Linux/SELinux/04/02 Protokolldateien''' - Fehlermeldungen finden | |||
=== Welche Protokolldatei wird verwendet === | === 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. | |||
{| class="wikitable options big" | |||
! Quelle | |||
! Inhalt | |||
! Zweck | |||
|- | |||
| ''/var/log/audit/audit.log'' | |||
| rohe Audit- und AVC-Meldungen | |||
| erste Quelle für Analyse und Korrelation | |||
|- | |||
| Systemjournal | |||
| interpretierte Meldungen, beispielsweise 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: | |||
<syntaxhighlight lang="text" copy line highlight=""> | |||
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 | |||
</syntaxhighlight> | |||
Die wichtigsten Bestandteile: | |||
{| class="wikitable options big" | |||
! 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'': | |||
<syntaxhighlight lang="bash" copy line highlight=""> | |||
ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent | |||
ausearch -m AVC -i -ts recent | |||
</syntaxhighlight> | |||
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: | |||
<syntaxhighlight lang="bash" copy line highlight="1"> | |||
sealert -l <ID> | |||
</syntaxhighlight> | |||
Interpretierte Meldungen von ''setroubleshoot'' lassen sich im Systemjournal anzeigen: | |||
<syntaxhighlight lang="bash" copy line highlight="1"> | |||
journalctl -t setroubleshoot | |||
</syntaxhighlight> | |||
=== 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: | |||
<syntaxhighlight lang="bash" copy line highlight=""> | |||
systemctl status auditd.service | |||
dmesg | grep -i -e type=1300 -e type=1400 | |||
</syntaxhighlight> | |||
Für eine dauerhafte Protokollierung kann ''auditd'' aktiviert werden: | |||
<syntaxhighlight lang="bash" copy line highlight=""> | |||
systemctl enable --now auditd.service | |||
systemctl is-enabled auditd.service | |||
</syntaxhighlight> | |||
Werden Ablehnungen durch ''dontaudit''-Regeln unterdrückt, lässt sich die Protokollierung kurzfristig erweitern: | |||
<syntaxhighlight lang="bash" copy line highlight=""> | |||
# | semodule -DB | ||
# blockierten Zugriff erneut ausführen | |||
ausearch -m AVC -i -ts recent | |||
semodule -B | |||
</syntaxhighlight> | |||
== Weblinks == | |||
Red Hat Documentation: | |||
* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_selinux/troubleshooting-problems-related-to-selinux_using-selinux | |||
* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-working_with_selinux-which_log_file_is_used | |||
* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-fixing_problems-sealert_messages | |||
Debian Manpages: | |||
* https://manpages.debian.org/testing/auditd/auditd.8.en.html | |||
{{Navigation|Linux/SELinux/04 Arbeiten mit SELinux|Linux/SELinux/04/03 Hauptkonfigurationsdatei}} | |||
[[Kategorie:Linux/SELinux | [[Kategorie:Linux/SELinux/04]] | ||
Aktuelle Version vom 16. Juni 2026, 09:28 Uhr
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, beispielsweise 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
Weblinks
Red Hat Documentation:
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_selinux/troubleshooting-problems-related-to-selinux_using-selinux
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-working_with_selinux-which_log_file_is_used
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-fixing_problems-sealert_messages
Debian Manpages: