Coturn es un "servidor de giro" y "aturdimiento" que puede ser usado para, por ejemplo: VoIP. Permite crear una conexión entre los clientes que están detrás de un NAT o en diferentes redes.
Los datos pueden ser enviados a través de esta conexión creada por su servidor de "turno".
Coturn también puede ser usado con "NextCloud" o "Matrix server".
Descargar y compilar "coturn"
Ve a la carpeta "/usr/local/":
cd /usr/local
Descargar la última versión (Recomendado)
https://github.com/coturn/coturn/releases
Alternativa: En su lugar, también puedes crear "coturn" a partir de la versión de desarrollo, si quieres probar el software.
git clone https://github.com/coturn/coturn.git
Extraiga la carpeta "coturn" (si ha descargado la versión "coturn" como un archivo zip).
Por favor, vaya a su carpeta "coturn" y compile la aplicación.
cd coturn
./configure
make && make install
Por favor, cree una carpeta para los "log" archivos
mkdir /var/log/turn
Configurar el archivo "/etc/turnserver.conf"
Puede utilizar el archivo de configuración turnserver.conf, que está disponible en su carpeta de repositorio github descargada ("coturn/examples/etc").
Sin embargo, este tutorial utiliza un archivo de configuración personalizado, turnserver.conf, que puede ser descargado desde este repositorio Github:
https://github.com/a-dridi/Linux_config-files/blob/master/turnserver/turnserver.conf
vim /etc/turnserver.conf
Edite los ajustes y ajuste la sección de ajustes importantes al entorno de su servidor.
Por favor, defina también un "static-auth-secret" que es la contraseña para acceder al servidor de turno y puede ser utilizado por ejemplo por el servidor Matrix.
Configure su servidor de turno a través del archivo "/etc/turnserver.conf".
Una versión de plantilla (turnserver.conf.default) está disponible en la carpeta donde se encuentra su carpeta de instalación.
Un ejemplo de configuración:
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
Activar "coturn"
vim /etc/default/coturn
TURNSERVER_ENABLED=1
Por favor, también establezca un servicio 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
Ahora habilita el servicio creado
systemctl enable coturn
Crear el usuario "turnserver" para este programa
useradd -d /usr/local/coturn/bin/turnserver -s /bin/false turnserver
chown turnserver:turnserver -R /usr/local/coturn
Reiniciar "coturn"
service coturn restart
Ahora puedes usar el servidor "coturn". Puedes acceder a él a través de los puertos definidos y el servidor público ip. En este ejemplo es el puerto "3478".
Coturn
https://github.com/coturn/coturn