96 lines
5.6 KiB
Markdown
96 lines
5.6 KiB
Markdown
# Audit TODO 2026-05-25
|
|
|
|
Quelle: `docs/AUDIT_2026-05-25.md`
|
|
|
|
Status: Arbeitsliste fuer die Umsetzung. Authelia-2FA/OIDC bleibt bewusst spaet, weil die Ziel-Policy noch nicht final entschieden ist.
|
|
|
|
## Leitplanken
|
|
|
|
- Keine Authelia-2FA-ACL-Aenderungen in den ersten Sprints.
|
|
- Keine Live-riskanten Bind-/Port-Aenderungen ohne vorher erfasste Host-Werte, insbesondere Tailscale-IP.
|
|
- Erst Inventar und Baseline, dann Aenderungen.
|
|
- Jede produktive Aenderung bekommt Validierung und Rollback-Hinweis.
|
|
|
|
## Naechster Startpunkt 2026-05-26
|
|
|
|
Kontext bewusst gesichert, bevor weitere Live-Aenderungen passieren:
|
|
|
|
1. USV-Entscheidung treffen: aktuell ist keine funktionierende USV-Abschaltung nachgewiesen.
|
|
2. Host-Schedule/Trockenlauf fuer Gitea-Bundles und Restore-Freshness pruefen.
|
|
3. Authelia 2FA/OIDC weiterhin nicht anfassen; das bleibt bewusst der letzte Block.
|
|
|
|
## Sprint 0 - Inventar und Baseline
|
|
|
|
| Status | Aufgabe | Ergebnis |
|
|
|---|---|---|
|
|
| erledigt | Hardware-Inventar ausfuellen | CPU, RAM, Mainboard, BIOS, NIC, Controller, Disks, SMART und Capacity-Baseline erfasst; USV ist als nicht validiert dokumentiert |
|
|
| in Arbeit | Netzwerk-Inventar ausfuellen | Host-IP, Gateway, Tailscale-IP und AdGuard-Bind erfasst; Router-/VLAN-Details offen |
|
|
| erledigt (Baseline) | Externe Abhaengigkeiten dokumentieren | `docs/EXTERNAL_DEPENDENCIES.md` enthaelt bekannte Provider, Kritikalitaet, Ausfallplaene; Account-Recovery-Codes/Zahlungswege bleiben Off-Repo-Operatorcheck |
|
|
| erledigt (Baseline) | Services-Recovery-Pfade beschreiben | `docs/SERVICES_RECOVERY.md` enthaelt Gitea-/Komodo-/Secrets-Sonderpfade; Gitea-Bundle-/Mirror-Mechanik bleibt als Umsetzungsentscheidung offen |
|
|
| erledigt | Baseline-Tag setzen | `audit-2026-05-25-baseline` ist lokal und remote vorhanden |
|
|
| erledigt | Policy-Check neu ausfuehren | SEC001-Warnings aus altem Report sind nicht mehr aktuell |
|
|
|
|
## Sprint 1 - Nicht-kontroverse Sicherheits- und Repo-Hygiene
|
|
|
|
| Status | Aufgabe | Ergebnis |
|
|
|---|---|---|
|
|
| erledigt | Borg-Passphrase analog sichern | Operator bestaetigt am 2026-05-26: Passphrase ist offline gesichert und ohne Host/Vaultwarden wiederherstellbar |
|
|
| erledigt (repo) | AdGuard Admin-Bind vorbereiten | Tailscale-IP `100.80.98.33` erfasst, Compose-Soll geaendert |
|
|
| erledigt | AdGuard Admin-Port auf Tailscale-IP binden | Live validiert: `ss -ltnp` zeigt `100.80.98.33:8082`, DNS auf Port 53 funktioniert, LAN-Zugriff auf `192.168.178.58:8082` schlaegt fehl |
|
|
| erledigt | Alte Monitoring-Verzeichnisse entfernen | `ops/grafana-influxdb/` und `ops/loki/` sind aus dem aktiven Repo entfernt; Rollback erfolgt ueber Git-Historie |
|
|
| erledigt | Komodo/Gitea-Restdrift bereinigen | alter Komodo-Stack `grafana` ist inert und ohne Repo-Pfad/Webhook; Gitea-Hook `35` und `komodo`-Self-Hook `11` sind inaktiv; aktive Gitea-Hooks haben keine Fehlstatus |
|
|
| erledigt | Policy-Warnings triagieren | Plex Host-Netz und digest-gepinnte mutable Tags sind dokumentierte Info-Ausnahmen; `monitoring-influxdb3-core` als Root-Ausnahme bleibt bewusst als Warning sichtbar |
|
|
|
|
## Sprint 2 - Storage und Recovery verbindlich machen
|
|
|
|
| Status | Aufgabe | Ergebnis |
|
|
|---|---|---|
|
|
| offen | `docs/STORAGE_LAYOUT.draft.md` finalisieren | Datei wird als `docs/STORAGE_LAYOUT.md` Active gefuehrt |
|
|
| offen | Disk- und Share-TBDs eintragen | Modelle, Groessen, Seriennummern, Filesysteme und Cache-Settings sind dokumentiert |
|
|
| erledigt (Skript) | Gitea-Repo-Mirror-Mechanik definieren | `ops/borg-ui/scripts/gitea-bundle-mirror.sh` erzeugt verifizierte Bundles unter `/mnt/user/backups/git-bundles/gitea`; Host-Schedule/Trockenlauf bleibt offen |
|
|
| offen | Komodo-Bootstrap-Pfad beschreiben | Kaltstart ohne laufendes Komodo ist dokumentiert |
|
|
| offen | Immich-Restore-Test planen | Testumfang, Datenpfade und Smoke-Test-Kriterium stehen fest |
|
|
|
|
## Sprint 3 - Restore und Monitoring
|
|
|
|
| Status | Aufgabe | Ergebnis |
|
|
|---|---|---|
|
|
| offen | Immich-Restore-Test implementieren | Restore-Report landet unter `/mnt/user/backups/restore-reports/` |
|
|
| offen | Borg-Stale-Alert bauen | Alarm feuert, wenn Borg-Archiv zu alt ist |
|
|
| offen | TLS-Cert-Expiry-Alert bauen | Alarm feuert bei Restlaufzeit unter Schwellwert |
|
|
| offen | Container-Down-Alert bauen | Unerwartet fehlende Container werden sichtbar |
|
|
| offen | Family-View Dashboard definieren | Uptime, Backup-Frische, Cert-Tage, Disk-Fuellung auf einer Seite |
|
|
|
|
## Sprint 4 - Familien- und Betriebsdoku
|
|
|
|
| Status | Aufgabe | Ergebnis |
|
|
|---|---|---|
|
|
| offen | Familien-Onboarding schreiben | Nextcloud, Immich, Vaultwarden, 2FA-Verlust, Ausfallverhalten kurz erklaert |
|
|
| erledigt (Baseline) | Capacity-/Lifecycle-Review erstellen | Cache 6 %, Array/User-Shares 33 %, lokale Backups 2.2G; externe Backup-/Cold-Storage-Groessen bleiben offen |
|
|
| offen | USV-Test oder USV-Entscheidung | Power-Loss-Verhalten ist bekannt und dokumentiert |
|
|
|
|
## Sprint 5 - Auth und Frontdoor, bewusst zuletzt
|
|
|
|
| Status | Aufgabe | Ergebnis |
|
|
|---|---|---|
|
|
| geparkt | Authelia 2FA fuer Operator-UIs erweitern | Erst nach finaler Policy-Entscheidung |
|
|
| geparkt | Authelia OIDC fuer Apps pruefen | Erst nach Familien-/Client-Auswirkungsanalyse |
|
|
| geparkt | CrowdSec vor Traefik pruefen | Nach stabiler Auth-/Monitoring-Basis |
|
|
|
|
## Offene Host-Werte
|
|
|
|
Diese Werte muessen am Unraid-Host erhoben werden, bevor die entsprechenden Aenderungen sauber umgesetzt werden:
|
|
|
|
```bash
|
|
hostname
|
|
cat /proc/cpuinfo | awk '/model name|flags/ {print; if(/flags/) exit}'
|
|
free -h
|
|
dmidecode -t baseboard | head -30
|
|
ip -br link
|
|
tailscale ip -4
|
|
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINT,VENDOR
|
|
df -h /mnt/cache /mnt/disk1 /mnt/user
|
|
smartctl -a /dev/nvme0n1 | head -80
|
|
smartctl -a /dev/sdb | head -80
|
|
```
|