Debian 8.0 Jessie bietet keine SELinux-Policy

7. Mai 2015 | Von | Kategorie: Admin | SELinux | AppArmor | StickyBit

Wir betreiben eine ganze Reihe Debian Server. Diese werden nun von Wheezy auf Jessie schrittweise aktualisiert. Einige dieser Systeme, die besonders exponiert im Internet stehen, verwenden SELinux zum Schutz des Systems. SELinux kann häufig bei einer Schwachstelle deren Ausnutzen durch einen Angreifer verhindern. Die Schwachstelle bleibt zwar weiterhin in dem Produkt enthalten, jedoch kann der Angreifer nur die Funktionen ausnutzen, die ihm durch die Policy gestattet werden. Er kann daher meist nicht weitere Netzverbindungen öffnen oder Befehle aufrufen.

Nach dem Update auf Jessie auf dem ersten derartigen System traten reihenweise SELinux-Fehlermeldungen auf. Im ersten Moment dachte ich, dass das Relabeling beim Reboot entsprechend der neuen Policy nicht geklappt hat. Also habe ich die Datei /.autorelabel manuell angelegt und das System gebootet. Verdächtig war hier schon, wie schnell das System gebootet hat. Der Aufruf von check-selinux-installation hat anschließend die folgende Ausgabe erzeugt:


../proc/1    system_u:system_r:kernel_t:SystemLow..
The init process (PID 1) is running in an incorrect domain.
There were 33 processes found running in the kernel domain.
Postfix init script is syncing the chroots.
Postfix has chrooted service in master.cf
FSCKFIX is not enabled - not serious, but could prevent system from booting...

Irgendetwas stimmt nicht. Ich habe manuell den Typ von /sbin/init geprüft:


# ls -lZ /sbin/init
lrwxrwxrwx. 1 root root system_u:object_r:bin_t:SystemLow 20 Apr 16 17:53 /sbin/init -> /lib/systemd/systemd
# ls -lZ /lib/systemd/systemd
-rwxr-xr-x. 1 root root system_u:object_r:lib_t:SystemLow 1309072 Apr 16 17:53 /lib/systemd/systemd
# restorecon /lib/systemd/systemd
ls -lZ /lib/systemd/systemd
-rwxr-xr-x. 1 root root system_u:object_r:lib_t:SystemLow 1309072 Apr 16 17:53 /lib/systemd/systemd

Der Typ lib_t für den Systemd ist definitiv falsch. Also einmal die Policy manuell entfernt und neu installiert. Debian baut ja die Policy bei der Installation passend aus den Modulen zusammen. Vielleicht fehlt hier durch das Update auf den Systemd ein wesentliches Modul?


# apt-get remove selinux-policy-default
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
selinux-policy-default
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert.
Nach dieser Operation werden 51,5 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]
(Lese Datenbank ... 42301 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von selinux-policy-default (2:2.20110726-12) ...
# apt-get install selinux-policy-default
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Package selinux-policy-default is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source

Es gibt keine Policy in Debian Jessie? Und ja, tatsächlich: Fehler in dem Selinux-Policy-Default Paket haben dazu geführt, dass das Peket in  Debian Jessie aus dem Release gefallen ist: https://tracker.debian.org/pkg/refpolicy

Also, was bleibt?

  1. Mit dem Update warten, bis ein entsprechendes Paket zur Verfügung steht.
  2. Auf AppArmor als Mandatory Access Control System wechseln. Für uns halb so schlimm, da wir auch einige Ubuntu Systeme haben, die AppArmor sowieso einsetzen.
  3. Auf CentOS wechseln, wo wieder SELinux zur Verfügung steht.
  4. Auf Mandatory Access Control verzichten. Inakzeptabel!

Post to Twitter Post to Yahoo Buzz Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit

Tags: | | |

Schreibe einen Kommentar

Fühle dich ermuntert einen Kommentar, Anmerkungen, Hinweise oder deine Ideen zum Thema zu hinterlassen. Wir freuen uns über deine Rückmeldung.