Zum Inhalt springen

Linux/SELinux/11 Fehlerbehebung: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 62: Zeile 62:
== Lösungen ==
== Lösungen ==
[[Linux/SELinux/11 Fehlerbehebung/Lösungen]]
[[Linux/SELinux/11 Fehlerbehebung/Lösungen]]
== Eigene Policy-Module mit audit2allow ==
;Prinzip
Wenn Standardlösungen (wie Booleans oder Dateikontexte) nicht ausreichen, analysiert ''audit2allow'' die Audit-Protokolle und generiert automatisch Regeln, um zuvor blockierte Aktionen systemweit zuzulassen.
; Installation
Unter Debian ist das Tool Teil der Python-Utilities für SELinux:
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo apt install policycoreutils-python-utils
</syntaxhighlight>
; Analyse
Prüfen Sie zunächst die menschenlesbare Erklärung der Blockaden, um die Ursache zu verstehen:
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo audit2allow -w -a
</syntaxhighlight>
; Modul generieren
Filtern Sie die Logs gezielt nach dem betroffenen Dienst (z. B. ''nginx''), um keine unerwünschten Rechte freizugeben, und erstellen Sie das Modul:
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo grep mein_prozess /var/log/audit/audit.log | audit2allow -M mein_modul
</syntaxhighlight>
Dies erzeugt eine Quellcode-Datei (''.te'') und das kompilierte Policy-Paket (''.pp'')
; Modul aktivieren
Laden Sie das kompilierte Paket abschließend in den Kernel:
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo semodule -i mein_modul.pp
</syntaxhighlight>
; Initiale Einrichtung
Nach einer frischen SELinux-Installation und der Deinstallation von AppArmor wird das System oft mit unklaren AVC-Meldungen geflutet. Um das System initial wieder nutzbar zu machen, können Sie alle bisherigen Blockaden pauschal erfassen:
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo grep "AVC" /var/log/audit/audit.log | audit2allow -M my_custom_policy
</syntaxhighlight>
Laden Sie auch dieses Modul anschließend mit
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo semodule -i my_custom_policy.pp
</syntaxhighlight>
;Hinweis
Diese "Holzhammer-Methode" eignet sich nur für die allererste Stabilisierung des Systems. Im späteren Betrieb sollten Sie Ausnahmen immer strikt nach Diensten getrennt erstellen.





Version vom 29. März 2026, 19:15 Uhr

SELinux/11 Fehlerbehebung

Beschreibung

  • Vorgänge, bei einer Zugriffsverweigerung
  • Häufige Ursachen für Probleme
  • Informationen zur korrekten Kennzeichnung finden
  • Analyse von SELinux-Verweigerungen
  • Erstellen benutzerdefinierter Policy-Module
Vorgänge, bei einer Zugriffsverweigerung

SELinux-Entscheidungen, wie das Zulassen oder Verweigern von Zugriff, werden zwischengespeichert

  • Dieser Cache wird als Access Vector Cache (AVC) bezeichnet
  • Wenn SELinux den Zugriff verweigert, werden Verweigerungsmeldungen protokolliert
  • Diese Verweigerungen werden auch als „AVC-Verweigerungen“ bezeichnet
Protokolle

... und je nach den laufenden Daemons an unterschiedlichen Orten protokolliert:

Daemon Protokollort
auditd aktiv /var/log/audit/audit.log
auditd aus; rsyslogd ein /var/log/messages
setroubleshootd, rsyslogd und auditd ein /var/log/audit/audit.log
  • Besser lesbare Verweigerungsmeldungen werden ebenfalls an /var/log/messages gesendet

Wenn Sie das X Window System ausführen, die Pakete setroubleshoot und setroubleshoot-server installiert haben und die Daemons setroubleshootd und [[auditd] laufen, wird eine Warnung angezeigt, wenn der Zugriff von SELinux verweigert wird:

Datei:Bild1.png

Ein Klick auf Anzeigen zeigt eine detaillierte Analyse der Gründe für die Zugriffsverweigerung durch SELinux sowie eine mögliche Lösung zur Gewährung des Zugriffs an

  • Wenn Sie das X Window System nicht verwenden, ist es weniger offensichtlich, wenn der Zugriff durch SELinux verweigert wird

Beispielsweise können Benutzer, die Ihre Website besuchen, eine Fehlermeldung ähnlich der folgenden erhalten:

Zugriff verweigert

Sie haben keine Berechtigung, auf ‚'Dateiname‘' auf diesem Server zuzugreifen

In solchen Situationen sollten Sie, sofern DAC-Regeln (Standard-Linux-Berechtigungen) den Zugriff erlauben, die Dateien

  • /var/log/messages
  • /var/log/audit/audit.log

auf Fehlermeldungen wie

  • „SELinux is preventing“
  • „denied“

überprüfen

Dies können Sie tun, indem Sie als Root-Benutzer die folgenden Befehle ausführen:

sudo grep „SELinux is preventing“ /var/log/messages
sudo grep „denied“ /var/log/audit/audit.log

Analyse

Linux/SELinux/11 Fehlerbehebung/Analyse

Lösungen

Linux/SELinux/11 Fehlerbehebung/Lösungen



Anhang

Siehe auch



  1. Dateien in /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
  2. Der Befehl semanage port -a fügt einen Eintrag zur Datei /etc/selinux/targeted/modules/active/ports.local hinzu
    • Beachten Sie, dass diese Datei standardmäßig nur von root eingesehen werden kann

Dokumentation

Man-Page
  1. ausearch(8)
  2. aureport(8)
  3. sealert(8)
  4. audit2allow(1)

Projekt