Two write endpoints without authentication were bound to every interface in this repository and to a private address on the machine. The machine was right. A pull would have silently undone it, and the only reason it did not is that git refused over an unrelated local edit. The ports are fixed. What is not fixed is that nothing compares the working copy on CFGMON to the repository — it was behind by four commits and locally modified at the same time, and neither showed anywhere. The firewall rules themselves live in no repository at all, which makes every statement about that host's exposure a memory rather than a source. Measured rather than asserted, and the measurement needed care: from my own network all three ports look shut, but so does 443, because the firewall drops that source first. Only from a host the firewall admits does the result mean anything — there 443 answers and 9090 does not.
16 KiB
16 KiB
STATUS
Issues (50 open, 54 closed)
Verteilung: M2 16 · M3 4 · M4 11 · M5 18 · M6 1
Bedeutung der Meilensteine: siehe roadmap.md.
M2 (16)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0015 | medium | waiting | CFGMON-15: Token-Hygiene — Einmal-Tokens der LABNET-02-Nacht widerrufen |
| 0021 | medium | waiting | OVERMIND-03: Windows-Build-VM verschwindet — CI kann sie nur starten, nicht anlegen |
| 0027 | medium | open | AUDIT-01: Acht Widersprüche aus dem LABNET-02-Nachlauf (Selbst-Audit CFGMON-Session) |
| 0034 | medium | open | CFGMON-11 — Gitea-CI-Rückbau abschließen (sicher rückbaubare Schritte) |
| 0073 | medium | open | Architektur: Monorepo-Umbau mit generalisiertem Config-Overlay |
| 0009 | low | open | CFGMON-04: Grafana-Admin-Credentials aus .env gelten nicht für die HTTP-API |
| 0014 | low | open | CFGMON-14: Root-Zugang über die docker-Gruppe umgeht sudo und hinterlässt keine Spur |
| 0019 | low | open | DOC-02: Veralteten wiki-Branch im gitops-Repo entfernen? |
| 0033 | low | open | OVERMIND-01 — element-desktop-build von rohana in die Lab-Registry umziehen |
| 0040 | low | open | neckbeard-Rückmeldungen aus dem Feldtest einreichen |
| 0053 | low | open | Historien-Durchgang: acht nicht-kanonische Commits mitziehen |
| 0061 | low | open | External-Secrets Operator vs. current SOPS setup |
| 0074 | low | open | Cleanup-Checkliste (laufend) |
| 0076 | low | open | Registry-/Git-Traffic zum Gitea-Host ueber privates Hetzner-Netzwerk statt oeffentlichem Internet routen |
| 0085 | low | open | docs/ trägt zwei Altbestände abgeschlossener Umzüge: TASKS.md und oldwiki/ |
| 0105 | low | waiting | Projekt wiki: Verbleib klären — erst unmittelbar vor Projektabschluss |
M3 (4)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0080 | medium | open | Raidplaner mit sozialer Komponente (Verfügbarkeiten, Aufgaben, Roadmap, Fotoalbum) |
| 0081 | medium | open | Gäste-Invite-Workflow per Bot (3-Tage-Accounts, Admin-Freischaltung, begrenzte Reaktivierung) |
| 0094 | medium | open | Direkter Link zur 2FA/Passkey-Einrichtung in den Account-Settings |
| 0092 | low | waiting | Default-Client-Einstellungen (Theme, Features) für Neuinstallationen provisionieren |
M4 (11)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0029 | medium | open | UI harmonisieren: gleiche Farben und Formen über alle Oberflächen |
| 0057 | medium | open | Element Call: VP9 codec retry |
| 0093 | medium | open | Settings normalisieren: Video/Audio-Einstellungen nur im Call-Widget, nicht im Haupt-Client |
| 0096 | medium | waiting | Rebranding: Element → aXion1337 (Web + Desktop, Gesamtklammer) |
| 0022 | low | open | BUILD-01: macOS-Client reproduzierbar bauen — aktuell nur manuell auf sorbs Mac |
| 0086 | low | open | k8s-Ressourcen heißen noch element-web-docs (Rest des ThreadNet-Rebrands) |
| 0087 | low | waiting | Logo für die Authentik-Anmeldemaske entwerfen (Querformat/SVG) |
| 0095 | low | open | Windows-Desktop: Code-Signing (+ Installer-Branding) |
| 0097 | low | open | Feedback-/Bugreport-Weg: eigener Rageshake oder Alternative (Zammad nachhalten) |
| 0100 | low | open | Asset-Pfade tragen weiterhin "element" (themes/element/…) |
| 0101 | low | open | Kaputtes Paket 0.19.2-threadnet.6 in der Registry — Herkunft ungeklärt |
M5 (18)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0065 | high | open | K3s API security hardening |
| 0109 | high | open | Der Weg vom Commit ins Cluster meldet seinen Stillstand nicht |
| 0110 | high | open | Härtung lebt auf dem Host, das Repo weiß nichts davon |
| 0058 | medium | open | Web Application Firewall (WAF) |
| 0059 | medium | open | Pod Security Admission (Restricted) |
| 0062 | medium | open | Renovate/Dependabot for chart and image updates |
| 0063 | medium | open | Security advisory monitoring (ESS/Element) |
| 0064 | medium | open | Disable automountServiceAccountToken where not needed |
| 0066 | medium | open | auditd for file integrity & syscall audit |
| 0067 | medium | open | Kernel hardening (sysctl) |
| 0068 | medium | open | Lynis security baseline |
| 0069 | medium | open | CrowdSec integration |
| 0070 | medium | open | Falco runtime monitoring |
| 0107 | medium | open | Ein aktives Konto ohne Profil-Zeile fällt nur durch eine Beschwerde auf |
| 0108 | medium | open | Eine Erlaubnisliste veraltet still, wenn das Chart die Verdrahtung verschiebt |
| 0071 | low | open | Trivy image scanning for CVEs |
| 0089 | low | open | Eigene Images sind unsigniert — beim Deploy prüft nichts die Herkunft |
| 0090 | low | open | Kein Kubernetes-Audit-Log — Zugriffe an der API werden nicht protokolliert |
M6 (1)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0072 | low | open | DSGVO/Datenschutz-Compliance konkretisieren |
Active design docs (0)
none active
ADRs (27)
| ADR | Status | Title |
|---|---|---|
| 0001 | accepted | 0001 — git.lab ist kanonisch, Gitea wird per Push-Mirror beliefert |
| 0002 | superseded | 0002 — Issues und Management-Repo ziehen ins Lab („das Lab ist die Quelle der Wahrheit") |
| 0003 | accepted | 0003 — CVE-Meldeweg: aggregierte Alarme, eigener Security-Raum, gleicher Bot |
| 0004 | accepted | 0004 — Site-to-Site-VPN Hetzner-Projektnetz ↔ Lab, schaltbar über die UDM |
| 0005 | accepted | 0005 — Projektmanagement: Kanban-Rückgrat mit leichten Scrum-Elementen |
| 0006 | superseded | 0006 — Wikis ins Lab konsolidieren, Docusaurus als gemeinsame Lesefläche |
| 0007 | superseded | 0007 — Wiki-Oberfläche: Docusaurus läuft, BookStack als Gegenentwurf |
| 0008 | accepted | 0008 — Agenten-Sessions auf CFGMON laufen root-äquivalent über die docker-Gruppe |
| 0009 | accepted | 0009 — Commit-Konventionen und rückwirkende Anonymisierung der Historie |
| 0010 | accepted | 0010 — Härtung ist ein eigener Meilenstein (M5); M1 misst nur Kaputtes |
| 0011 | accepted | 0011 — Provisionierung verweigert Localpart-Kollisionen, statt an bestehende Konten zu verknüpfen |
| 0012 | accepted | ADR-0012: Issues leben im Repo; GitLab wird deterministisch bespiegelt |
| 0013 | accepted | ADR-0013: Gruppenregeln kanonisch im management-Repo, Komponenten zeigen und werden geprüft |
| 0014 | accepted | 0014 — Wiki.js löst Docusaurus ab: abgeschottete Betriebs-/Anwenderdoku, docs-as-code |
| 0015 | accepted | 0015 — Wiki.js Git-Storage: Inhalt fließt Cluster→Gitea→kanonisiert nach git.lab |
| 0016 | accepted | 0016 — Das Notfallhandbuch bleibt lab-intern und wird nicht gespiegelt |
| 0017 | accepted | 0017 — Split-DNS auf CFGMON: vier Zonen statt einer, je Zone begründet |
| 0018 | accepted | 0018 — KI-Geräuschunterdrückung in threadnet-call: client-seitig, opt-in, selbst ausgeliefert |
| 0019 | accepted | ADR-0019: Komponenten-Issues in docs/issues/ adoptiert — eine Nummernwelt für die Gruppe |
| 0020 | accepted | ADR-0020: Bekannte Befunde werden quittiert, damit Rot wieder etwas bedeutet |
| 0021 | accepted | ADR-0021: Föderation wird geschlossen — leere Whitelist statt offener Tür |
| 0022 | accepted | ADR-0022: Anschluss an Upstream durch einen einmaligen Merge, nicht durch einen geteilten Graft |
| 0023 | accepted | ADR-0023: Fremde Historie von der Git-Hygiene ausnehmen — erklärt, nicht global |
| 0024 | accepted | ADR-0024: Drei Framework-Dateien sind erklärt erweitert — Diff-Referenz statt Byte-Vergleich |
| 0025 | accepted | ADR-0025: Egress-Ausnahmen werden als CIDR gepinnt — außer hinter einem CDN |
| 0026 | accepted | ADR-0026: Prüfziele werden abgeleitet, nicht gepflegt — und das Ausbleiben der Herleitung alarmiert |
| 0027 | accepted | ADR-0027: „Zuletzt" wird ein eigener Meilenstein (M6) |
Open AARs (10)
- AAR — Alle geplanten Prüfungen waren dauerhaft rot und meldeten damit nichts mehr
- AAR — Nach der Freischaltung sendete Safari ungefiltert weiter
- AAR —
v0.6.0-rc.2brach die Raumliste in Produktion - AAR — Drei DKIM-Einträge verschwanden bei der DMARC-Härtung
- AAR — Game-Host-Anbindung: Deploy über zwei Übergaben, Ursache war nie die Firewall
- AAR — rohana lief voll, der ThreadNet-Web-Spiegel riss
- AAR: Clarks Calls und Identitäts-Reset — vier Fehldiagnosen bis zur bekannten Ursache
- AAR: Deploy der abgeleiteten CVE-Zielmenge (#0106)
- AAR: Die Anmeldung brach nach dem ESS-Sprung — eine Netzregel von heute Morgen
- AAR: Die Ausrollstrecke stand eine Stunde — der Push-Spiegel kam nicht durch
Fehlerklassen (18)
offen (7)
- Die AAR-Pflicht setzt sich ohne Werkzeug nicht durch
- Prüfungen erzeugen Befunde, die niemand beheben kann
- Ein gleichzeitiger, sachfremder Defekt wird der eigenen Änderung angelastet
- Issues behaupten Zustände, die längst überholt sind
- Eine Datei kann nicht maßgeblich und zugleich unveränderlich sein
- Ein nachgebauter Test prüft den Nachbau
- Eine Quittung bezeugt Aufmerksamkeit, nicht Vollständigkeit
teilweise gedeckt (3)
- Gelesene Anweisungen werden nicht befolgt — neckbeard v0.3.0
- Regeln ohne maschinellen Widerspruch werden nicht befolgt — neckbeard v0.3.0
- Der Upgrade-Pfad ins Rahmenwerk war beschrieben, nie begangen — neckbeard v0.3.1
geerntet (4)
- Dashboards und Prüfungen ohne Datenbeleg — neckbeard v0.1.3
- Dokumente werden ergänzt, aber nicht revidiert — neckbeard v0.1.3
- Gesperrte Dateien werden bearbeitet — neckbeard v0.2.0
- „Meldet Erfolg, ist aber blind" — die häufigste Fehlerklasse dieses Projekts — neckbeard v0.1.3
vom Rahmenwerk nicht abgedeckt — bleibt unseres (2)
- Dokumente werden angelesen, nicht durchgelesen — neckbeard v0.1.3
- Werkzeuge messen unbemerkt die falsche Instanz — neckbeard v0.1.3