linux security sysctl pam selinux apparmor fstab

Linux-Kernel- und Sicherheitskonfiguration: sysctl, PAM und Zugriffskontrolle

Ein umfassender Leitfaden zur Härtung des Linux-Kernels und zur Sicherheitskonfiguration unter Verwendung von sysctl, PAM, SELinux, AppArmor und sicherer fstab-Mounting.

2026-04-18

Linux-Kernel- und Sicherheitskonfiguration: sysctl, PAM und Zugriffskontrolle

Die Absicherung eines Linux-Systems erfordert einen mehrschichtigen Ansatz, der beim Kernel beginnt und über das Authentifizierungssystem bis hin zu Zugriffskontrollen und dem Einhängen von Datenträgern reicht. Dieser Leitfaden bietet eine detaillierte Referenz für die kritischsten Sicherheitskonfigurationskomponenten in einer modernen Linux-Umgebung.

1. Kernel-Parameter mit sysctl

Der Befehl sysctl und die Datei /etc/sysctl.conf (zusammen mit Dateien in /etc/sysctl.d/) sind die primären Werkzeuge zur Konfiguration von Linux-Kernel-Parametern zur Laufzeit. Viele dieser Parameter haben erhebliche Sicherheitsauswirkungen.

Verwendung eines sysctl-Konfigurationsgenerators

Während Sie Konfigurationsdateien manuell bearbeiten können, kann ein sysctl-Konfigurationsgenerator (sysctl config generator) dazu beitragen, dass Sie kritische Härtungseinstellungen nicht übersehen. Zu den gängigen zu konfigurierenden Parametern gehören:

  • Netzwerkhärtung: Deaktivieren der IP-Weiterleitung (net.ipv4.ip_forward = 0), Ignorieren von ICMP-Redirects (net.ipv4.conf.all.accept_redirects = 0) und Aktivieren des TCP-SYN-Cookie-Schutzes (net.ipv4.tcp_syncookies = 1).
  • Speicherschutz: Aktivieren von ASLR (Address Space Layout Randomization) über kernel.randomize_va_space = 2.
  • Einschränkung des Informationsabflusses: Einschränkung des Zugriffs auf Kernel-Logs (kernel.dmesg_restrict = 1) und die Kernel-Symboltabelle (kernel.kptr_restrict = 2).

Referenztabelle für Linux-Kernel-Parameter

Parameter Empfohlener Wert Beschreibung
net.ipv4.tcp_syncookies 1 Schützt vor SYN-Flood-Angriffen.
net.ipv4.conf.all.rp_filter 1 Aktiviert die Reverse-Path-Filterung, um IP-Spoofing zu verhindern.
kernel.randomize_va_space 2 Vollständiges ASLR zur Verhinderung von Buffer-Overflow-Exploits.
fs.protected_fifos 2 Verhindert unbefugtes Schreiben in FIFOs in weltweit beschreibbaren Verzeichnissen.

2. Pluggable Authentication Modules (PAM)

PAM bietet eine flexible Möglichkeit, die Authentifizierung für verschiedene Dienste zu verwalten, ohne die Dienste selbst zu ändern. Die korrekte Konfiguration von PAM ist entscheidend für die Durchsetzung strenger Passwortrichtlinien und Multi-Faktor-Authentifizierung.

Überlegungen zum PAM-Konfigurationsgenerator

Ein PAM-Konfigurationsgenerator (PAM config generator) konzentriert sich in der Regel auf die Dateien in /etc/pam.d/. Wichtige Module, die aus Sicherheitsgründen enthalten sein sollten, sind:

  • pam_cracklib.so / pam_pwquality.so: Erzwingt Anforderungen an die Passwortkomplexität (Länge, Zeichentypen).
  • pam_tally2.so / pam_faillock.so: Sperrt Konten nach einer bestimmten Anzahl fehlgeschlagener Anmeldeversuche, um Brute-Force-Angriffe zu verhindern.
  • pam_unix.so: Das Standardmodul zur Überprüfung von Passworten gegen /etc/shadow.

Beispielkonfiguration für die Passwortqualität:

password requisite pam_pwquality.so retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

3. Mandatory Access Control: SELinux und AppArmor

Im Gegensatz zur Standard-Discretionary Access Control (DAC), die auf Benutzern und Gruppen basiert, ermöglicht die Mandatory Access Control (MAC) Administratoren die Definition feinkörniger Sicherheitsrichtlinien für jeden Prozess und jede Datei auf dem System.

SELinux-Richtliniengenerator vs. AppArmor-Profilgenerator

  • SELinux (Security-Enhanced Linux): Verwendet ein Labeling-System für jedes Objekt (Prozess, Datei, Port). Es ist leistungsstark, hat aber eine steile Lernkurve. Ein SELinux-Richtliniengenerator (SELinux policy generator) (wie audit2allow) wird oft benötigt, um komplexe Ablehnungen zu handhaben.
  • AppArmor: Verwendet pfadbasierte Profile. Es gilt allgemein als einfacher zu konfigurieren als SELinux. Ein AppArmor-Profilgenerator (AppArmor profile generator) (wie aa-genprof) kann helfen, Profile zu erstellen, indem er das Anwendungsverhalten überwacht.

Vergleich: SELinux vs. AppArmor

Merkmal SELinux AppArmor
Kontrolltyp Label-basiert Pfad-basiert
Komplexität Hoch Mittel
Standard in RHEL, CentOS, Fedora Ubuntu, Debian, openSUSE
Flexibilität Extrem hoch Hoch
Lernkurve Steil Moderat

4. Sicheres Einhängen von Speichern mit /etc/fstab

Die Datei /etc/fstab definiert, wie Speichergeräte eingehängt werden. Die Verwendung der richtigen Mount-Optionen kann viele Arten von Angriffen verhindern, wie z. B. das Ausführen bösartischer Binärdateien aus temporären Verzeichnissen.

Sicherheitsflags für den /etc/fstab-Generator

Wenn Sie einen /etc/fstab-Generator (/etc/fstab generator) verwenden, stellen Sie sicher, dass Sie diese Sicherheitsflags für Nicht-Systempartitionen (wie /tmp, /var oder externe Laufwerke) einschließen:

  • nodev: Verhindert die Interpretation von Block- oder Zeichengeräten auf dem Dateisystem.
  • nosuid: Deaktiviert die Set-User-Identifier- oder Set-Group-Identifier-Bits.
  • noexec: Verhindert die Ausführung von Binärdateien auf dem Dateisystem.

Beispiel für einen sicheren Eintrag für /tmp:

UUID=... /tmp tmpfs rw,nosuid,nodev,noexec 0 0

FAQ: Linux-Sicherheitskonfiguration

F: Sollte ich SELinux oder AppArmor verwenden?

A: Es hängt in der Regel von Ihrer Distribution ab. Verwenden Sie das, was nativ unterstützt und standardmäßig aktiviert ist (SELinux für RHEL-basierte, AppArmor für Debian-basierte), da diese über die umfassendsten vorkonfigurierten Richtlinien verfügen.

F: Warum ist net.ipv4.ip_forward standardmäßig deaktiviert?

A: Die Aktivierung der IP-Weiterleitung ermöglicht es Ihrem System, als Router zu fungieren, was ein Sicherheitsrisiko darstellen kann, wenn es nicht explizit beabsichtigt und ordnungsgemäß durch eine Firewall geschützt ist.

F: Was passiert, wenn ich PAM falsch konfiguriere?

A: Ein falsch konfiguriertes PAM kann jeden (einschließlich Root) vom System aussperren. Lassen Sie beim Testen von PAM-Änderungen immer eine aktive Root-Shell offen oder halten Sie einen Wiederherstellungsplan bereit (z. B. Booten von einer Live-CD).

F: Wie kann ich überprüfen, ob meine sysctl-Einstellungen angewendet wurden?

A: Verwenden Sie den Befehl sysctl -a, um alle aktuellen Kernel-Parameter und ihre Werte anzuzeigen. Sie können auch spezifische Parameter überprüfen, z. B. sysctl net.ipv4.tcp_syncookies.