Zum Inhalt springen

Hardening/Linux/Kernel: Unterschied zwischen den Versionen

Aus Foxwiki
DanielZorin (Diskussion | Beiträge)
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" |…“
 
DanielZorin (Diskussion | Beiträge)
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, wer nicht solange warten möchte kann diese mit
* 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>


sofort einlesen.
 





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