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_filterund deaktivieren Sieaccept_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 |