Skip to content

Matrix.org / Continuwuity Stack

Das Projekt wird einen eignen Matrix Homeserver inkl. Call-Funktionalität aufsetzen. Dabei sind folgende Komponenten inkludiert:

Continuwuity

Continuwuity stellt den Kern des Stack dar, und ist dabei ein Fork von Conduwuit, welches wiederum ein Fork von Conduit ist. Im Vergleich zu Synapse (der Referenz-Implementierung des Matrix Standards) ist Continuwuity wesentlich 'light-weighter' und performanter, unter anderem weil es in Rust implementiert ist, erfüllt allerdings vereinzelt den Standard nicht vollständig.

Folgende Interaktionen müssen konfiguriert werden:

  • Entrypoint
  • Entrypoint für Federation (Port 8448)
  • Authentication mechanism (TBD?)
  • RockyDB für Storage
  • Separater Mount für Media
  • .well-known config für LiveKit

LiveKit

LiveKit ist eine Video-Konferenz-Software, welche einigermaßen direkt mit Continuwuity integriert werden kann.

Interaktionen:

  • Entrypoint (Port 7881)
  • Port range für Calls
  • LiveKit JWT Service

Jitsi (Fallback Lösung)

Alternative Video-Konferenz-Software, intergriert mit Matrix via Widgets.

Interaktionen TBD

Monitoring

TBD; Wenn es die Zeit zulässt

Honeypot

TBD

System

Das System selbst soll via Standard Debian laufen, aber werden via Ansible provisioniert. Die Services werden ebenso deklarativ via Docker Compose provisioniert werden. Es wird dabei ein großer Fokus auf automatische & reproduzierbare Deployments gesetzt.

Deployment Architecture - Matrix Carve-out

InternetGood Vibes to keep out the MalwareCloud (Hetzner)VPSBlock VolumeStorage Box ADebian plus Ansible/mnt/data01/mnt/data02DockerDocker Host NetworkPublic / Internet-facing ServicesInternal ServicesCaddy (caddy-docker-proxy)LiveKitHoneyPotContinuwuitylk-jwt-service :8448WebSocket (:7880)/sfu/get*, /healthz*, /get_token*NFSv4 / SMBv3 (internal only)RocksDB Media (missing implementation):80, :443, :8448:7881, :50100-50200/udp:22, :80, :443

Netzwerksegmentierung und Trust Boundary

Die Deployment-Architektur unterscheidet zwischen öffentlich erreichbaren und ausschließlich intern zugänglichen Diensten.

Aus dem Internet sind nur der Reverse Proxy, LiveKit sowie der Honeypot direkt erreichbar.

Interne Komponenten wie Continuwuity und der LiveKit-JWT-Service befinden sich in einer separaten internen Service-Zone und sind nicht direkt von außen zugänglich.

Die Kommunikation zwischen diesen Bereichen erfolgt ausschließlich über definierte Schnittstellen, insbesondere über den Reverse Proxy. Durch diese Trennung wird eine klare Trust Boundary etabliert und die Angriffsfläche des Systems reduziert.

Patch- & Update-Management

Das System basiert auf Debian und wird regelmäßig aktualisiert, um Sicherheitslücken zu schließen.

Sowohl das Betriebssystem als auch die verwendeten Container-Images werden in regelmäßigen Abständen auf Updates geprüft und bei Bedarf aktualisiert. Besonders sicherheitsrelevante Updates werden zeitnah eingespielt.

Durch diesen Prozess wird sichergestellt, dass das System auf einem aktuellen und sicheren Stand bleibt.

Dateisystem-Zugriff (CIFS/NFS)

Für den Zugriff auf externe Speicher wird ausschließlich auf aktuelle und sichere Protokollversionen gesetzt (zB NFSv4 oder SMBv3).

Unsichere oder veraltete Varianten wie NFSv3 oder SMBv1 werden nicht verwendet. Der Zugriff erfolgt ausschließlich innerhalb des internen Netzwerks.