ADR-009: Security-Hardening-Muster¶
| Feld | Wert |
|---|---|
| Status | accepted |
| Datum | 2026-03-21 |
| Betrifft | alle |
Kontext¶
Alle Projekte stellen Services bereit, die teilweise oeffentlich erreichbar sind. Als einzelner Betreiber mit ISO-27001-Hintergrund ist ein konsistentes Security-Baseline ueber alle Server hinweg notwendig — ohne den Overhead dedizierter Enterprise-Security-Tools.
Die Infrastruktur umfasst oeffentlich erreichbare Server (Hetzner, OVH), einen Homeserver hinter NAT und eine Entwicklungsmaschine. Alle muessen gleichermassen gehaertet werden.
Entscheidung¶
Folgende Hardening-Muster werden standardisiert auf allen Projekten angewendet:
Container-Ebene:
security_opt: no-new-privileges:trueauf jedem Containercap_drop: ALLmit explizitemcap_addnur bei Bedarf- Read-only Config-Mounts wo moeglich (
:ro) - Keine Secrets in Logs oder Environment-Variablen im Klartext
Host-Ebene:
- SSH: Key-Only-Authentifizierung,
MaxAuthTries 3, kein Root-Login - UFW als Firewall mit Default-Deny-Incoming
- fail2ban fuer SSH und Traefik-Endpunkte
- Automatische Sicherheitsupdates via
unattended-upgrades
Netzwerk-Ebene:
- Traefik: TLS 1.2+, Security-Headers (HSTS, X-Frame-Options, CSP)
- Interne Services nur ueber Tailscale/Headscale erreichbar
- Docker-Netzwerke segmentiert nach Funktion
Alternativen¶
| Option | Ergebnis |
|---|---|
| Pro-Projekt-Baseline | Jedes Projekt definiert eigene Sicherheitsstandards. Fuehrt zu Inkonsistenzen und Luecken, erschwert Audits. |
| Dediziertes Security-Tool (Vault, Falco) | Enterprise-Loesungen fuer Secret Management und Runtime Security. Fuer ein Single-Operator-Homelab zu viel Betriebsaufwand. |
Konsequenzen¶
Positiv:
- Konsistente Baseline ueber alle Projekte — einfach zu auditieren
- Checkliste fuer neue Services und Projekte vorhanden
- Defense-in-Depth durch Massnahmen auf allen Ebenen
- Kompatibel mit ISB/NIS2-Anforderungen aus dem beruflichen Kontext
Negativ:
- Erfordert Disziplin bei jedem neuen Service und jeder Aenderung
- Keine automatisierte Compliance-Pruefung (manuelles Review noetig)
- Einzelne Services benoetigen Ausnahmen (z.B.
NET_ADMINfuer Tailscale)