From 7a14adb0158cf7f9dc17beea7c8a1067a9822a16 Mon Sep 17 00:00:00 2001 From: Thore Cimbal Date: Wed, 19 Aug 2026 12:00:00 +0000 Subject: [PATCH] docs(issues): #0060 - price the federation decision instead of debating it The question sat open since July because nobody knew what closing would cost. It is now measured: zero. No destinations, no remote users, no rooms with outside participation, across four months of operation - while the federation API answers HTTP 200 from the public internet, since the well-known delegation routes federation over 443 and port 8448 being shut changes nothing. So the trade is not reach against safety but an unused capability against Synapse's largest remote-facing surface. Recommended B, an empty federation_domain_whitelist: one line, versioned, reversible in minutes, and honest about what it does not do - the endpoints keep answering, so the server becomes unengaged rather than invisible. Decision remains sorb's. Co-Authored-By: Claude Opus 5 --- ...tion-allowlist-or-closed-federation-dec.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/docs/issues/0060-gitops-17-federation-allowlist-or-closed-federation-dec.md b/docs/issues/0060-gitops-17-federation-allowlist-or-closed-federation-dec.md index 555cc36..e8d09d5 100644 --- a/docs/issues/0060-gitops-17-federation-allowlist-or-closed-federation-dec.md +++ b/docs/issues/0060-gitops-17-federation-allowlist-or-closed-federation-dec.md @@ -19,3 +19,63 @@ Decide: open federation with all public Matrix servers (current default, larger --- *Migriert aus Gitea `sorb/axion1337.chat-gitops#17` — dort erstellt am 2026-07-28 von sorb.* + +## Entscheidungsgrundlage 2026-08-19 — gemessen statt geschätzt + +Die Frage war seit dem 2026-07-28 offen, weil niemand wusste, was eine Schließung +kosten würde. Jetzt ist es beziffert. + +**Föderation ist offen und öffentlich erreichbar.** In `synapse-values.yaml` steht zu +Föderation **nichts** — es gelten die Synapse-Vorgaben. Von außen gemessen: + +``` +https://matrix.axion1337.chat/_matrix/federation/v1/version -> HTTP 200 +https://matrix.axion1337.chat/_matrix/key/v2/server -> HTTP 200 +``` + +Port 8448 ist zwar zu, das ändert nichts: Die Delegation +(`/.well-known/matrix/server` → `matrix.axion1337.chat:443`) führt die Föderation über +den regulären HTTPS-Port, und der ist offen. + +**Benutzt wurde sie noch nie.** Aus der Synapse-Datenbank, über die gesamte Betriebszeit +(Erstkonto 2026-04-21): + +| | | +|---|---| +| Zielserver in `destinations` | **0** | +| davon je erfolgreich kontaktiert | **0** | +| fremde Nutzer in unseren Räumen | **0** | +| Räume mit fremder Beteiligung | **0** | +| eigene Räume | 31 | + +Nicht „wenig genutzt" — **null**, in vier Monaten. Damit kostet eine Schließung heute +nichts Messbares; sie nimmt nur eine Möglichkeit weg, die niemand wahrgenommen hat. + +**Was dagegen bezahlt wird:** Die Föderations-Schnittstelle ist die größte +fremdzugewandte Angriffsfläche, die Synapse hat, und historisch die, in der seine CVEs +sitzen. Jeder Matrix-Server der Welt darf derzeit Beitritts- und Ereignisverkehr +versuchen. + +### Optionen mit ihren Folgen + +**A — offen lassen (Ist-Zustand).** Kein Aufwand. Wir bezahlen dauerhaft +Angriffsfläche für eine Fähigkeit mit null nachgewiesenem Bedarf. + +**B — `federation_domain_whitelist` mit leerer Liste.** Föderation nur mit +ausdrücklich genannten Servern; leer heißt: mit keinem. Eine Zeile Konfiguration, +über GitOps versioniert, in Minuten rückgängig durch Eintragen einer Domain. +⚠️ **Was es NICHT tut:** Die Endpunkte antworten weiterhin (`key/v2/server`, +`federation/v1/version`) — der Server ist also nicht unsichtbar, nur unbeteiligt. + +**C — Föderations-Listener ganz abschalten.** Kleinste Fläche, aber Eingriff in das +ESS-Chart und schwerer zurückzudrehen. + +**Empfehlung: B.** Sie kostet heute nichts, ist eine Zeile, ist versioniert und hält die +Tür offen, ohne Miete dafür zu zahlen. C lohnt erst, wenn feststeht, dass Föderation +dauerhaft unerwünscht ist — dann als eigene Entscheidung mit ADR. + +**Getrennt davon** nennt das Issue `allow_public_rooms_without_join_rules`: Das steuert +nur, ob das Raumverzeichnis über Föderation sichtbar ist, und ist unabhängig von der +Grundsatzfrage. + +**Entscheidung sorb steht aus.**