Hardening/Linux/Kernel: Unterschied zwischen den Versionen
Erscheinungsbild
Die Seite wurde neu angelegt: „'''Hardening/Linux/Kernel''' == sysctl == ; Backup Erstmal legen wir uns ein Backup der Default Config an <syntaxhighlight lang="bash" highlight="1" copy line> sudo sysctl -a > /tmp/default_sysctl.txt </syntaxhighlight> ; Konfiguration Datei ''/etc/sysctl.d/97_hard.conf'' anlegen und die folgenden Parameter eintragen * Einstellungen müssen mit der eingesetzten Software kompatibel sein ==== Parameter ==== {| class="wikitable sortable options big" |…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 21: | Zeile 21: | ||
! Parameter !! Beschreibung | ! Parameter !! Beschreibung | ||
|- | |- | ||
| kernel.kptr_restrict = 2 || | | kernel.kptr_restrict = 2 || Maskiert Kernelpointer in Kernel-Interfaces (z.B. ''/proc'') zur Erschwerung von ASLR-Bypasses (strikt) | ||
|- | |- | ||
| kernel.dmesg_restrict = 1 || | | kernel.dmesg_restrict = 1 || Beschränkt Zugriff auf Kernel-Logausgaben ''dmesg'' auf privilegierte Prozesse | ||
|- | |- | ||
| kernel.unprivileged_bpf_disabled=1 || | | kernel.unprivileged_bpf_disabled=1 || Deaktiviert unprivilegiertes [[eBPF]]. eBPF-Nutzung nur mit ausreichenden Privilegien | ||
|- | |- | ||
| net.core.bpf_jit_harden=2 || | | net.core.bpf_jit_harden=2 || Erzwingt zusätzliche Härtung des eBPF-JIT | ||
|- | |- | ||
| dev.tty.ldisc_autoload=0 || | | dev.tty.ldisc_autoload=0 || Deaktiviert automatisches Laden von TTY-Line-Disciplines zur Reduktion der Kernel-Angriffsfläche | ||
|- | |- | ||
| vm.unprivileged_userfaultfd=0 || | | vm.unprivileged_userfaultfd=0 || Deaktiviert ''userfaultfd'' für unprivilegierte Prozesse zur Reduktion von Exploit-Primitiven | ||
|- | |- | ||
| kernel.kexec_load_disabled = 1 || | | kernel.kexec_load_disabled = 1 || Deaktiviert ''kexec''-Kernel-Load zur Verhinderung von Kernelwechseln zur Laufzeit | ||
|- | |- | ||
| kernel.sysrq=4 || | | kernel.sysrq=4 || Beschränkt Magic-SysRq-Funktionen per Bitmaske. Reduziert missbrauchbare Notfall-/Debug-Funktionen | ||
|- | |- | ||
| kernel.unprivileged_userns_clone=0 || | | kernel.unprivileged_userns_clone=0 || Deaktiviert unprivilegierte User-Namespaces. Reduziert Container-/Sandbox-Privilege-Escalation-Angriffsfläche | ||
|- | |- | ||
| kernel.perf_event_paranoid = 3 || | | kernel.perf_event_paranoid = 3 || Restriktiert ''perf_event_open'' stark. Verhindert unprivilegiertes Profiling/Tracing sensitiver Kernel-Informationen | ||
|- | |- | ||
| kernel.yama.ptrace_scope=2 || | | kernel.yama.ptrace_scope=2 || Restriktiert ''ptrace''. Erlaubt Attach nur mit administrativen Privilegien (CAP_SYS_PTRACE) | ||
|- | |- | ||
| vm.mmap_rnd_bits=32 || | | 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 || | | vm.mmap_rnd_compat_bits=16 || Erhöht ASLR-Entropie für 32-bit-Compat-''mmap'' zur Erschwerung von Adressvorhersagen | ||
|- | |- | ||
| fs.protected_symlinks=1 || | | fs.protected_symlinks=1 || Schützt vor Symlink-Angriffen in ''sticky'' world-writable Verzeichnissen (z.B. ''/tmp'') | ||
|- | |- | ||
| fs.protected_hardlinks=1 || | | fs.protected_hardlinks=1 || Schränkt Hardlink-Erstellung ein. Reduziert Hardlink-basierte Angriffe auf fremde Dateien | ||
|- | |- | ||
| fs.protected_fifos=2 || | | fs.protected_fifos=2 || Schützt FIFOs in ''sticky'' world-writable Verzeichnissen vor Zugriff durch Nicht-Eigentümer | ||
|- | |- | ||
| fs.protected_regular=2 || | | fs.protected_regular=2 || Schützt reguläre Dateien in ''sticky'' world-writable Verzeichnissen vor Zugriff durch Nicht-Eigentümer | ||
|} | |} | ||
; Aktivierung | ; Aktivierung | ||
Nach einem Neustart werden die Kernelparameter aktiv, | * Nach einem Neustart werden die gesetzten Kernelparameter automatisch aktiv. | ||
* Um die Konfiguration ohne Neustart anzuwenden, können die Parameter manuell neu eingelesen werden mit: | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | <syntaxhighlight lang="bash" highlight="1" copy line> | ||
| Zeile 64: | Zeile 65: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aktuelle Version vom 17. Dezember 2025, 16:11 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