SELinux steht für „Security-Enhanced Linux“. “. Standard-Linux-Sicherheit basiert auf Discretionary Access Control (DAC). Mit DAC basiert der Zugriff auf Dateien und Geräte ausschließlich auf der Benutzeridentität und dem Besitz. Jede Datei kann Lese-, Schreib- und Ausführungsberechtigungen für den Eigentümer der Datei, für die Gruppe und für andere Benutzer haben.
SELinux wurde von der US-amerikanischen National Security Agency entwickelt, um eine feinkörnigere Kontrolle über Dateien, Prozesse, Benutzer und Anwendungen im System zu ermöglichen. Es ist eine Erweiterung des Linux-Kernels und implementiert eine andere Art von Sicherheit namens Mandatory Access Control (MAC). Die MAC-Richtlinie wird zentral und nicht vom Benutzer verwaltet.
SELinux läuft in einem von drei Modi:
- Durchsetzen :Benutzern und Programmen wird der Zugriff verweigert, es sei denn, die Regeln der SELinux-Sicherheitsrichtlinie erlauben dies.
- Zulässig :Die Regeln der Sicherheitsrichtlinie werden nicht erzwungen, aber SELinux sendet Ablehnungsmeldungen an eine Protokolldatei.
- Deaktiviert :SELinux erzwingt keine Sicherheitsrichtlinie, da keine Richtlinie im Kernel geladen ist. Für die Zugriffskontrolle werden nur DAC-Regeln verwendet.
Den SELinux-Modus anzeigen
Sie können den Sestatus verwenden Befehl, um den SELinux-Modus sowie einige zusätzliche Informationen über SELinux anzuzeigen.
# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
Sie können die getenforce verwenden Befehl, um den SELinux-Modus anzuzeigen. Dieser Befehl zeigt den aktuellen Modus an:„Enforcing “, „Zulässig „“, oder „Deaktiviert „.“ Zum Beispiel:
# getenforce Enforcing
Ändern des SELinux-Modus
Meistens sehen Sie Leute, die den Modus „erzwingen“ in „permissiv“ ändern, um ein Problem im Zusammenhang mit Datei-/Prozessberechtigungen zu lösen. Dies ist nicht die beste Vorgehensweise, aber eine der am weitesten verbreiteten und schnellsten Methoden, um das Problem unter Linux zu lösen. Sie können den Befehl setenforce verwenden, um den Modus entweder auf „Erzwingen (1)“ zu ändern “ oder „Zulässig (0) “. Zum Beispiel:
# setenforce 0 # getenforce Permissive
Boolesche Werte
SELinux bietet auch „Booleans “, wodurch Teile einer SELinux-Richtlinie zur Laufzeit geändert werden können, ohne dass eine SELinux-Richtlinie neu geladen oder neu kompiliert werden muss. Sie können eine Liste von booleschen Werten, Zustandsinformationen und eine Beschreibung des booleschen Werts anzeigen, indem Sie den folgenden Befehl ausführen:
# semanage boolean -l SELinux boolean State Default Description privoxy_connect_any (on , on) Allow privoxy to connect any smartmon_3ware (off , off) Allow smartmon to 3ware mpd_enable_homedirs (off , off) Allow mpd to enable homedirs xdm_sysadm_login (off , off) Allow xdm to sysadm login ....
Sie können den Status eines bestimmten booleschen Werts mithilfe von setsebool entweder ein- oder ausschalten Befehl. Um beispielsweise den booleschen Wert ftp_home_dir einzuschalten:
# setsebool ftpd_use_nfs on
Verwenden Sie das getsebool Befehl, um den Status eines bestimmten booleschen Werts anzuzeigen. Beispiel:
# getsebool ftpd_use_nfs ftpd_use_nfs --> on