Ja, SELinux macht Red Hat (und jede andere Linux-Distribution, die es tatsächlich verwendet) sicherer, vorausgesetzt, es wird tatsächlich verwendet.
SELinux implementiert die obligatorische Zugriffskontrolle . Normale Unix-Berechtigungen, ACLs usw. implementieren eine diskretionäre Zugriffssteuerung . Die beiden ergänzen sich.
Um zu funktionieren, benötigt SELinux eine Richtlinie, die definiert, welche Aktionen auf dem System zulässig sind. Während es möglich ist, eine gesamte Systemrichtlinie von Grund auf neu zu erstellen, liefern die meisten Linux-Distributionen eine Richtlinie aus, die auf der sogenannten Referenzrichtlinie basiert . Dies bedeutet unter anderem, dass die Konfiguration von SELinux über Distributionen hinweg sehr ähnlich ist. (Die meisten Linux-Distributionen stellen die SELinux-Referenzrichtlinie in ihren Paket-Repositorys zur Verfügung, obwohl sie möglicherweise nicht standardmäßig installiert ist.)
SELinux beschränkt Benutzer und Prozesse so, dass nur die Aktionen ausgeführt werden, die ihnen in der Richtlinie gestattet sind. Standardmäßig wird die Richtlinie abgelehnt. Wenn die Richtlinie eine Aktion nicht explizit zulässt, geschieht dies nicht. Aus diesem Grund haben Sie so oft Probleme damit, dass SELinux etwas verbietet, was Sie versuchen zu tun.
Auf der positiven Seite verhindert dies auch, dass Exploits, selbst 0-Tage-Exploits, außer Kontrolle geraten. Wenn beispielsweise Ihr Webserver (Apache) ausgenutzt wird, ist der Schaden nur auf die Dinge beschränkt, auf die Apache zugreifen kann. Sie kann Ihre /etc/shadow
Datei beispielsweise selbst mit einem Remote-Root-Exploit nicht lesen . Während die Unix-Berechtigungen (DAC) das Lesen der Datei durch root ermöglichen, erlaubt SELinux (MAC) dem kompromittierten Prozess nicht, die Grenzen zu überschreiten.
Das große Problem ist, dass für den Dienst ein SELinux-Richtlinienmodul geladen sein muss. Wenn Sie einen Dienst auf Ihrer Box installieren, der kein SELinux-Richtlinienmodul enthält, wird er uneingeschränkt ausgeführt und kann tun, was er will. SELinux wird nicht darauf angewendet.
Eine andere Sache, die Sie wissen sollten, ist alles über Boolesche Werte . Diese einstellbaren Parameter werden von SELinux-Richtlinien bereitgestellt, um sie für bestimmte Installationen anzupassen und den Zugriff basierend auf den lokalen Konfigurationsanforderungen zuzulassen oder zu verweigern. Sie können Apache beispielsweise Zugriff auf Samba-Freigaben gewähren, Samba die Freigabe von Benutzer-Home-Verzeichnissen ermöglichen und viele andere potenziell nützliche Dinge, die für einige Setups erforderlich sind, für andere jedoch nicht.
Die beste Anleitung zu SELinux, die ich derzeit gesehen habe, ist Red Hats Security-Enhanced Linux User Guide . Es wird Ihnen helfen, schnell einsatzbereit zu sein und die Hintergrunddetails der Vorgänge einzugeben. Es enthält auch eine umfassende Anleitung zur Fehlerbehebung , mit der Sie Ihren Prozess unter SELinux zum Laufen bringen können.
Ist es nützlich?
SELinux schützt vor Prozessen (und Benutzern, wenn Sie Ihre Benutzer eingeschränkt haben), die unerwartete Dinge tun. Der Schaden, den ein Remote-Exploit anrichten kann, wird stark eingeschränkt. Wenn Sie noch nie einen Remote-Kompromiss eingegangen sind, haben Sie (1) Glück und (2) wahrscheinlich Neuheiten. Wenn Sie haben einen Remote - Kompromiss gearbeitet, wollen Sie sicher nicht , es nie wieder passieren.
Es ist in einer häuslichen Umgebung nicht so nützlich , es sei denn, Sie führen zu Hause Internetdienste aus (und einige Leute tun dies auch). In diesem Fall gilt alles oben Gesagte.
SELinux ist möglicherweise das Letzte, was zwischen Ihren Daten und einem Angreifer mit einem 0-Tage-Exploit steht, der es wirklich will. Wenn Sie es verwenden können, warum würden Sie nicht?