Coturn est un serveur "turn" et "stun" qui peut être utilisé pour, par exemple VoIP. Il permet de créer une connexion entre des clients qui se trouvent derrière un NAT ou dans des réseaux différents.
Les données peuvent ensuite être envoyées par le biais de cette connexion créée par votre serveur "de tour".
Coturn peut également être utilisé avec "NextCloud" ou "Matrix server".
Télécharger et compiler "coturn"
Allez dans le dossier "/usr/local/" :
cd /usr/local
Télécharger la dernière version (recommandé)
https://github.com/coturn/coturn/releases
Alternative: Vous pouvez également créer un "tour" à partir de la version de développement, si vous souhaitez tester le logiciel.
git clone https://github.com/coturn/coturn.git
Extrayez le dossier "coturn" (si vous avez téléchargé la version "coturn" sous forme de fichier zip).
Allez dans votre dossier "coturn" et compilez l'application.
cd coturn
./configure
make && make install
Veuillez créer un dossier pour les fichiers journaux
mkdir /var/log/turn
Configurer le fichier "/etc/turnserver.conf"
Vous pouvez utiliser le fichier de configuration turnserver.conf, qui est disponible dans le dossier de votre dépôt github téléchargé ("coturn/examples/etc").
Ce tutoriel utilise cependant un fichier de configuration personnalisé, turnerver.conf, qui peut être téléchargé à partir de ce dépôt Github :
https://github.com/a-dridi/Linux_config-files/blob/master/turnserver/turnserver.conf
vim /etc/turnserver.conf
Modifiez les paramètres et adaptez la section des paramètres importants à l'environnement de votre serveur.
Veuillez également définir un "static-auth-secret" qui est le mot de passe pour accéder au serveur de tour et qui peut être utilisé par exemple par le serveur Matrix.
Configurez votre serveur de tour par le biais du fichier "/etc/turnserver.conf".
Une version modèle (turnserver.conf.default) est disponible dans le dossier où se trouve votre dossier d'installation.
Un exemple de configuration:
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
Activer la "coturn".
vim /etc/default/coturn
TURNSERVER_ENABLED=1
Veuillez également mettre en place un service de "coturn".
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
Activez maintenant le service créé
systemctl enable coturn
Créer l'utilisateur "turnserver" pour ce programme
useradd -d /usr/local/coturn/bin/turnserver -s /bin/false turnserver
chown turnserver:turnserver -R /usr/local/coturn
Redémarrage "coturn"
service coturn restart
Vous pouvez maintenant utiliser le serveur "coturn". Vous pouvez y accéder via les ports définis et le serveur public ip. Dans cet exemple, il s'agit du port "3478".
Coturn
https://github.com/coturn/coturn