Nützliches zu SELinux

Viele Linux-Distributionen – unter anderem auch CentOS – verwendet SELinux, um eine höchstmögliche Sicherheit zu gewährleisten.
Dieses eigentlich sehr positive Vorgehen kann aber auch dazu führen, dass Konfigurationen deutlich komplizierter sind.

Ein Beispiel, über das ich erst heute wieder gestoßen bin, ist die Konfiguration eines Verzeichnisses, das sowohl im Webserver eingebunden werden soll, aber auch über Samba erreichbar sein soll.
Hier reicht es nicht mehr aus, den SELinux-Context einer Datei auf bspw. „samba_share_t“ zu setzen, da dann der Apache-Webserver damit nichts mehr anfangen kann.
Man kann den SELinux-Context aber auf „public_content_rw_t“ setzen und dann ein paar SELinux-Flags verwenden:
Möglich ist also beispielsweise folgendes:

chcon -R -t public_content_rw_t /var/www
setsebool -P allow_smbd_anon_write 1
setsebool -P allow_httpd_anon_write 1

Weiter nützliche SELinux-Kommandos sind:

  • ls -lahZ

    (zeigt den SELinux-Kontext aller Dateien im aktuellen Verzeichnis an)

  • setenforce 0/1

    ((de)aktiviert SELinux… ist besonders dann nützlich, wenn man herausfinden will, ob ein Problem von SELinux verursacht wird)

  • getsetbool -a

    (listet alle SELinux-Flags und ihren momentanen Status auf – mit einem grep wird die Ausgabe auch verwendbar)

  • chcon -t samba_share_t

    (ändert den SELinux-Kontext einer Datei/eines Verzeichnisses – in diesem Fall auf den Typ „samba_share_t“)

  • restorecon /var/www

    (setzt den SELinux-Kontext einer Datei/eines Verzeichnisses zurück)

  • semanage fcontext -a -t public_content_rw_t '/var/html(/.*)?'

    (wie chcon – ist aber permanent und wirkt deshalb auch nach einem Neustart des Systems bzw. nach restorecon)

  • cat /var/log/audit/audit.log | grep audit2allow -M fix_http

    (behebt alle SELinux-Probleme mit Hilfe der Log-Datei zum SELinux-Modul „http“ – die entstandene Datei muss dann noch mit „semodule -i“ eingespielt werden)

Schreibe einen Kommentar