SELinux steht für „Security-Enhanced Linux“ und ist eine Sicherheitserweiterung für das Linux-Betriebssystem. Es wurde entwickelt, um das Sicherheitsniveau von Linux-Systemen zu verbessern, indem es eine feingranulare Zugriffskontrolle und Mandatory Access Controls (MAC) implementiert.
Siehe auch APPArmor (Linux) oder AppLocker (Windows).
getenforce sestatus semanage permissive -a httpd_t setsebool -P httpd_can_network_connect 1 grep httpd_t /var/log/audit/audit.log | audit2allow -M my-httpd-policy chcon -Rt httpd_sys_content_t /home/manuel // Recursicve, only Type
Um Berechtigungen von SELinux anzuzeigen kann man den Parameter Z verwenden.
ls -lZ ps -auxZ
Im Gegensatz zu traditionellen Unix/Linux-Betriebssystemen, die auf einem DAC (Discretionary Access Control) basieren, bei dem der Eigentümer einer Datei oder Ressource die Zugriffsberechtigungen steuert, verwendet SELinux ein MAC-System. Dies bedeutet, dass Zugriffsentscheidungen nicht nur auf Basis von Benutzeridentitäten und Dateiberechtigungen getroffen werden, sondern auch auf Basis von Richtlinien, die von Administratoren festgelegt wurden.
SELinux verwendet Sicherheitsrichtlinien, die Regeln enthalten, um den Zugriff auf Dateien, Verzeichnisse, Prozesse und andere Systemressourcen zu steuern. Diese Richtlinien können granular konfiguriert werden, um den spezifischen Anforderungen eines Systems gerecht zu werden.
Obwohl SELinux eine leistungsstarke Sicherheitsfunktion ist, erfordert es oft eine gewisse Einarbeitung, um es effektiv zu konfigurieren und zu verwalten. In einigen Fällen kann es zu Konflikten mit Anwendungen kommen, die nicht ordnungsgemäß für die Verwendung mit SELinux konfiguriert wurden. Dennoch wird SELinux in vielen sicherheitskritischen Umgebungen eingesetzt, um die Integrität und Vertraulichkeit von Systemen zu verbessern.