Zum Inhalt

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:true auf jedem Container
  • cap_drop: ALL mit explizitem cap_add nur 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_ADMIN fuer Tailscale)