linux-kernel-advanced security hardening kernel sysctl lockdown

Kernel Security: Hardening Parameters (Artikel 371)

Der definitive Guide zum Kernel-Hardening unter Linux. Erfahren Sie alles über Sicherheits-Parameter in sysctl, den Kernel-Lockdown-Modus und den Schutz vor Memory-Exploits.

# Kernel Hardening: Den innersten Kern verriegeln

TL;DR / Management Summary Ein Standard-Kernel ist auf Kompatibilität und Offenheit getrimmt. In einer Enterprise-Umgebung ist dies ein Risiko. Wir nutzen Kernel Hardening, um die Angriffsfläche zu minimieren. Durch die Feinjustierung von sysctl-Parametern verhindern wir Netzwerk-Manipulationen (z.B. IP-Spoofing), schützen den Speicher vor Exploits (ASLR) und nutzen den Kernel Lockdown Modus, um selbst dem Root-User das Ändern von Kernel-Code im laufenden Betrieb zu verbieten.


# 1. Einführung & Architektur

Die Verteidigungs-Ebenen.

Kernel-Sicherheit beginnt bei der Kompilation (Artikel 237) und endet bei der Laufzeit-Konfiguration.

# Der Security-Stack (Mermaid)

graph TD
    A[Attack Vector: Exploit / Network] --> B{Kernel Security Layer}
    B --> C[Memory Protection: ASLR / NX]
    B --> D[Network Hardening: sysctl]
    B --> E[Access Control: Kernel Lockdown]
    C --> F[Prevents Buffer Overflows]
    D --> G[Prevents IP Spoofing / Redirects]
    E --> H[Prevents Root from modifying Kernel]

# 2. Network Hardening via Sysctl

Den Stack wasserdicht machen.

Legen Sie eine Datei /etc/sysctl.d/99-security.conf an.

# Schutz vor IP-Spoofing & Redirects

# IP-Spoofing Schutz (Reverse Path Filtering)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Keine ICMP Redirects annehmen (Verhindert MITM)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# Keine Source-Route Pakete annehmen
net.ipv4.conf.all.accept_source_route = 0

# 3. Memory & System Hardening

Exploits erschweren.

# 1. ASLR (Address Space Layout Randomization)

Randomisiert Speicheradressen, um Pufferüberläufe schwerer ausnutzbar zu machen.

kernel.randomize_va_space = 2

# 2. Ptrace einschränken

Verhindert, dass Prozesse den Speicher anderer Prozesse auslesen können (Schutz vor Password-Scrapern).

kernel.yama.ptrace_scope = 1

# 4. Day-2 Operations: Kernel Lockdown

Den Admin einschränken.

Der Lockdown-Modus verhindert, dass selbst der Root-User Code in den Kernel injiziert (z.B. via /dev/mem).

  • Integrity Mode: Verhindert Manipulationen am Kernel-Image.
  • Confidentiality Mode: Verhindert zudem das Auslesen von Kernel-Memory.

# Aktivierung (via Boot-Parameter)

lockdown=integrity als Kernel-Parameter in GRUB hinzufügen.


# 5. Troubleshooting & “War Stories”

Wenn die Härtung den Betrieb stört.

# Story 1: “Der hängende Debugger”

Symptom: Ein Entwickler versucht ein Problem mit gdb oder strace zu finden, bekommt aber nur Operation not permitted, obwohl er Root ist. Ursache: kernel.yama.ptrace_scope ist auf 1 oder 2 gesetzt. Lösung: Für Debugging-Sitzungen temporär auf 0 setzen: sysctl -w kernel.yama.ptrace_scope=0. Vergessen Sie nicht das Zurücksetzen!

# Story 2: “Das verschwundene Routing”

Symptom: Ein Linux-Server, der als VPN-Gateway oder Router fungiert, leitet keine Pakete mehr weiter. Ursache: Ein “Security-Script” hat net.ipv4.ip_forward = 0 gesetzt. Lösung: Auf Gateways muss Forwarding explizit erlaubt sein. Lektion: Nutzen Sie spezifische Security-Configs statt Pauschal-Skripte.


# 6. Fazit & Empfehlung

  • Pflicht: Aktivieren Sie rp_filter und deaktivieren Sie accept_redirects.
  • Wahl: Nutzen Sie den Lockdown-Modus für kritische Infrastruktur (Domain Controller, CA-Server).
  • Wartung: Nutzen Sie Tools wie Lynis, um Ihre Kernel-Settings regelmäßig zu auditieren.

# Anhang: Die ‘Top 10’ Security Sysctls

Parameter Wert Grund
kernel.kptr_restrict 2 Versteckt Kernel-Adressen
kernel.dmesg_restrict 1 Nur Root darf dmesg lesen
kernel.unprivileged_bpf_disabled 1 Schützt vor eBPF Exploits
net.ipv4.tcp_syncookies 1 Schutz vor SYN-Floods
net.ipv4.icmp_echo_ignore_broadcasts 1 Verhindert Smurf-Attacken
fs.protected_fifos 2 Schutz vor FIFO-Hacks
fs.protected_regular 2 Schutz vor File-Hacks
kernel.perf_event_paranoid 3 Schränkt Performance-Monitoring ein
dev.tty.ldisc_autoload 0 Verhindert Laden von TTY-Modulen
kernel.sysrq 0 Deaktiviert ‘Magische’ Tasten-Befehle
Anwenden sysctl -p Lädt Konfiguration