Macht SELinux Redhat sicherer?


10

Macht SELinux Redhat sicherer?

Ich kann mich nicht erinnern, wie oft ich SELinux deaktiviert habe, weil es meine Fähigkeit, Dinge zum Laufen zu bringen, immer wieder frustriert hat. Viele Male gab es keinen offensichtlichen Grund, warum Sachen nicht funktionierten und ich musste Google, um herauszufinden, warum.

Ist SELinux angesichts der Tatsache, dass die meisten Gelegenheitsbenutzer die Sicherheit deaktivieren oder schwächen, wenn sie im Weg zu stehen scheint, unter Ausschluss seriöser, unternehmerischer Redhat-Benutzer, wirklich nützlich?

PS. Gibt es ein Tool, mit dem Sie SELinux-Probleme in allen Anwendungen protokollieren, verfolgen und verwalten können?

Antworten:


9

Ja, Selinux macht das System sicherer. Sie müssen jedoch die Konzepte verstehen und mindestens Grundkenntnisse über Selinux- und Audit-Tools haben.

Selinux protokolliert in /var/log/audit/audit.log (stellen Sie jedoch sicher, dass auditd ausgeführt wird), und es gibt eine Reihe von Tools zur Lösung von Selinux-Problemen. Der wahrscheinlich einfachste Weg ist die Verwendung von audit2allow


17

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/shadowDatei 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?


3

Ich denke, SELinux erweitert nur das traditionelle Berechtigungssystem, indem es erweiterte Einstellungen gegenüber Berechtigungen einführt. Macht es Ihr System sicherer? Ich denke, es hängt davon ab, wie Sie SELinux in Ihren Anwendungen verwenden. Ich bin auch nicht gut in SELinux, aber die Konfiguration erfordert mehr Wissen darüber, welche Einschränkungen es Ihnen bieten kann. Es bringt jedoch auch viele Probleme mit sich, die Sie manuell untersuchen müssen, um sie zu überwinden


1
SELinux erweitert nicht nur die herkömmlichen POSIX-Berechtigungen. SELinux kann beispielsweise den Zugriff auf bestimmte Netzwerkports beschränken.
wzzrd

3

Es gibt ein Paket mit dem Namen setroubleshoot, mit dem Benutzer Probleme finden können, die durch SELinux verursacht wurden. Installieren Sie es und stellen Sie es so ein, dass es beim Start ausgeführt wird. Wenn Sie dann eine SELinux-Ablehnung erhalten, wird dies in vermerkt /var/log/messages. Wenn Sie ebenfalls in der GUI angemeldet sind, erhalten Sie eine Benachrichtigung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.