Liebe Community
ich betreibe eine grommunio-Installation mit aktiviertem grommunio Meet und möchte die TURN-Konfiguration sauber in Betrieb nehmen.
Aktuell ist folgender Jitsi-/Prosody-Stack installiert:
jitsi-jibri-2.0.11031-lp156.3.1.noarch
jitsi-jicofo-2.0.11031-lp156.2.1.noarch
jitsi-jigasi-2.0.11031-lp156.3.1.x86_64
jitsi-meet-2.0.11031-lp156.61.9.noarch
jitsi-meet-branding-grommunio-2.0.11031-lp156.1.1.noarch
jitsi-meet-prosody-plugins-2.0.10532-lp156.47.29.noarch
jitsi-videobridge-2.0.11031-lp156.12.1.noarch
prosody-0.11.13-bp156.3.40.x86_64
Die relevante Prosody-Konfiguration befindet sich unter:
/etc/prosody/conf.d/collab.huser-it.ch.cfg.lua
Darin ist bereits folgender auskommentierter Beispielblock vorhanden:
-- configuration with external TURN service with authentication (coturn for example)
--external_service_secret = "averylongturnsecret";
--external_services = {
-- { type = "stun", host = "turn.example.com", port = 3478 },
-- { type = "turn", host = "turn.example.com", port = 443, transport = "udp", secret = true, ttl = 86400, algorithm = "turn" },
-- { type = "turns", host = "turn.example.com", port = 443, transport = "tcp", secret = true, ttl = 86400, algorithm = "turn" }
--};
1. Verwendung des offiziellen grommunio TURN-Servers
Gemäss den aktuellen Release-Informationen stellt grommunio mit turn.grommun.io einen zentral verwalteten TURN-Relay zur Verfügung.
Ich habe bisher jedoch keine vollständige technische Anleitung gefunden, wie dieser Relay bei einer bestehenden Installation aktiviert werden muss.
Meine Fragen dazu:
- Muss
turn.grommun.io manuell im vorhandenen external_services-Block eingetragen werden?
- Welche Ports und Transportarten sollen verwendet werden?
- Wird UDP ebenfalls über Port 443 angeboten oder nur TURN/TLS über TCP 443?
- Wie erfolgt die Authentisierung gegenüber
turn.grommun.io?
- Wird dafür ein installationsspezifisches
external_service_secret benötigt?
- Falls ja: Wo wird dieses Secret erzeugt oder hinterlegt?
- Wird die Konfiguration normalerweise automatisch durch
grommunio-setup oder ein Paketupdate ergänzt?
- Gibt es eine Möglichkeit zu prüfen, ob meine Installation für die Nutzung des grommunio TURN-Relays registriert oder freigeschaltet ist?
- Gibt es eine offizielle Beispielkonfiguration für Prosody?
Eine Suche nach bestehenden TURN-Einträgen liefert bei mir nur den auskommentierten Beispielblock:
grep -RniE 'turn\.grommun\.io|turn:|turns:|external_services|turncredentials' \
/etc/prosody /etc/jitsi /etc/grommunio* 2>/dev/null
Ich wäre dankbar, wenn jemand eine funktionierende Konfiguration für turn.grommun.io teilen könnte oder erklären könnte, welcher Setup-Schritt bei einer bestehenden Installation fehlt.
2. Späterer Betrieb eines eigenen TURN-Servers
Mittelfristig möchte ich vermutlich einen eigenen coturn-Server betreiben.
Dabei interessieren mich insbesondere folgende Punkte:
- Kann/sollte coturn direkt auf dem grommunio-Server installiert werden?
- Gibt es Konflikte mit bestehenden Diensten, insbesondere bei Port 443?
- Ist ein separater kleiner Server oder eine eigene VM klar zu bevorzugen?
- Kann coturn hinter derselben öffentlichen IP wie grommunio betrieben werden?
- Ist für TURN über TCP/TLS 443 zwingend eine separate öffentliche IP nötig?
- Welche Ports sollten optimalerweise angeboten werden?
- Welche UDP-Port-Range wird für die Relay-Verbindungen empfohlen?
- Welche Firewall- und NAT-Regeln sind erforderlich?
- Welches Zertifikat sollte für TURN/TLS verwendet werden?
- Wie wird coturn korrekt mit Prosody und
external_service_secret verbunden?
- Welche Einstellungen sind für eine sichere Konfiguration zwingend?
- Wie kann die Funktion anschliessend zuverlässig getestet werden?
Mein bisheriges Verständnis wäre ungefähr folgende Prosody-Konfiguration:
external_service_secret = "EIN_SEHR_LANGES_ZUFAELLIGES_SECRET";
external_services = {
{
type = "stun",
host = "turn.example.com",
port = 3478
},
{
type = "turn",
host = "turn.example.com",
port = 3478,
transport = "udp",
secret = true,
ttl = 86400,
algorithm = "turn"
},
{
type = "turns",
host = "turn.example.com",
port = 443,
transport = "tcp",
secret = true,
ttl = 86400,
algorithm = "turn"
}
};
Auf dem coturn-Server entsprechend beispielsweise:
use-auth-secret
static-auth-secret=EIN_SEHR_LANGES_ZUFAELLIGES_SECRET
realm=turn.example.com
listening-port=3478
tls-listening-port=443
fingerprint
no-multicast-peers
Bei einem Betrieb hinter NAT vermutlich zusätzlich:
external-ip=OEFFENTLICHE_IP/INTERNE_IP
Mir ist bewusst, dass noch weitere Einstellungen nötig sein dürften, beispielsweise Zertifikatspfade, Relay-Portbereiche, Logging, Absicherung und Firewall-Regeln.
Gesuchte Unterstützung
Optimal wäre eine möglichst vollständige Schritt-für-Schritt-Anleitung für beide Varianten:
- Bestehende grommunio-Installation mit
turn.grommun.io verbinden
- Eigenen coturn-Server für grommunio Meet aufbauen
Besonders hilfreich wären dabei:
- vollständige Prosody-Konfiguration
- vollständige coturn-Konfiguration
- benötigte DNS-Einträge
- erforderliche Firewall- und NAT-Regeln
- benötigte Dienste und Neustarts
- Testverfahren für STUN, TURN und TURN/TLS
- Hinweise zu typischen Fehlern
- Empfehlung, ob coturn lokal auf grommunio oder besser dediziert betrieben werden sollte
Vielen Dank für eure Unterstützung und für funktionierende Konfigurationsbeispiele.