Creando servidor TURN para NextCloud Talk

Talk no funciona si los usuarios están detrás de diferentes dispositivos NAT. Para atravesar NAT, se necesita configurar un servidor TURN para lo cual en Ubuntu tenemos el paquete coturn.

Genera los certificasdos para tu subdominio con Let’s Encrypt de la siguiente forma

apt install certbot
certbot certonly --standalone -d subdominio.dominio.es
sudo apt install coturn -y

Luego lo habilitamos modificando el fichero /etc/default/coturn

sudo nano /etc/default/coturn

Quitamos el símbolo # al comienzo de TURNSERVER_ENABLED=1 para que quede de la siguiente manera:

TURNSERVER_ENABLED=1

Guarde y cierre este archivo, luego cree un nuevo archivo de configuración llamado turnserver.conf :

mv /etc/turnserver.conf /etc/turnserver.conf.bak && nano /etc/turnserver.conf

Genere el archivo dhparam:

mkdir -p /etc/turnserver
openssl dhparam -dsaparam -out /etc/turnserver/dhp.pem 4096

Genere un nuevo «Secreto»:

openssl rand -hex 32

Copie todas las líneas posteriores en él. Tenga en cuenta que asumimos que los certificados de Let’s Encrypt se encuentran en /etc/letsencrypt/rsa-certs/… Ajuste las rutas si es necesario:

tls-listening-port=443
listening-ip=<Tu IPv4>
listening-ip=<Tu IPv6>
relay-ip=<Tu IPv4>
relay-ip=<Tu IPv6>
min-port=32769
max-port=65535
verbose
fingerprint
use-auth-secret
static-auth-secret=Codigo secreto generado anteriormente
realm=coturn.dominio.es
cert=/etc/letsencrypt/rsa-certs/fullchain.pem
pkey=/etc/letsencrypt/rsa-certs/privkey.pem
cipher-list="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
dh-file=/etc/turnserver/dhp.pem
keep-address-family
no-cli
no-tlsv1
no-tlsv1_1
no-multicast-peers
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=::ffff:0:0-::ffff:ffff:ffff
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
denied-peer-ip=64:ff9b:1::-64:ff9b:1:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2001:db8::-2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Abra el puerto 443/tcp y 443/udp en su UFW (firewall)

ufw allow 443/tcp && ufw allow 443/udp

Ajuste el servicio para poder usar el puerto privilegiado 443:

mkdir -p /etc/systemd/system/coturn.service.d
nano /etc/systemd/system/coturn.service.d/override.conf
[Service]
LimitNOFILE=1048576
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=
ExecStart=/usr/bin/turnserver --daemon -c /etc/turnserver.conf --pidfile /run/turnserver/turnserver.pid --no-stdout-log --simple-log --log-file /var/log/turnserver/turnserver.log
Restart=always

Finalmente, configuremos el logrotating:

nano /etc/logrotate.d/coturn

Pegue el siguiente texto dentro del archivo:

/var/log/turnserver/*.log
{
	rotate 7
	daily
	missingok
	notifempty
	compress
	postrotate
		/bin/systemctl kill -s HUP coturn.service
	endscript
}

Ahora cree el directorio de registro y configure los permisos correctos:

mkdir -p /var/log/turnserver
chown turnserver:turnserver /var/log/turnserver

Reinicie coturn:

service coturn restart

Verifique su servidor coturn a través de este enlace externo. Como se muestra en el ejemplo, inserte su nombre de dominio y puerto en lugar del ejemplo «stun: coturn.dominio.es :443″.

i ve entradas del tipo «srflx» y » Listo » en la columna «Prioridad» en la última línea , su servidor coturn está funcionando correctamente. Luego cambie a su Nextcloud y active la aplicación Nextcloud Talk como administrador:

Configura la app de Talk en tu servidor NextCloud.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.