21.1. Einf�hrung in SELinux
SELinux bietet ein flexibles Mandatory Access Control (MAC) System (regelbasierte Zugriffskontrolle), welches im Linux Kernel eingebaut ist. Unter Standard-Linux Discretionary Access Control (DAC - objektbezogene Zugriffskontrolle), besitzt eine Applikation oder auch ein Prozess, als Benutzer ausgef�hrt (UID oder SUID), die Benutzer-Berechtigungen zu Objekten wie Dateien, Sockets oder anderen Prozessen. Ein SELinux MAC Kernel sch�tzt das System vor b�swilligen oder fehlerhaften Applikationen, die das System besch�digen oder zerst�ren k�nnten. SELinux legt die Zugriffsrechte und Transitionsrechte jeden Benutzers, jeder Applikation, jeden Prozesses und jeder Datei auf dem System fest. SELinux regelt somit Subjekte (Prozesse) und Objekte (zB. Dateien, Verzeichnisse, Sockets, IPCs, etc.), die eine Security Policy verwenden, wodurch festlegt wird, wie strikt oder nachsichtig eine gegebene Installation von Red Hat Enterprise Linux sein sollte.
Gr��tenteils ist SELinux beinahe v�llig unsichtbar f�r den Systembenutzer. Nur Systemadministratiorn m�ssen sich dar�ber den Kopf zerbrechen wie strikt eine Policy f�r deren Server-Umgebung implementiert werden muss. Die Policy kann so strikt oder auch nachsichtig sein, wie in jedem Fall notwendig und ist generell eine sehr feink�rnig einstellbare Zugriffssteuerung. Dieser Umstand gibt dem SELinux-Kernel g�nzliche und feink�rnige Kontrolle �ber das gesamte System.
Wenn ein Subjekt, wie zB. eine Applikation versucht auf ein Objekt wie zB. eine Datei zuzugreifen, so �berpr�ft der Policy Enforcement Server im Kernel einen Access Vector Cache (AVC), wo Subjekt- und Objekt-Berechtigungen gecacht sind. Wenn keine Entscheidung basierend auf den Daten im AVC getroffen werden kann, so geht die Anfrage an den Sicherheitsserver weiter, welcher den Security Context der Applikation and der Datei in einer Matrix nachschl�gt. Die Zugangserlaubnis wird sodann gew�hrt oder verweigert mit einer detaillierten avc: denied-Mitteillung in /var/log/messages. Subjekte und Objekte erhalten deren Security Context von der installierten Security Policy, welche ebenso die Information enth�lt, welche zur Einstellung der Matrix des Sicherheitsservers ben�tigt wird.
Zus�tzlich zum Enforcing Mode (Regelsatz erlaubt und verweigert Zugriffe), kann SELinux auch in einem Permissive Mode ablaufen, wobei alle Zugriffe unabh�ngig vom Regelsatz von SELinux gew�hrt werden und alle Verst��e protokolliert werden.
F�r weitere Informationen zur Arbeitsweise von SELinux siehe Abschnitt 21.3.