docs: Document NetworkPolicies rollout (issue #10), incidents, OOM fix, and identity cleanup
Create Release on Milestone Tag / create-release (push) Canceled after 0s

This commit is contained in:
Thore Cimbal
2026-07-28 15:51:12 +02:00
parent 3b42b220a0
commit 0db7fc1573
+40 -17
View File
@@ -1,7 +1,7 @@
# aXion1337.Chat Task List & Meilensteine # aXion1337.Chat Task List & Meilensteine
**Last Updated**: 2026-07-28 **Last Updated**: 2026-07-28
**Statusübersicht**: [✅ 12 Abgeschlossen] [🔄 0 In Progress] [📋 9+ Pending] [🔒 10 Security] **Statusübersicht**: [✅ 13 Abgeschlossen] [🔄 0 In Progress] [📋 8+ Pending] [🔒 10 Security]
--- ---
@@ -9,9 +9,9 @@
| Kategorie | Count | Status | Details | | Kategorie | Count | Status | Details |
|-----------|-------|--------|---------| |-----------|-------|--------|---------|
| **Completed** | 12 | ✅ Done | K3S, Flux, ESS, Themes, Desktop, Monitoring, TURN, Authentik (Deploy+Enrollment/Recovery/2FA), Firewall, SSH, coturn Fix, Element Call Fork | | **Completed** | 13 | ✅ Done | K3S, Flux, ESS, Themes, Desktop, Monitoring, TURN, Authentik (Deploy+Enrollment/Recovery/2FA), Firewall, SSH, coturn Fix, Element Call Fork, NetworkPolicies |
| **In Progress** | 0 | 🔄 — | — | | **In Progress** | 0 | 🔄 — | — |
| **Backlog** | 9+ | 📋 Pending | DB Backups, PostgreSQL Migration, NetworkPolicies, MAS-Template-Link, VP9-Retry | | **Backlog** | 8+ | 📋 Pending | DB Backups, PostgreSQL Migration, MAS-Template-Link, VP9-Retry |
| **Security Tasks** | 5 | 🔒 Pending | auditd, Kernel hardening, CrowdSec, Falco, WAF | | **Security Tasks** | 5 | 🔒 Pending | auditd, Kernel hardening, CrowdSec, Falco, WAF |
### Priority Distribution ### Priority Distribution
@@ -25,7 +25,7 @@
--- ---
## 🗓️ Session-Zusammenfassung 2026-07-27/28 (weiter morgen) ## 🗓️ Session-Zusammenfassung 2026-07-27/28 (fortlaufend aktualisiert)
Nach längerer Pause wiederaufgenommen — Mac war neu aufgesetzt, Zugriff (SSH, Kubeconfig, Nach längerer Pause wiederaufgenommen — Mac war neu aufgesetzt, Zugriff (SSH, Kubeconfig,
age-Key, Homebrew/flux/helm/sops/age) komplett wiederhergestellt und dauerhaft in `~/.zshrc` age-Key, Homebrew/flux/helm/sops/age) komplett wiederhergestellt und dauerhaft in `~/.zshrc`
@@ -43,14 +43,26 @@ verankert. Was in dieser Session erledigt wurde:
**Wichtig**: erzwungenes `video_codec: vp9` hat Calls kurzzeitig live komplett kaputt gemacht **Wichtig**: erzwungenes `video_codec: vp9` hat Calls kurzzeitig live komplett kaputt gemacht
(kein Bild/Ton) — sofort zurückgerollt, ohne Codec-Zwang läuft's. Root Cause dafür nicht (kein Bild/Ton) — sofort zurückgerollt, ohne Codec-Zwang läuft's. Root Cause dafür nicht
abschließend isoliert, nur umgangen. abschließend isoliert, nur umgangen.
4. **Identitäts-Aufräumarbeiten**: `sorB`'s Authentik-E-Mail korrigiert (`thorec@hotmail.de`),
MAS OIDC-Link (`upstream_oauth_links`) von `sorB` zeigte fest auf den alten MAS-User
`akadmin`/`@akadmin:axion1337.chat` (Sub-Hash ist stabil über Username-Renames, daher blieb
die Verknüpfung nach dem Rename "akadmin"→"sorB" bestehen) — umgehängt auf `sorb`/
`@sorb:axion1337.chat`. Neue Identität `elbojoloco` angelegt (E-Mail `cfx@riot.8shield.net`),
verknüpft mit dem alten `akadmin`-MAS-User. **Übrig**: ein leeres, unverknüpftes
`@bojeledoggo:axion1337.chat`-Konto (Tippfehler-Artefakt) — User räumt das selbst auf.
5. **NetworkPolicies** (Issue #10 ✅ geschlossen) — siehe "Network Security" Abschnitt unten.
Zwei Live-Incidents beim Rollout (Port-Verwechslungen), beide binnen Minuten live gepatcht
und danach committed. Nebenbei: `matrixRTC`-Authorisation-Service OOM-Fix (20Mi→128Mi).
### Offene Punkte für morgen ### Offene Punkte
- **VP9-Retry**: Root Cause des Call-Ausfalls isolieren (Browser-Konsolen-Repro nötig), bevor - **VP9-Retry**: Root Cause des Call-Ausfalls isolieren (Browser-Konsolen-Repro nötig), bevor
wieder versucht wird — siehe Backlog "Element Call Enhancement". wieder versucht wird — siehe Backlog "Element Call Enhancement".
- **`ThreadNet-Web` Build-Bug**: `scripts/docker-link-repos.sh`/`docker-package.sh` nicht - **`ThreadNet-Web` Build-Bug**: `scripts/docker-link-repos.sh`/`docker-package.sh` nicht
ausführbar committet + veralteter `matrix-js-sdk#develop`-Pin im Lockfile blockiert ausführbar committet + veralteter `matrix-js-sdk#develop`-Pin im Lockfile blockiert
vollständigen Neu-Build des Web-Forks. Noch nicht gefixt, User hat noch nicht final vollständigen Neu-Build des Web-Forks. Noch nicht gefixt, User hat noch nicht final
entschieden ob gewünscht. entschieden ob gewünscht.
- **Verwaistes `@bojeledoggo:axion1337.chat`**: leeres Matrix-Konto ohne OIDC-Link, User räumt
das selbst auf (braucht dafür seinen eigenen Access-Token für die Admin-API).
- **MAS-Template-Link**: 2FA/Passkey-Setup-Links direkt auf `account.axion1337.chat/account/` - **MAS-Template-Link**: 2FA/Passkey-Setup-Links direkt auf `account.axion1337.chat/account/`
statt nur über `docs/setup/security.html` — braucht MAS Custom-Template-Override statt nur über `docs/setup/security.html` — braucht MAS Custom-Template-Override
(`templates.path`), größerer separater Task. (`templates.path`), größerer separater Task.
@@ -334,18 +346,29 @@ verankert. Was in dieser Session erledigt wurde:
- Priority: **HIGH** (data preservation) - Priority: **HIGH** (data preservation)
### Network Security ### Network Security
- [ ] **NetworkPolicies K8s-Layer Segmentation** - [x] **NetworkPolicies K8s-Layer Segmentation** (2026-07-28, Closes #10)
- Default-Deny Ingress für `matrix` namespace - Default-Deny Ingress (egress left untouched) für `matrix` UND `authentik` namespaces,
- Allow rules: per-Komponente Allow-Regeln in `apps/authentik/networkpolicy.yaml` und
- Ingress → MAS:443 `apps/production/networkpolicy.yaml`. Rollout: authentik zuerst als Pilot, dann matrix.
- Ingress → ElementWeb:443 - Empirisch verifiziert, dass K3s' eingebauter NetworkPolicy-Controller tatsächlich
- MAS ↔ Synapse:8008 durchsetzt (Testnamespace, Timeout- statt Refused-Verhalten unter Deny-Policy).
- Synapse ↔ Postgres:5432 - **Zwei Live-Incidents beim Rollout, beide binnen Minuten behoben**:
- Authentik → Postgres:5432 1. `authentik-server`: Regel erlaubte Service-Port 80/443, aber NetworkPolicy filtert
- Authentik → Loki:3100 (monitoring) auf dem tatsächlichen Container-Port (9000/9443 nach kube-proxy-DNAT) — 502 auf
- Egress: Matrix-specific (federation, etc.) `auth.axion1337.chat`, sofort korrigiert.
- Est. Effort: 1 day 2. `matrix-authentication-service`: Regel erlaubte Synapse nur auf Port 8081, aber
- Priority: **MEDIUM** (compliance, least-privilege) Synapse ruft `/oauth2/introspect` tatsächlich auf **Port 8080** — jede
authentifizierte Anfrage (inkl. `/sync`) scheiterte mit 503, alle Clients zeigten
"Verbindung unterbrochen". Live gepatcht, dann committed.
- Lehre für zukünftige NetworkPolicies in diesem Repo: wo immer ein Service benannte
Ports (`targetPort: <name>`) nutzt, diese direkt in der Policy referenzieren statt
Portnummern zu raten — schließt genau diese Fehlerklasse aus.
- Nebenbefund (unabhängig von NetworkPolicies): `matrixRTC`-Authorisation-Service hatte
ein 20Mi-Memory-Limit (Chart-Default), OOM-gekillt nach ~74 Tagen Uptime während der
Verifikations-Calls — auf 64Mi/128Mi angehoben.
- `coturn` (hostNetwork) bewusst ausgenommen — NetworkPolicy greift dort nicht.
- `authentik-postgresql`'s Bitnami-Chart-Policy (Port 5432, quelloffen) bewusst nicht
angefasst/dupliziert, da Helm-verwaltet.
- [ ] **Pod Security Admission (Restricted)** - [ ] **Pod Security Admission (Restricted)**
- Apply to `matrix` & `authentik` namespaces - Apply to `matrix` & `authentik` namespaces