Hardening/Linux/Kernel: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
|||
| Zeile 102: | Zeile 102: | ||
=== Rollback === | |||
; Datei temporär deaktivieren | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
sudo mv /etc/sysctl.d/97_hard.conf /etc/sysctl.d/97_hard.conf.disabled | |||
</syntaxhighlight> | |||
Aktuelle Version vom 18. Dezember 2025, 15:33 Uhr
Hardening/Linux/Kernel
sysctl
- Backup
Erstmal legen wir uns ein Backup der Default Config an
sudo sysctl -a > /tmp/default_sysctl.txt
- Konfiguration
Datei /etc/sysctl.d/97_hard.conf anlegen und die folgenden Parameter eintragen
- Einstellungen müssen mit der eingesetzten Software kompatibel sein
Parameter
| Parameter | Beschreibung |
|---|---|
| kernel.kptr_restrict = 2 | Maskiert Kernelpointer in Kernel-Interfaces (z.B. /proc) zur Erschwerung von ASLR-Bypasses (strikt) |
| kernel.dmesg_restrict = 1 | Beschränkt Zugriff auf Kernel-Logausgaben dmesg auf privilegierte Prozesse |
| kernel.unprivileged_bpf_disabled=1 | Deaktiviert unprivilegiertes eBPF. eBPF-Nutzung nur mit ausreichenden Privilegien |
| net.core.bpf_jit_harden=2 | Erzwingt zusätzliche Härtung des eBPF-JIT |
| dev.tty.ldisc_autoload=0 | Deaktiviert automatisches Laden von TTY-Line-Disciplines zur Reduktion der Kernel-Angriffsfläche |
| vm.unprivileged_userfaultfd=0 | Deaktiviert userfaultfd für unprivilegierte Prozesse zur Reduktion von Exploit-Primitiven |
| kernel.kexec_load_disabled = 1 | Deaktiviert kexec-Kernel-Load zur Verhinderung von Kernelwechseln zur Laufzeit |
| kernel.sysrq=4 | Beschränkt Magic-SysRq-Funktionen per Bitmaske. Reduziert missbrauchbare Notfall-/Debug-Funktionen |
| kernel.unprivileged_userns_clone=0 | Deaktiviert unprivilegierte User-Namespaces. Reduziert Container-/Sandbox-Privilege-Escalation-Angriffsfläche |
| kernel.perf_event_paranoid = 3 | Restriktiert perf_event_open stark. Verhindert unprivilegiertes Profiling/Tracing sensitiver Kernel-Informationen |
| kernel.yama.ptrace_scope=2 | Restriktiert ptrace. Erlaubt Attach nur mit administrativen Privilegien (CAP_SYS_PTRACE) |
| vm.mmap_rnd_bits=32 | Erhöht ASLR-Entropie für mmap-Basen (64-bit) zur Erschwerung von Adressvorhersagen |
| vm.mmap_rnd_compat_bits=16 | Erhöht ASLR-Entropie für 32-bit-Compat-mmap zur Erschwerung von Adressvorhersagen |
| fs.protected_symlinks=1 | Schützt vor Symlink-Angriffen in sticky world-writable Verzeichnissen (z.B. /tmp) |
| fs.protected_hardlinks=1 | Schränkt Hardlink-Erstellung ein. Reduziert Hardlink-basierte Angriffe auf fremde Dateien |
| fs.protected_fifos=2 | Schützt FIFOs in sticky world-writable Verzeichnissen vor Zugriff durch Nicht-Eigentümer |
| fs.protected_regular=2 | Schützt reguläre Dateien in sticky world-writable Verzeichnissen vor Zugriff durch Nicht-Eigentümer |
- Aktivierung
- Nach einem Neustart werden die gesetzten Kernelparameter automatisch aktiv.
- Um die Konfiguration ohne Neustart anzuwenden, können die Parameter manuell neu eingelesen werden mit:
sudo sysctl --system
Ergänzende Parameter
| Parameter | Beschreibung |
|---|---|
| kernel.randomize_va_space=2 | Aktiviert vollständiges ASLR für Prozesse |
| fs.suid_dumpable=0 | Unterbindet Core-Dumps aus SetUID/privilegierten Kontexten. Reduziert Risiko durch Dump-Leaks |
| kernel.modules_disabled=1 | Verbietet nach Aktivierung das Nachladen von Kernelmodulen bis zum Neustart |
| net.ipv4.conf.all.accept_source_route=0 | Deaktiviert Source-Routing (IPv4) |
| net.ipv4.conf.default.accept_source_route=0 | Wie oben, für neue Interfaces |
| net.ipv4.conf.all.accept_redirects=0 | Deaktiviert ICMP-Redirect-Akzeptanz (IPv4) |
| net.ipv4.conf.default.accept_redirects=0 | Wie oben, für neue Interfaces |
| net.ipv4.conf.all.send_redirects=0 | Deaktiviert das Senden von ICMP-Redirects (Host ist kein Router) |
| net.ipv4.conf.default.send_redirects=0 | Wie oben, für neue Interfaces |
| net.ipv4.conf.all.log_martians=1 | Loggt verdächtige Quelladressen/Packets (Basis-Signal für Spoofing/Missrouting) |
| net.ipv4.conf.default.log_martians=1 | Wie oben, für neue Interfaces |
| net.ipv4.icmp_echo_ignore_broadcasts=1 | Ignoriert ICMP-Echo auf Broadcast. Reduziert Smurf-artige Effekte |
| net.ipv4.icmp_ignore_bogus_error_responses=1 | Ignoriert fehlerhafte ICMP-Error-Responses. Reduziert Rauschen und Angriffsoberfläche |
| net.ipv4.tcp_syncookies=1 | Aktiviert SYN-Cookies als Schutzmaßnahme bei SYN-Flood-Situationen |
| net.ipv6.conf.all.accept_redirects=0 | Deaktiviert ICMPv6-Redirect-Akzeptanz |
| net.ipv6.conf.default.accept_redirects=0 | Wie oben, für neue Interfaces |
Rollback
- Datei temporär deaktivieren
sudo mv /etc/sysctl.d/97_hard.conf /etc/sysctl.d/97_hard.conf.disabled