SELinux (Security Enhanced Linux) ist ein Zusatz für den Kernel, um damit stärkere Zugriffskontrollen auf bestimmte Ressourcen zu definieren. Für Kernel24 gibt es einen Patch, in Kernel26 ist SELinux direkt integriert.

Homepage: http://www.nsa.gov/selinux/           this link is down

Lizenz: GPL

Wozu ist SELinux gut

In einem herkömmlichen System gibt es sehr viele verschiedene Programme, die alle mit root-Rechten laufen müssen, um ihre Arbeit erledigen zu können, aber keine vollständigen Root-Rechte haben sollten (Wozu soll etwa der Apache Zugriff auf die Dateien des Mailspools haben?). SELinux basiert auf dem TE-Prinzip (Type Enforcement): alle Ressourcen werden bestimmten Domains zugeordnet, und darauf werden Zugriffsregeln definiert. Am einfachsten lässt sich das anhand von Dateien erklären.

Labels und Typen

Alle Dateien werden gelabelt, also einem bestimmter Domain zugeordnet (die Bezeichnungen "Domain" und "Typ" werden oftmals synonym gebraucht, in der offiziellen Dokumentation werden diese Begriffe erst gross erklärt, um dann danach anzumerken, dass beide Bezeichnungen eigentlich identisch seien und man deshalb im Allgemeinen "Typ" verwenden würde). Diese Zuordnungen werden in den erweiterten Attributen des Dateisystems gespeichert, deshalb läuft SELinux nur auf Systemen, deren DateiSysteme ErweiterteDateiAttribute unterstützen; derzeit machen das Ext2/3 und XFS. JFS und ReiserFS unterstützen diese geforderte Art der erweiterten Attribute (security attributes) allerdings noch nicht (Für ReiserFS gibt es experimentelle Patches).

Damit können beispielsweise alle Dateien, die zum Apache gehören, dem Typ "apache_t" zugeordnet werden. Das Apache-Binary wird ebenfalls in diese Domain gesteckt. Wenn der Rest des Systems richtig aufgesetzt ist, dann kann der Apache nur noch auf die Daten zugreifen, die in seiner Domain liegen; jeglicher Zugriff auf Dateien, die innerhalb anderer Domains liegen (also zum Beispiel "postfix_t"), wird vom Kernel unterbunden.

Natürlich können die Domains beliebig detailliert und verfeinert werden, allerdings steigt damit natürlich der Aufwand, die Policy (also grob die Zuordnung "Dateien - Domain" und die Regeln für die Zugriffe über Domaingrenzen hinweg) zu pflegen, leicht ins Unermessliche.

Distributionen

Fedora Linux hat seit dem Release FC2 SElinux-Unterstützung eingebaut (aber per Default abgeschaltet, da zuviele User damit Probleme hatten). Seit Fedora Core 3 ist SELinux in der Standardinstallation aktiviert. Die Unterstützung für SELinux wurde auch in Red Hat Enterprise Linux 4 übernommen. Auch für Debian werden immer wieder Patches ins Policy-Repository eingespielt, ein Einsatz damit dürfte aber erheblich schwieriger sein als mit Fedora. Gentoo bietet im Rahmen des Hardend Gentoo auch Unterstützung für selinux an. OffeneFrage: Der Status von Mandriva und SuSE bezüglich SElinux ist unbekannt (auch wenn SuSE 9.1 verschiedenen Anzeichen zufolge schon Support in den Paketen eingebaut hat). SuSE 11.1 unterstützt laut c't vom 5. Jänner 2009 SELinux.

Links

SELinux (zuletzt geändert am 2011-02-04 20:56:30 durch brln-4dbaa8eb)