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 |