SELinux aktivieren und verstehen: Setup für mehr Sicherheit

SELinux (Security-Enhanced Linux) ist ein Mandatory Access Control (MAC)-System, das Linux-Servern eine zusätzliche Sicherheitsebene bietet. Im Gegensatz zu klassischen Discretionary Access Controls (DAC) erzwingt SELinux Richtlinien, die den Zugriff auf Dateien, Prozesse und Netzwerkressourcen strikt regeln. Ein korrekt konfigurierter SELinux-Modus schützt vor Fehlkonfigurationen, Malware und unautorisierten Zugriffen und ist insbesondere in Unternehmens- und Telco-Umgebungen essenziell.

Grundlagen von SELinux

SELinux basiert auf drei zentralen Komponenten: Policies, Contexts und Modes. Policies definieren die Regeln, welche Aktionen erlaubt oder verboten sind. Jeder Prozess und jede Datei besitzt einen Security Context, der aus Benutzer, Rolle und Typ besteht. Der Modus bestimmt, wie SELinux diese Regeln durchsetzt.

  • Type Enforcement (TE): Hauptmechanismus zur Zugriffskontrolle auf Dateien und Prozesse
  • Role-Based Access Control (RBAC): Zuweisung von Rollen an Benutzer, um deren Rechte einzuschränken
  • Multi-Level Security (MLS): Optionale Klassifizierung von Daten mit Sensitivitätsstufen

SELinux-Modi

SELinux kann in drei Modi betrieben werden:

  • Enforcing: SELinux-Regeln werden strikt durchgesetzt. Nicht erlaubte Aktionen werden blockiert.
  • Permissive: SELinux protokolliert Verstöße, blockiert sie jedoch nicht. Ideal für Test und Debugging.
  • Disabled: SELinux ist komplett deaktiviert. Keine Zugriffskontrolle erfolgt.

Prüfen des SELinux-Status

Vor der Aktivierung sollte der aktuelle Status geprüft werden, um sicherzustellen, dass Policies und Tools korrekt installiert sind.

# SELinux-Status prüfen
sestatus

Alternativ

getenforce

SELinux aktivieren

Auf den meisten Enterprise-Linux-Distributionen ist SELinux bereits installiert. Die Aktivierung erfolgt über die Konfigurationsdatei /etc/selinux/config:

sudo nano /etc/selinux/config

Konfiguration

SELINUX=enforcing
SELINUXTYPE=targeted

Speichern und Neustart

sudo reboot

Die Option SELINUXTYPE=targeted aktiviert die Standard-Policy, die kritische Dienste wie SSH, HTTP und Datenbanken absichert.

SELinux-Kontexte verstehen

Jede Datei und jeder Prozess besitzt einen Security Context. Typische Kontextkomponenten:

  • user: SELinux-Benutzer (z. B. system_u, unconfined_u)
  • role: Rolle des Prozesses (z. B. system_r, object_r)
  • type: Typ, der den Zugriff definiert (z. B. sshd_t, httpd_sys_content_t)

Kontext eines Prozesses oder einer Datei anzeigen:

# Datei-Kontext
ls -Z /etc/ssh/sshd_config

Prozess-Kontext

ps -eZ | grep sshd

Typische SELinux-Policies

Die wichtigsten Policies im Serverbetrieb umfassen:

  • targeted: Standardpolicy, schützt kritische Dienste
  • mls: Mandatory Multi-Level Security, geeignet für hochsensible Daten
  • minimum: Minimalinstallation, wenige Regeln

Die Auswahl richtet sich nach Sicherheitsanforderungen und Komplexität der Umgebung.

Fehleranalyse und Troubleshooting

Fehler oder Zugriffsprobleme werden in /var/log/audit/audit.log protokolliert. Tools zum Debuggen:

# Audit Logs analysieren
ausearch -m avc -ts today

Verstöße zusammenfassen

sealert -a /var/log/audit/audit.log

Bei notwendigen Ausnahmen können Booleans aktiviert werden:

# HTTPD darf Netzwerkzugriff erhalten
sudo setsebool -P httpd_can_network_connect 1

Best Practices für SELinux

  • Im Enforcing-Modus betreiben, sobald die Umgebung getestet wurde
  • Regelmäßig Audit-Logs prüfen und bei Fehlkonfigurationen Booleans anpassen
  • Nur notwendige Ausnahmen definieren, um die Angriffsfläche minimal zu halten
  • Policies versionieren und dokumentieren
  • Neue Dienste zunächst im Permissive-Modus testen

Fazit

SELinux bietet eine robuste Sicherheitsarchitektur für Linux-Server, die über klassische Benutzerrechte hinausgeht. Durch das Verständnis von Modi, Policies und Kontexten lässt sich ein sicherer Betrieb gewährleisten, Fehlkonfigurationen vermeiden und die Angriffsfläche reduzieren. Ein systematisches Vorgehen – prüfen, aktivieren, testen, Auditieren – sorgt dafür, dass SELinux effektiv schützt, ohne den Serverbetrieb zu beeinträchtigen.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles