Menu

<< | Zurück

Coturn im Docker

 

Turn Server wird zum Beispiel für Nextcloud Talk Verwendet auch für Openfire (Chat Server). Installation wird in zwei Schritten ausgeführt. Im 1. Schritt wird Debian Docker installiert danach wird in diesem Container Cotrun installiert. Da es für mich im Moment keinen optimalen Coturn Docker gibt habe ich mich für diesen Weg endschieden. 2. Schritt geht es um zwei Konfigurationsdateien die angepasst werden müssen. In dieser Installation werden selbstsignierte Zertifikate verwendet. Diese werden in der Installation generieret. Am Schluss können diese beide Zertifikate mit Öffentliche (z. B Let’s Encrypt)  ausgetauscht werden datzu muss in den Konfiguration nur der Pfad angepasst werden. In meinem Fall generiere ich die Zertifikate für turn.meineDomäne.ch und stun.meineDomäne.ch auf dem Proxymanager und kopiere diese beide Verzechnisse im Container auf dem Coturn Server. Danach Coturn Konfiguratiosdatei anpassen.

 

Folgende Porte werden im Container verwendet
Turn Server 5349 UDP & TCP
Turn Server 3478 UDP & TCP
Webmin Server *10000 TCP
*In meinem Beispiel müsste ich 10010:10000 nehmen. Einen andereen Port als 10000 weil ich mehrere Container habe und in jedem Container läuft  ein Webmin Server. Links von : ist Zugriff auf Container, rechts von : ist Webmin Dienst im Container. Das heisst Webmin lauscht im Container auf Port 10000,  von aussen ist der Dienst aber über 10010 erreeichbar. 10010 wird auf 10000 gelegt so können auf dem gleichen Docker Server mehrere Conatiner mit Webmin ausgeführt werden. Weil der Port 10000 durch den ersten container verwendet wird.

 

1. Schritt Debian Docker danach Coturn installieren
#
# Debian Docker installieren
@docker run --name debian-buster-slim \
    -p 5349:5349 -p 5349:5349/udp \
    -p 3478:3478 -p 3478:3478/udp \
    -p 10000:10000 \
    -h 10-slim \
    -e LANG=de_CH.UTF-8 \
    -it debian:10-slim \
    /bin/bash -l
#
#### Coturn installieren
@apt-get install coturn
@systemctl stop coturn
#
#### Selbstsignierte Zertifikate erstellen
@mkdir /etc/ssl
@cd /etc/ssl
@openssl genrsa -out sslcert-Hostname.key 2048
@openssl req -new -key sslcert-Hostname.key -out sslcert-Hostname.csr
@openssl x509 -req -days 20000 -in sslcert-Hostname.csr -signkey sslcert-Hostname.key -out sslcert-Hostname.crt
#
#### Zusätzlich dhparam erstellen
@openssl dhparam -out /etc/ssl/dhparam.pem 4096
#
#### Erstellte Zertifikate im ssl verzeichnis
- sslcert-Hostname.crt
- sslcert-Hostname.key
#
#### Bezüglich dem neuen Container folgendes ausführen
#
#### rsyslog installieren
@sudo apt-get install rsyslog
@sudo systemctl restart rsyslog
#
#### NTP installren
@apt-get install ntp
#
#### Zeit einstellen, 8 für Europa und 63 für Zürich
@dpkg-reconfigure tzdata
#
#### Weitere Tools
#
@apt-get update & apt-get upgrade
@apt-get install wget
@apt-get install curl
@apt-get install nano
@apt-get install net-tools
@apt-get install ntp
@apt-get install sudo
@apt-get install systemctl
# root passwort setzen
@passwd root
#
#### Bezüglich Webmin hier nachschauen..
#

 

2. Schritt Beide Cotrurn Konfigurationsdateien anpasen, Dienst starten und überprüfen zum Beispiel im Nextcloud.
#
## 1. Coturn Konfigurationsdatei
## Folgende Zeilen einfügen. Einige gibt es schon und muss nur das Symbol # davor entfernt werden
#
@nano /etc/turnserver.conf
#
# ################################### Datei Inhalt ###############
#
listening-port=3478
tls-listening-port=5349
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=meinenToken
realm=hostname.meineDomäne.ch
total-quota=100
stale-nonce=600
cert=/etc/ssl/sslcert-Hostname.crt
pkey=/etc/ssl/sslcert-Hostname.key
dh-file=/etc/ssl/dhparam.pem
cipher-list="ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384"
no-sslv3
no-tlsv1
no-tlsv1_1
#no-tlsv1_2
dh2066
no-stdout-log
log-file=/var/tmp/turn.log
#log-file=/dev/null
no-loopback-peers
no-multicast-peers
proc-user=turnserver
proc-group=turnserver
#
# #################################### Datei Inhalt ENDE###########
#
#### 2. Coturn Konfigurationsdatei
@nano /etc/default/coturn
#### Symbol # davor entfernen um zu aktivieren
TURNSERVER_ENABLED=1
#
#### Dienst aktiviere nund starten
#### evtl. vorher systemctl installieren
@systemctl start coturn
@systemctl status coturn
#
#### Im Nextcloud testen..
#

 

DNS Eintragen beim Domänhostanbieter

 

Für diesen Coturn Container werden DNS (A & SRV) und Firewall Einträge benötigt.

 

DNS Einträge beim IPV

 

Firewall Einträge.

 

Damit ich im LAN Zugriff auf Dienst habe über öffentliche DNS Name ohne weiter als der Router zu gehen also vom Ziel wieder zurück verwende ich zusätzlich Hairpinning (NAT Loopback).

 

Firewall Einträge bezüglich den Internet Gateway Router