From Fedora Project Wiki

< De DE‎ | SELinux

SELinux/Fehlersuche

  • Tipps beim Analysieren von AVC Messages
  • Entscheidungsbaum AVC Messages
  • SELinux hat drei Modus:
  • Enforcing (Durchsetzen)
  • Das sollte der Standardmodus sein
  • Der Kernel blockiert alle Zugriffe, die nicht explizit erlaubt sind. Die unterbundenen Zugriffe werden im Logsystem AVC (Access Vector Cache) protokolliert, sofern der Schreiber der Policy dies nicht explizit mittels dontaudit verboten hat.
  • Permissive (Erlauben)
  • Der Kernel protokolliert die Zugriffsverletzungen lediglich, erlaubt sie aber.
  • Der Kernel erstellt auch weiterhin ordentlich gekennzeichnete Dateien.
  • Es gibt einige wesentliche Unterschiede in der Art und Weise, wie der Kernel die AVC-Nachrichten protokolliert.

1. Der Kernel protokolliert im permissive mode nur die erste Zugriffsverletzung für eine eingesperrte Domäne auf ein einzelnes Objekt, während im enforcing mode jeder einzelne unterbundene Zugriff gemeldet wird. 1. Man erhält viele zusätzliche AVC-Meldungen, die im enforcing mode niemals aufgetreten wären. Wenn beispielsweise eine eingesperrte Domäne keine Berechtigung für ein Verzeichnis und alle Dateien darin besitzt, wird im permissive mode für jeden Zugriff auf Verzeichnis und Dateien eine Nachricht erstelle, während im enforcing mode nur der erste Zugriff auf das Verzeichnis verboten und gemeldet wird.

  • Beim Melden von AVC-Meldungen bevorzugen wir die vom 'Messages we would prefer that you report avc messages in enforcing mode. Allerdings ist manchmal der permissive mode notwendig, um alle AVC-Meldungen zu erhalten. Sie können den Kernel mittels des Schalters enforcing=0 im permissive mode starten.
  • Sie können setenforce 0 verwenden, um den permissive mode einzuschalten. setenforce 1 schaltet ihn wieder aus.
  • Disabled (Deaktiviert)
  • Schaltet die SELinux-Umsetzung komplett ab und beendet das Erstellen geeigneter Kennzeichen für die Dateien.
  • Sie sollten SELinux nur deaktivieren, wenn Sie es nicht einsetzen wollen. Zum Diagnostizieren von Problemen sollten Sie den permissive mode nutzen.
  • Wenn Sie SELinux deaktivieren wollen, müssen Sie in /etc/selinux/config die Zeile SELINUX auf disabled ändern. Danach müssen Sie den Rechner neu starten, da SELinux im Kernel läuft.
  • Wenn Sie danach SELinux wieder aktivieren wollen, müssen Sie die Kennzeichen vom gesamten Dateisystem neu erstellen. Lesen Sie dazu Dateikontexte verwalten
  • cp vs. mv
  • Das Kommando cp erstellt eine neue Datei mit dem Kontext einer evtl. bestehenden Datei oder, wenn nicht, mit dem des Zielverzeichnisses.
  • Das Kommando mv versucht, den Sicherheitskontext der Datei zu erhalten.
  • Das kann im Dateikontext zu Problemen führen. Sie führen beispielsweise in der targeted policy cp /etc/resolv.conf /tmp aus und editieren danach /tmp/resolv.conf. Danach verschieben Sie die resolv.conf mittels mv /tmp/resolv.conf /etc zurück nach /etc. Die Datei hat am Schluss den Sicherheitskontext tmp_t statt net_conf_t. Viele Domänen werden nicht mehr in der Lage sein, auf diese Datei zuzugreifen, was in Fehlern resultiert. Dies können Sie leicht mittels restorecon /etc/resolv.conf reparieren.
  • AVC-Meldungen
  • Manchmal sind die Informationen im auditlog zum einfachen Verständnis zu TOUGH. Meistens starte ich audit2allow drüberlaufen, um die Ausgabe zu reinigen.
  • Audit-Daemon
  • In Fedora Core 5/Rawhide hat das Auditsystem einige der AVC-Meldungen nach /var/log/audit/audit.log verlegt. Dennoch erscheinen ein paar AVC-Meldungen weiterhin in /var/log/messages. Normalerweise zeigen diese, dass der Audit-Daemon nicht läuft.
  • Sie können ausearch -m avc ausführen, um die AVC-Meldungen im Auditlog anzuzeigen. Es gibt weitere nützliche Optionen wie -x, um eine ausführbare Datei zu spezifizieren. Mit der Option -ts können Sie den Zeitpunkt festlegen, ab dem die Nachrichten ausgegeben werden sollen.
  • AVC-Meldungen fehlen

SELinux auditiert manche Meldungen nicht. Es gibt dontaudit-Regel in den Policies. Üblicherweise sind dies erwartete Verbote und veranlassen die Anwendung nur, einen anderen Kodeteil auszuführen. Allerdings verbergen diese Regeln manchmal auch Fehler. Prior to reference policy you were required to install selinux-policy-targeted-sources and then execute make -C /etc/selinux/targeted/src/policy enableaudit reload. Wenn Sie mit den Audit-Meldungen fertig sind, sollten Sie make -C /etc/selinux/targeted/src/policy reload ausführen. Mit der reference policy müssen Sie das base policy package durch das enableaudit policy package ersetzen: semodule -b /usr/share/selinux/targeted/enableaudit.pp. Nachdem Sie Ihre Prüfungen abgeschlossen haben, führen Sie noch semodule -b /usr/share/selinux/targeted/base.pp aus.