Linux Hardening (Deep Dive)

Baselines, Zugriff, Logging, Betrieb – wiederholbar, nachvollziehbar, audit-ready.

Dieser Hub ist ein Deep Dive für Admins und Security Engineers: Hardening so, dass es im Betrieb hält – inklusive Evidence für Audits.

Linux Hardening ist Standardisierung

Hardening ist kein einmaliger „Härtungs-Run“, sondern ein Standard: Baseline, Abweichungen dokumentieren, drift verhindern.

Wenn du auditfähig sein willst, musst du Hardening wiederholbar machen: IaC/Ansible, klare Defaults, Messung.

  • Baseline: Packages, Services, Users, SSH, sysctl, auditd, logging
  • Least Privilege: sudo, Rollen, getrennte Admin-Accounts
  • Patch-Prozess: Security Updates, Wartungsfenster, Rollback
  • Monitoring: systemd health, logs, metrics, alerts

SSH & Zugriff (Minimum-Standard)

SSH ist oft der größte Angriffsvektor. Ziel: sichere Defaults + nachvollziehbare Ausnahmen.

Wichtig: Key-Management, MFA/SSO (wo möglich), und Logging.

  • PasswordAuthentication: off (Standard), nur mit klarer Ausnahme
  • PermitRootLogin: no, Admin via sudo mit separatem Account
  • AllowUsers/AllowGroups, Match-Blocks je Zone (z. B. Jump Hosts)
  • Fail2ban/Rate Limits (wo sinnvoll), aber nicht als Ersatz für Hardening
# Beispiel: sshd_config (Prinzip)
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
AuthenticationMethods publickey
AllowGroups ssh-users
X11Forwarding no
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

Kernel/sysctl & Netzwerk-Defaults

sysctl ist kein Allheilmittel, aber ein guter Baseline-Baustein. Wichtig ist: nur Werte setzen, die du verstehst und testen kannst.

Wenn IPv6 aktiv ist (sollte es), dann muss es auch gehärtet werden.

  • Reverse Path Filtering (wo passend), ICMP-Handling, Redirects aus
  • SYN Cookies/Backlog (je nach Rolle), Source Routing aus
  • BPF/LSM: AppArmor/SELinux je nach Umfeld
  • Firewall: nftables/iptables policy driven (nicht „ad-hoc“)
# Beispiel: sysctl Baseline (Auszug)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0

Logging, auditd und Evidence

Ohne Logs ist Security Meinung. Mit Logs ist Security überprüfbar. Der Hardening-Standard muss Logging enthalten: Auth, sudo, SSH, system events.

Auditfähig heißt: du kannst zeigen, dass Logging aktiv ist, wohin es geht, wie lange es aufbewahrt wird, und welche Use-Cases existieren.

  • journald persistent (je nach Policy), Forwarding an zentrales Logging
  • auditd Regeln für kritische Events (auth, sudoers, binaries, config)
  • Log-Retention + Integrität (z. B. WORM/immutable, signierte Logs)
  • Alarmierung: wenige hochwertige Alerts statt Rauschen

Weiterführend