Ein neuerer Artikel existiert:
Voraussetzung: coturn läuft auf einem eigenen Server
Videochats oder Chats mit der Familie – alles mit Ihrer privaten Nextcloud auf Ihrem Server. Zögern Sie nicht länger und zeigen Sie WhatsApp, Skype und Anderen, wie sichere Kommunikation ganz einfach funktioniert.
Wechseln Sie zuerst in den priviligierten Benutzermodus (sudo -s) und beginnen dann mit der Installation eines stun-/coturn-Servers auf einem separaten Server, um auch Gespräche von Teilnehmern hinter NAT-Infrastrukturen verlässlich zustande kommen zu lassen.
Unter Debian und Ubuntu ist dafür das Paket coturn als STUN/TURN-Server verfügbar.
sudo -s
apt install coturn -y
Passen Sie die Konfiguration an:
nano /etc/default/coturn
Entfernen Sie die Raute ‚#‘ am Anfang der Zeile „TURNSERVER_ENABLED=1“
#
# Uncomment it if you want to have the turnserver running as
# an automatic system service daemon
#
TURNSERVER_ENABLED=1
Speichern und schließen Sie diese Datei und erzeugen dann eine neu Konfigurationsdatei namens turnserver.conf:
mv /etc/turnserver.conf /etc/turnserver.conf.bak && nano /etc/turnserver.conf
Generieren Sie das dhparam-file:
mkdir -p /etc/turnserver openssl dhparam -dsaparam -out /etc/turnserver/dhp.pem 4096
Kopieren Sie alle nachfolgenden Zeilen hinein. Achten Sie darauf, dass wir davon ausgehen, die Let’s Encrypt-Zertifikate unter /etc/letsencrypt/rsa-certs/… vorzufinden. Passen Sie die Pfade bei Bedarf an:
tls-listening-port=443 listening-ip=<ihre IPv4> listening-ip=<ihre IPv6> relay-ip=<ihre IPv4> relay-ip=<ihre IPv6> min-port=32769 max-port=65535 verbose fingerprint use-auth-secret static-auth-secret=1212121212121212121212121212121212121212121212121212121212121212 realm=coturn.domain.de cert=/etc/letsencrypt/rsa-certs/fullchain.pem pkey=/etc/letsencrypt/rsa-certs/privkey.pem cipher-list="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" dh-file=/etc/turnserver/dhp.pem keep-address-family no-cli no-tlsv1 no-tlsv1_1 no-multicast-peers denied-peer-ip=10.0.0.0-10.255.255.255 denied-peer-ip=172.16.0.0-172.31.255.255 denied-peer-ip=192.168.0.0-192.168.255.255 denied-peer-ip=100.64.0.0-100.127.255.255 denied-peer-ip=169.254.0.0-169.254.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=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=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff denied-peer-ip=::ffff:0:0-::ffff:ffff:ffff denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff denied-peer-ip=64:ff9b:1::-64:ff9b:1:ffff:ffff:ffff:ffff:ffff denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff denied-peer-ip=2001:db8::-2001:db8:ffff:ffff:ffff:ffff:ffff:ffff denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
Speichern und schließen Sie diese Datei und generieren dann ein neues „Secret“:
openssl rand -hex 32
Öffnen Sie die Datei erneut
nano /etc/turnserver.conf
und ersetzen sowohl
static-auth-secret 1212121212121212121212121212121212121212121212121212121212121212
mit dem zuvor neu generierten Secret, als auch den Dummy-Eintrag coturn.domain.de, IPv4 und IPv6 mit Ihrer „echten“ Domain-URL. Öffnen Sie den Port 443/tcp und 443/udp in Ihrer UFW (Firewall)
ufw allow 443/tcp && ufw allow 443/udp
Passen Sie noch den Service an, um den priviligierten Port 443 nutzen zu können:
mkdir -p /etc/systemd/system/coturn.service.d
nano /etc/systemd/system/coturn.service.d/override.conf
[Service] LimitNOFILE=1048576 AmbientCapabilities=CAP_NET_BIND_SERVICE ExecStart= ExecStart=/usr/bin/turnserver -c /etc/turnserver.conf --pidfile /run/turnserver/turnserver.pid --no-stdout-log --simple-log --log-file /var/log/turnserver/turnserver.log Restart=always
Richten wir abschließend noch das Logrotating ein:
nano /etc/logrotate.d/coturn
Fügen Sie den nachfolgenden Text in die leere Datei ein:
/var/log/turnserver/*.log { rotate 7 daily missingok notifempty compress postrotate /bin/systemctl kill -s HUP coturn.service endscript }
Erstellen Sie nun das Logverzeichnis und setzen die korrekten Berechtigungen:
mkdir -p /var/log/turnserver chown turnserver:turnserver /var/log/turnserver
Starten Sie coturn neu:
service coturn restart
Überprüfen Sie ihren stun-/coturn-Server hier. Fügen Sie, wie im Beispiel dargestellt, anstatt des Beispiels „stun:coturn.domain.de:443“ ihren Domainnamen und Port ein.
Werden Ihnen Einträge vom Typ „srflx“ und in der Spalte ‚Priority‘ in der letzten Zeile „Done“ angezeigt, so funktioniert ihr coturn einwandfrei. Wechseln Sie dann in Ihre Nextcloud und aktivieren als Administrator die Nextcloud-Talk-App:
Fügen Sie bei STUN-Server Ihren eigenen hinzu:
coturn.domain.de:443
Ersetzen Sie dabei coturn.domain.de durch ihren richtigen Domainnamen.
Fügen Sie bei TURN-Server ebenfalls ihren coturn-Server hinzu und tragen das zuvor generierte coturn-Secret ein. Wählen Sie dabei sowohl „tunr und turns“, als auch „UDP und TCP“ für die Kommunikation aus:
turn und turns | coturn.domain.de:443 | 12121...12122 | UDP und TCP
Nextcloud weist leider nur sehr versteckt darauf hin, dass ab ca. vier gleichzeitigen Teilnehmern ein zusätzlicher „Signaling Server“ notwendig wird, der wiederum kostenpflichtig bei Nextcloud zu erwerben ist oder gemäß meiner Nextcloud-HPB (Signaling)-Anleitung installiert werden kann.
Werfen Sie zudem auch einen Blick auf meinen Jitsi-Meet oder BigBlueButton-Guide.
Die Installation und das Einbinden von Nextcloud Talk wurde damit bereits erfolgreich abgeschlossen. Daher wünsche ich Ihnen viel Spaß mit Ihren Daten in Ihrer privaten Cloud. Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen!