STUN/TURN für Nextcloud Talk und PairDrop

CoMo

Captain
Registriert
Dez. 2015
Beiträge
3.130
Hallo,

ich betreibe eine Nextcloud-Instanz inkl. Nextcloud Talk und habe dafür einen coturn Server eingerichtet. Die Konfiguration sieht so aus:

Code:
# Coturn TURN SERVER configuration file
#

fingerprint
use-auth-secret
static-auth-secret=<mein-secret>
realm=turn.<meinedomain>.de
total-quota=0
bps-capacity=0
stale-nonce
no-multicast-peers
external-ip=88.XX.XX.XX
external-ip=2a01:4f8:XXX:XXX:XXX:XXX:XXX:XXX
verbose

# Boolean values note: where a boolean value is supposed to be used,
# you can use '0', 'off', 'no', 'false', or 'f' as 'false,
# and you can use '1', 'on', 'yes', 'true', or 't' as 'true'
# If the value is missing, then it means 'true' by default.
#

# Listener interface device (optional, Linux only).
# NOT RECOMMENDED.
#
#listening-device=eth0

# TURN listener port for UDP and TCP (Default: 3478).
# Note: actually, TLS & DTLS sessions can connect to the
# "plain" TCP & UDP port(s), too - if allowed by configuration.
#
listening-port=3478

Das funktioniert. Ich habe lange dran rumbasteln müssen, nun sagt mir der Check in der Nextcloud Admin-UI, dass alles funktioniert und ich habe das mit einem Call getestet. Läuft.

Nun möchte ich einen PairDrop Server konfigurieren und dafür meinen bereits laufenden coturn nutzen.

PairDrop möchte Benutzername und Kennwort:

Code:
root@pairdrop:/opt/pairdrop# cat rtc_config_example.json
{
  "sdpSemantics": "unified-plan",
  "iceServers": [
    {
      "urls": "stun:<DOMAIN>:3478"
    },
    {
      "urls": "turns:<DOMAIN>:5349",
      "username": "username",
      "credential": "password"
    }
  ]
}

Die Coturn Doku sagt zu --use-auth-secret


Code:
--use-auth-secret    TURN REST API flag.
            Flag that sets a special WebRTC authorization option
            that is based upon authentication secret. The feature purpose
            is to support "TURN Server REST API" as described in
            the TURN REST API section below.
            This option uses timestamp as part of combined username:
            usercombo -> "timestamp:username",
            turn user -> usercombo,
            turn password -> base64(hmac(input_buffer = usercombo, key = shared-secret)).
            This allows TURN credentials to be accounted for a specific user id.
            If you don't have a suitable id, the timestamp alone can be used.
            This option is just turns on secret-based authentication.
            The actual value of the secret is defined either by option static-auth-secret,
            or can be found in the turn_secret table in the database.

Kapier ich nicht. Wie soll das funktionieren, wenn ich den Benutzernamen aus dem Timestamp generiere? Was muss ich da nun in der PairDrop Config eintragen?
 
Wenn du use-auth-secret in Coturn aktiviert hast, dann wird kein statischer Benutzername/Passwort für TURN-Anfragen verwendet. Stattdessen nutzt Coturn das TURN REST API-Verfahren. Check das mal aus, ob du damit weiterkommsr :)
 
Zurück
Oben