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