Nextcloud, Talk, TURN-Server, coTurn, Ports, Strato

Was man hier eintragen soll steht in der Konfigurationsdatei von Coturn in den Kommentaren.

:wink:

Eventuell solltest Du Dir das nochmal durchlesen:


Speziell der Teil, wie Du Deinen turnserver testen kannst: " How to test my TURN Server"
Du kommst dann auf diese Seite:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
Dort nur ‘STUN or TURN URI’ füllen, aber nicht TURN username und TURN passwort.
Dann ‘Gather candidates’ klicken. Das zeigt Dir zumindest ob Dein turnserver funktioniert:

Time Component Type Foundation Protocol Address Port Priority
0.003 1 host 0 udp 7911398d-0ba6-4f20-bb50-dfb8c7834ada.local 54537 126 | 32512 | 255
0.004 1 host 2 tcp 7911398d-0ba6-4f20-bb50-dfb8c7834ada.local 9 125 | 32704 | 255
0.005 2 host 0 udp 7911398d-0ba6-4f20-bb50-dfb8c7834ada.local 38148 126 | 32512 | 254
0.005 2 host 2 tcp 7911398d-0ba6-4f20-bb50-dfb8c7834ada.local 9 125 | 32704 | 254
0.027 1 srflx 1 udp xx.xx.25.174 54537 100 | 32543 | 255
0.047 2 srflx 1 udp xx.xx.25.174 38148 100 | 32543 | 254
0.047

1 Like

@peteman52 Sieht bei mir anders aus. Tu mir aber schwer, dass zu deuten.

Time Component Type Foundation Protocol Address Port Priority
0.064 1 srflx 1 udp XX.XX.200.57 36504 100 | 32287 | 255
0.113 1 srflx 3 udp 2003:c5:9715:ec00:e945:7d5:92da:87b4 59379 100 | 32543 | 255
0.117 2 srflx 1 udp XX.XX.200.57 46225 100 | 32287 | 254
0.127 2 srflx 3 udp 2003:c5:9715:ec00:e945:7d5:92da:87b4 43046 100 | 32543 | 254
0.146 Done

#The default realm to be used for the users when no explicit
#origin/realm relationship was found in the database, or if the TURN
#server is not using any database (just the commands-line settings
#and the userdb file). Must be used with long-term credentials
#mechanism or with TURN REST API.

Hilft mir nicht wirklich weiter, da ich das nicht und auch nicht weiß, wie ich es rauskriege.

Ich den verschiedenen Anleitungen steht realm=your.domain.org

Welche Domain ist hier gemeint, die von Nextcloud oder die des TURN-Servers (coturn)?

Nach meinem Verständnis ist es egal was Du dort setzt solange der Server und die Klienten den gleichen String beim Verbindungsaufbau nutzen. Gemäß dem Coturn-Wiki handelt es sich um ein Element um die Zugehörigkeit von Klienten zu einem Server einzuschränken. D.h. nur Klienten die die gleiche Realm nutzen können über den Server miteinander kommunizieren.

Da im umgekehrten Fall der –server-name-Parameter für die oAuth-Authentifizierung standardmäßig aus dem Realm hergeleitet wird, würde ich hier den FQDN des Coturn-Servers setzen.

1 Like

Habe in o.g. Anleitung wie auch von @j-ed beschrieben folgenden Hinweis zu realm gefunden:

#realm=mycompany.org
then uncomment and change it to the FQDN of the TURN server
realm=xxxxx.netways.de

Habe jetzt geändert zu:
realm=XXXX.stratoserver.net

Ergebnis:
Unmittelbar nach sudo systemctl restart coturn -> active (running)
Kurz danach -> active (exited)

Vielen Dank erstmal an alle, die mir bisher geholfen haben.

Leider steht coturn noch immer auf active (exited)

Inhalt der turnserver.conf ist:
listening-port=3478
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=test
realm=XXXX.stratoserver.net #Server, auf dem coturn läuft
total-quota=100
bps-capacity=0
stale-nonce
no-loopback-peers
no-multicast-peers

sudo iptables -L -n | grep 3478
ACCEPT udp – 0.0.0.0/0 0.0.0.0/0 udp dpt:3478
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:3478

nmap XXXX.stratoserver.net
Starting Nmap 7.60 ( https://nmap.org ) at 2020-05-14 00:09 CEST
Nmap scan report for XXXX.stratoserver.net (XX.XXX.XXX.XXX)
Host is up (0.017s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
9876/tcp filtered sd
Nmap done: 1 IP address (1 host up) scanned in 1.55 seconds

Kann mir jemand bei folgenden Fragen helfen:

  1. Kann Port 3478 die Ursache sein?
    Müsste der Port auch bei nicht laufendem coturn [active (exited)] offen sein?
    D.h., würde der Port durch ein laufendes/lauschendes coturn offen gehalten?

  2. Wo finde ich Informationen darüber, was zum Abbruch (exited) von coturn führt? In den üblichen Logs finde ich keinen Hinweis.
    /var/log/syslog
    /var/log/turn_…log

In einem anderen Forum fand ich noch folgenden Hinweis: “State active (exited) means that systemd has successfully run the commands but that it does not know there is a daemon to monitor.”

Vielleicht weil der nicht vollständig konfiguriert ist? Bei dir fehlt ja TLS und das CLI.

Die deiner Nextcloud-Instanz, also sowas wie sub.domain.xx

Ich habe mich an der Anleitung von Nextcloud orientiert:
https://nextcloud-talk.readthedocs.io/en/latest/TURN/

TLS-Konfiguration habe ich aufgrund des folgenden Hinweises weggelassen:

Eine Konfiguration von CLI wurde in der Anleitung nicht angesprochen, daher habe ich sie ebenfalls weggelassen.

Wie weiter oben beschrieben:

Ich denke Du solltest es einmal mit folgender Konfiguration versuchen. Da Du kein CLI-Kennwort gesetzt hast, ist meines Erachtens aber mindestens ein “no-cli” erforderlich um die Fehlermeldung zu vermeiden. Da Nextcloud meines Wissens keine TLS-Verbindungen unterstützt, habe ich darüber hinaus noch “no-tlsv1” gesetzt.

listening-port=3478
fingerprint
use-auth-secret
static-auth-secret=<AUTH-SECRET>
server-name=<FQDN-DES-SERVERS>
userdb=/var/lib/coturn/turnuser.db
realm=<FQDN-DES-SERVERS>
total-quota=100
bps-capacity=0
stale-nonce
no-stdout-log
log-file=/var/log/turnserver.log
simple-log
no-multicast-peers
pidfile=/run/turnserver.pid
no-cli
no-tlsv1

Der Aufruf erfolgt dann wie folgt (Da Coturn scheinbar nicht alle Parameter aus der Konfiguration sofort übernimmt, waren zusätzlichen Kommandozeilenparameter erforderlich):

/usr/bin/turnserver -c /etc/coturn/turnserver.conf --daemon --simple-log --log-file=/var/log/turnserver.log

Guten Tag, ich habe ebenfalls das selbe Problem und habe auch einen Server bei Strato. Ich habe nun meinen Server, meinen NextcloudServer, sowie Coturn mehrfach neu aufgesetzt (mittels verschiedener Anleitungen) ohne irgendwelche Aussichten auf Erfolg. Anders als du habe ich Tls konfiguriert und benutze eine Subdomain. Kann es vielleicht an irgendwelchen Dependencies liegen, die fehlen?

Ich komme jetzt noch mal auf Deine syslog-Einträge für den turnserver zurück:
Meine Einträge sehen so ähnlich aus wie bei Dir, allerdings sehe ich meine letzten fünf Eintäge bei Dir nicht:
May 14 12:21:09 mpeUbuntuserver turnserver: 0: Total General servers: 4
May 14 12:21:09 mpeUbuntuserver turnserver: 0: IO method (auth thread): epoll (with changelist)
May 14 12:21:09 mpeUbuntuserver turnserver: 0: IO method (admin thread): epoll (with changelist)
May 14 12:21:09 mpeUbuntuserver turnserver: 0: IO method (auth thread): epoll (with changelist)
May 14 12:21:09 mpeUbuntuserver turnserver: 0: SQLite DB connection success: /var/lib/turn/turndb

Ich weiß nicht ob bei Ubuntu SQLite standardmäßig installiert ist. Ist SQLite bei Dir installiert?

Schade ich hatte Hoffnung, da es bei mir nicht installiert war habe es jetzt installiert und coturn neu gestartet, hat aber leider hinsichtlich des Status kein Erfolg gebracht.

Danke für den Hinweis, brachte aber leider keine Änderung. Ergebnis immer noch active (exited)

@peteman52
syslog zeigt bei mir nur Folgendes:
May 14 20:37:01 XXXX systemd[1]: Stopping LSB: coturn TURN Server…
May 14 20:37:01 XXXX coturn[3997]: * Stopping coturn turnserver
May 14 20:37:01 XXXX coturn[3997]: …done.
May 14 20:37:01 XXXX systemd[1]: Stopped LSB: coturn TURN Server.
May 14 20:37:01 XXXX coturn[4003]: * Starting coturn turnserver
May 14 20:37:01 XXXX systemd[1]: Starting LSB: coturn TURN Server…
May 14 20:37:02 XXXX coturn[4003]: …done.
May 14 20:37:02 XXXX systemd[1]: Started LSB: coturn TURN Server.

/var/log/turn_…log zeigt:
0: log file opened: /var/log/turn_3733_2020-05-14.log
0: pid file created: /var/run/turnserver.pid
0: IO method (main listener thread): epoll (with changelist)
0: Wait for relay ports initialization…
0: relay 127.0.0.1 initialization…
0: relay 127.0.0.1 initialization done
0: relay XX.XXX.XXX.XXX initialization…
0: relay XX.XXX.XXX.XXX initialization done
0: relay ::2 initialization…
0: relay ::2 initialization done
0: Relay ports initialization done
0: IO method (general relay thread): epoll (with changelist)
0: IO method (general relay thread): epoll (with changelist)
0: turn server id=7 created
0: IPv4. TCP listener opened on : 127.0.0.1:3478
0: IPv4. TCP listener opened on : 127.0.0.1:3479
0: IPv4. TCP listener opened on : XX.XXX.XXX.XXX:3478
0: IPv4. TCP listener opened on : XX.XXX.XXX.XXX:3479
0: IPv6. TCP listener opened on : ::1:3478
0: IPv6. TCP listener opened on : ::1:3479
0: IPv6. TCP listener opened on : ::2:3478
0: IPv6. TCP listener opened on : ::2:3479
0: IO method (general relay thread): epoll (with changelist)
0: turn server id=8 created
0: IPv4. TCP listener opened on : 127.0.0.1:3478
0: IPv4. TCP listener opened on : 127.0.0.1:3479
0: IPv4. TCP listener opened on : XX.XXX.XXX.XXX:3478
0: IPv4. TCP listener opened on : XX.XXX.XXX.XXX:3479
0: IPv6. TCP listener opened on : ::1:3478
0: IPv6. TCP listener opened on : ::1:3479
0: IPv6. TCP listener opened on : ::2:3478
0: IPv6. TCP listener opened on : ::2:3479
0: IO method (general relay thread): epoll (with changelist)
0: turn server id=9 created

0: IPv6. UDP listener opened on: ::2:3479
0: Total General servers: 48
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)
0: IO method (auth thread): epoll (with changelist)

@peteman52 Könntest du bitte einmal mit turnserver -o nachschauen welche Version von Coturn bei dir installiert ist. Mir ist gerade ausgefallen, dass er bei apt-get install coturn das Paket von einem Strato Server zieht und dass dieses Paket nun nicht gerade das neueste ist. Vielleicht bekommt man bei Strato einfach eine zu alte Version.

(Part 2, da ich nicht mehr antworten erstellen kann…)
@peteman52
Ist bei mir identisch. Wie sieht es mit Berechtigungen aus? Ich habe gerade das loglevel umgestellt und dann hat er mir ausgespuckt, dass er das dh-key file, das Zertifikatsfile und das Privatekey file nicht finden kann, obwohl sie an den angegebenen Orten liegen. Womit muss der Dienst ausgeführt werden, bzw. muss man da noch irgendwas mit den Berechtigungen machen?

@puck08 Dies sieht meines Erachtens doch schon nicht schlecht aus und entspricht etwa den Logzeilen meines Servers. Hast Du hier den Dienst manuell gestartet wie ich es empfohlen hatte?

turnserver -o :
Version Coturn-4.5.0.7 ‘dan Eider’

apt show -a turnserver:
Package: turnserver
Version: 0.7.3-6build1
Priority: extra
Section: universe/net
Origin: Ubuntu
Maintainer: Ubuntu Developers ubuntu-devel-discuss@lists.ubuntu.com
Original-Maintainer: Debian QA Group packages@qa.debian.org
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 142 kB
Depends: libc6 (>= 2.15), libconfuse2 (>= 3.2.1~), libssl1.0.0 (>= 1.0.0), adduser
Homepage: http://www.turnserver.org/
Download-Size: 48,8 kB
APT-Sources: http://de.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
Description: server for ICE/STUN/TURN, NAT traversal for SIP and Jabber
TURN server developed by the team behind Jitsi. TURN (RFC 5766)
provides a standardised solution for VoIP applications
to find the most efficient way to route media streams when NAT and
firewall devices may be present.
.
The TurnServer project aims to be compliant with the TURN and STUN
Request For Comments (respectively RFC 5766 and RFC 5389). It also
support RFC 6156 namely TURN-IPV6 (relay between IPv4-IPv6, IPv6-IPv4
and IPv6-IPv6 addresses) and RFC 6062 namely TURN-TCP (relay data with
TCP).

Same same bei mir

Als hauptsächlichen Unterschied zu mir sehe ich an, daß Du ohne SSL arbeitest, bin aber immer davon ausgegangen, daß das nicht notwendig ist, aber das mag ja ein Irrtum sein:
Nextcloud talk is not working without SSL.
Außerdem sehe ich bei Dir keinen Zugriff auf SQLite.