Vermittlungsserver: coturn mit Zugangsdaten, die verfallen
Damit Anrufe auch in Netzen zustande kommen, die keine direkte Verbindung zulassen (15-25 % der Faelle). coturn ist installiert, steht aber still, bis die Konfiguration liegt -- ein coturn mit Werkseinstellung ist ein offenes Relais. KEIN FESTES PASSWORT. Es laege dauerhaft im Browser jedes Team-Mitglieds und liesse sich nie entziehen. Der Server rechnet stattdessen bei jeder Abfrage Zugangsdaten, die nach zwoelf Stunden verfallen (server/workspace-turn.js, coturns `use-auth-secret`). Das Geheimnis liegt in einer Datei, nicht in der Datenbank: einstellung- Setzen() schreibt Werte ins Protokoll, und coturn braucht denselben Wert ohnehin in /etc. Die Oberflaeche frischt die Daten vor jedem Anruf auf. Der Chat ist eine App, die tagelang offen bleibt -- wer nur beim Laden holt, telefoniert am zweiten Tag ohne Vermittlung, und es faellt nicht auf: Es scheitern nur die, die sie gebraucht haetten. DIE WICHTIGSTE ZEILE DER KONFIGURATION ist die Sperrliste. Gemessen: dreizehn Dienste lauschen auf diesem Server nur oertlich, darunter Caddys Verwaltung auf 127.0.0.1:2019 -- wer sie erreicht, kann jede Website umleiten. Ohne Sperrliste waere der Vermittlungsserver die Tuer dorthin, und die Anfrage saehe fuer Caddy aus wie von localhost. Geprueft: pruef-anruf.mjs 51 -> 73 Pruefungen. Gegenprobe (Geheimnis als Passwort ausliefern + fremde Zugangsdaten ueberschreiben) macht genau 5 rot, darunter "das Geheimnis steht NIRGENDS in der Antwort". tools/turn-probelauf.sh beweist am echten coturn, was ein fester Vergleichswert nicht kann: dass coturn unsere Rechnung akzeptiert. Beide Seiten koennten sonst konsequent falsch rechnen und jede Pruefung waere gruen. Seine eigene Gegenprobe war zweimal zu Recht rot -- der erste Aufbau mass wegen `-y` gar nicht das Ziel, das er zu messen behauptete, sondern coturns eingebauten Loopback-Schutz. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# =====================================================================
|
||||
# coturn - Vermittlungsserver fuer die Anrufe im Creator Workspace
|
||||
# Angelegt 18.09.2026. Gehoert nach /etc/turnserver.conf
|
||||
#
|
||||
# WARUM DIESE DATEI IM REPO LIEGT
|
||||
# Sie steht auf dem Server unter /etc und waere bei einem Neuaufbau weg,
|
||||
# ohne dass es jemandem auffiele - der Anruf wuerde dann einfach bei
|
||||
# jedem Fuenften nicht mehr klappen. Genau das ist bei RunOne mit den
|
||||
# systemd-Dateien passiert; seitdem liegen solche Dateien versioniert.
|
||||
#
|
||||
# DAS GEHEIMNIS STEHT NICHT HIER DRIN.
|
||||
# Es wird vom Einrichtungsbefehl erzeugt und unten angehaengt. Eine
|
||||
# Vorlage mit Platzhalter waere eine Vorlage, in der irgendwann der
|
||||
# Platzhalter stehen bleibt - im Haus schon zweimal passiert.
|
||||
# =====================================================================
|
||||
|
||||
# --- Wo gelauscht wird -------------------------------------------------
|
||||
# Ausdruecklich nur auf der oeffentlichen Adresse. Ohne diese Zeile
|
||||
# lauscht coturn auf ALLEN Netzgeraeten - auch auf den vier
|
||||
# Docker-Bruecken (172.17-172.20). Ein Vermittlungsserver, der im
|
||||
# Docker-Netz erreichbar ist, ist eine Abkuerzung, die niemand braucht.
|
||||
listening-ip=159.195.212.167
|
||||
relay-ip=159.195.212.167
|
||||
listening-port=3478
|
||||
|
||||
# Kein TLS in dieser Stufe: Dafuer braeuchte es ein Zertifikat und damit
|
||||
# einen eigenen Namen im DNS. Ohne diese beiden Zeilen versucht coturn
|
||||
# trotzdem, einen TLS-Lauscher zu oeffnen, und schreibt bei jedem Start
|
||||
# eine Warnung ueber fehlende Zertifikate - eine Warnung, die immer
|
||||
# kommt, liest nach drei Tagen niemand mehr.
|
||||
no-tls
|
||||
no-dtls
|
||||
|
||||
# --- Der Portbereich fuer die Weiterleitung ----------------------------
|
||||
# Jedes weitergeleitete Gespraech belegt einen Port. Der Standard geht
|
||||
# von 49152 bis 65535 - 16000 Ports, die alle in der Firewall offen sein
|
||||
# muessten. Fuer ein Team dieser Groesse sind 100 reichlich: Sie
|
||||
# reichen fuer 100 gleichzeitige Weiterleitungen, und die Firewall
|
||||
# bleibt entsprechend eng.
|
||||
min-port=49160
|
||||
max-port=49260
|
||||
|
||||
# --- Wer den Server benutzen darf --------------------------------------
|
||||
# Keine Benutzerliste, sondern ein gemeinsames Geheimnis: Der Workspace
|
||||
# rechnet daraus Zugangsdaten, die nach zwoelf Stunden verfallen
|
||||
# (server/workspace-turn.js). coturn rechnet dieselbe Zahl nach.
|
||||
# Vorteil gegenueber festen Benutzern: Es gibt nichts abzugleichen, und
|
||||
# ein Zugang, der nicht mehr gelten soll, gilt am naechsten Tag nicht
|
||||
# mehr.
|
||||
use-auth-secret
|
||||
realm=dogfather-universe.com
|
||||
|
||||
# Wie lange eine einmal ausgestellte Anmeldung nachwirkt.
|
||||
stale-nonce=600
|
||||
|
||||
# --- DIE WICHTIGSTEN ZEILEN DER GANZEN DATEI ---------------------------
|
||||
# Ein TURN-Server leitet auf Zuruf Verkehr an eine Adresse weiter, die
|
||||
# der Anrufer nennt. Ohne die folgenden Sperren darf er auch 127.0.0.1
|
||||
# nennen - und dann steht dieser Server als Tuer vor allem, was auf
|
||||
# diesem Rechner nur oertlich lauscht. Am 18.09.2026 gemessen: dreizehn
|
||||
# Dienste, darunter
|
||||
#
|
||||
# 127.0.0.1:2019 die Verwaltung von Caddy (!) - wer sie erreicht,
|
||||
# kann JEDE Website auf diesem Server umleiten
|
||||
# 127.0.0.1:3000 Gitea 127.0.0.1:4000 VanVans Shop
|
||||
# 127.0.0.1:4100 Workspace 127.0.0.1:4400 Buchhaltung
|
||||
# 127.0.0.1:25 der Mailserver
|
||||
#
|
||||
# Fuer Caddy saehe eine so weitergeleitete Anfrage aus, als kaeme sie
|
||||
# von diesem Rechner selbst. Diese Liste ist deshalb keine Haertung,
|
||||
# sondern die Voraussetzung dafuer, dass der Dienst ueberhaupt laufen
|
||||
# darf.
|
||||
no-multicast-peers
|
||||
denied-peer-ip=0.0.0.0-0.255.255.255
|
||||
denied-peer-ip=10.0.0.0-10.255.255.255
|
||||
denied-peer-ip=100.64.0.0-100.127.255.255
|
||||
denied-peer-ip=127.0.0.0-127.255.255.255
|
||||
denied-peer-ip=169.254.0.0-169.254.255.255
|
||||
denied-peer-ip=172.16.0.0-172.31.255.255
|
||||
denied-peer-ip=192.0.0.0-192.0.0.255
|
||||
denied-peer-ip=192.0.2.0-192.0.2.255
|
||||
denied-peer-ip=192.88.99.0-192.88.99.255
|
||||
denied-peer-ip=192.168.0.0-192.168.255.255
|
||||
denied-peer-ip=198.18.0.0-198.19.255.255
|
||||
denied-peer-ip=198.51.100.0-198.51.100.255
|
||||
denied-peer-ip=203.0.113.0-203.0.113.255
|
||||
denied-peer-ip=240.0.0.0-255.255.255.255
|
||||
# Dasselbe fuer IPv6 - sonst waere die Sperre oben eine halbe Sperre.
|
||||
denied-peer-ip=::1
|
||||
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
|
||||
denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255
|
||||
denied-peer-ip=100::-100::ffff:ffff:ffff:ffff
|
||||
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
|
||||
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
|
||||
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
|
||||
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
|
||||
|
||||
# Weiterleitung nur fuer UDP. WebRTC braucht nichts anderes; TCP-Ziele
|
||||
# waeren nur fuer jemanden interessant, der etwas anderes vorhat.
|
||||
no-tcp-relay
|
||||
|
||||
# --- Grenzen gegen Missbrauch ------------------------------------------
|
||||
# Falls Zugangsdaten doch einmal abhandenkommen, kostet es Bandbreite,
|
||||
# keine Rechnung ohne Ende. 12 gleichzeitige Weiterleitungen je Person
|
||||
# reichen fuer eine Vierergruppe mit Ton und Bild deutlich.
|
||||
user-quota=12
|
||||
total-quota=100
|
||||
max-bps=3000000
|
||||
|
||||
# --- Die eingebaute Fernsteuerung bleibt aus ---------------------------
|
||||
# coturn oeffnet sonst auf 127.0.0.1:5766 eine Verwaltungskonsole. Sie
|
||||
# wird hier nicht gebraucht, und ein offener Verwaltungszugang, den
|
||||
# niemand benutzt, faellt auch niemandem auf.
|
||||
no-cli
|
||||
|
||||
# --- Protokoll ---------------------------------------------------------
|
||||
# In das Systemprotokoll statt in eine eigene Datei: Damit wird es
|
||||
# mitgedreht und laeuft nicht voll. Bewusst OHNE `verbose` - ein
|
||||
# ausfuehrliches Protokoll eines Vermittlungsservers ist eine Liste,
|
||||
# wer wann mit wem telefoniert hat.
|
||||
syslog
|
||||
simple-log
|
||||
|
||||
# Hilft Gegenstellen, die Pakete zuzuordnen; kostet nichts.
|
||||
fingerprint
|
||||
|
||||
# --- Das gemeinsame Geheimnis wird unten angehaengt --------------------
|
||||
Reference in New Issue
Block a user