Coturn ist ein "Turn-" und "Stun-Server", der z.B. für VoIP verwendet werden kann. Es ermöglicht Ihnen, eine Verbindung zwischen Clients herzustellen, die sich hinter einem NAT oder in verschiedenen Netzwerken befinden.
Daten können dann über diese von Ihrem "Turn"-Server hergestellte Verbindung gesendet werden.
Coturn kann auch mit "NextCloud" oder "Matrix-Server" verwendet werden.
Laden Sie "coturn" herunter und kompilieren Sie es
Gehen Sie in den Ordner "/usr/local/":
cd /usr/local
Laden Sie die neueste Version herunter (empfohlen)
https://github.com/coturn/coturn/releases
Alternative: Sie können stattdessen auch "coturn" aus der Entwicklungsversion erzeugen, wenn Sie die Software testen wollen.
git clone https://github.com/coturn/coturn.git
Entpacken Sie den Ordner "coturn" (falls Sie die "coturn"-Version als Zip-Datei heruntergeladen haben).
Gehen Sie bitte in Ihren "coturn"-Ordner und kompilieren Sie die Anwendung.
cd coturn
./configure
make && make install
Bitte erstellen Sie einen Ordner für die Log-Dateien
mkdir /var/log/turn
Konfigurieren Sie die Datei "/etc/turnserver.conf".
Sie können die Konfigurationsdatei turnserver.conf verwenden, die in Ihrem heruntergeladenen Github-Repository-Ordner ("coturn/examples/etc") verfügbar ist.
Dieses Tutorial verwendet jedoch eine angepasste Konfigurationsdatei turnserver.conf, die von diesem Github-Repository heruntergeladen werden kann:
https://github.com/a-dridi/Linux_config-files/blob/master/turnserver/turnserver.conf
vim /etc/turnserver.conf
Bearbeiten Sie die Einstellungen und passen Sie den Abschnitt Wichtige Einstellungen an Ihre Serverumgebung an.
Bitte definieren Sie auch ein "static-auth-secret", welches das Passwort für den Zugang zum Turn-Server ist und z.B. vom Matrix-Server verwendet werden kann.
Konfigurieren Sie Ihren Turn-Server über die Datei "/etc/turnserver.conf".
Eine Vorlagenversion (turnserver.conf.default) ist in dem Ordner verfügbar, in dem sich Ihr Installationsordner befindet.
Eine Beispielkonfiguration:
listening-port=3478
tls-listening-port=5349
proc-user=turnserver
proc-group=turnserver
use-auth-secret
static-auth-secret=MY_PASSWORD_SECRET
realm=matrix.myserver.tld
#for debugging:
#verbose
fingerprint
# special case the turn server itself so that client->TURN->TURN->client flows work
allowed-peer-ip=10.0.0.1
#Security
#to avoid risk of DoS
# 200 Simultaneous relayed calls
total-quota=200
# consider whether you want to limit the quota of relayed streams per user (or total) to avoid risk of DoS.
user-quota=12 # 4 streams per video call, so 12 streams = 3 simultaneous relayed calls per user.
#Relay Ports: Opened Port range in accord with UFW Firewall
min-port=49152
max-port=49157
cert=/etc/turnserver-ssl/fullchain.pem
pkey=/etc/turnserver-ssl/privkey.pem
# Flag that can be used to disallow peers on the loopback addresses (127.x.x.x and ::1).
# This is an extra security measure.
#
no-loopback-peers
# Flag that can be used to disallow peers on well-known broadcast addresses (224.0.0.0 and above, and FFXX:*).
# This is an extra security measure.
#
no-multicast-peers
Aktivieren Sie "coturn"
vim /etc/default/coturn
TURNSERVER_ENABLED=1
Bitte richten Sie auch einen "coturn"-Service ein
vim /etc/systemd/system/coturn.service
[Unit]
Description=coturn
Documentation=man:coturn(1) man:turnadmin(1) man:turnserver(1)
After=syslog.target network.target
[Service]
Type=forking
User=turnserver
Group=turnserver
RuntimeDirectory=turnserver
RuntimeDirectoryMode=0750
EnvironmentFile=/etc/default/coturn
PIDFile=/run/turnserver/turnserver.pid
ExecStart=/usr/local/coturn/bin/turnserver --daemon --pidfile /run/turnserver/turnserver.pid --syslog -c /etc/turnserver.conf $EXTRA_OPTIONS
Restart=on-abort
LimitCORE=infinity
LimitNOFILE=1000000
LimitNPROC=60000
LimitRTPRIO=infinity
LimitRTTIME=7000000
CPUSchedulingPolicy=other
UMask=0007
[Install]
WantedBy=multi-user.target
Aktivieren Sie nun den erstellten Service
systemctl enable coturn
Erstellen Sie den Benutzer "turnserver" für dieses Programm
useradd -d /usr/local/coturn/bin/turnserver -s /bin/false turnserver
chown turnserver:turnserver -R /usr/local/coturn
Starten "coturn" neu
service coturn restart
Jetzt können Sie den "coturn"-Server benutzen. Sie können auf ihn über die definierten Ports und die öffentliche Server-IP zugreifen. In diesem Beispiel ist es der Port "3478".
Coturn
https://github.com/coturn/coturn