domingo, 20 de agosto de 2017

Acceso a múltiples servidores de TeamSpeak mediante subdominios sobre la misma IP en Linux usando TSDNS

Escenario

Tenemos un servidor dedicado con dirección pública (1.2.3.4) en el que tenemos ya corriendo un server de ts3 en la dirección 1.2.3.4:9987 (comportamiento por defecto de ts3). A dicho servidor se puede acceder utilizando esa dirección ip:puerto, nuestro nombre de dominio sysfiend.host y sus subdominios *.sysfiend.host. La idea ahora es montar un nuevo server de ts3 en la misma máquina al que se debe poder acceder solo desde priv.sysfiend.host y que correrá en la dirección 1.2.3.4:9988.

El plan

Una vez montado el segundo servidor (utilizando una herramienta como YaTQA), vamos a configurar el servicio TSDNS que nos proporciona TS3 y a crear un nuevo registro SVN en nuestro DNS.

Fire!

Accedemos a la carpeta tsdns:
cd tsdns

Copiamos el fichero tsdns_settings.ini.sample y editamos el nuevo:
cp tsdns_settings.ini.sample tsdns_settings.ini
nano tsdns_settings.ini

Al final de este, añadimos:
priv.sysfiend.host=1.2.3.4:9988
sysfiend.host=1.2.3.4:9987
*.sysfiend.host=NORESPONSE

De esta manera priv.sysfiend.host siempre resolverá en nuestro nuevo server corriendo en el puerto 9988, mientras que sysfiend.host resolverá en el antiguo, corriendo en el puerto 9987. Además, utilizando la línea de *.sysfiend.host=NORESPONSE, evitamos que cualquier subdominio (menos los especificados) resuelvan en algún servidor de TeamSpeak.
Una vez configurado, lanzamos el ejecutable del servicio que se encuentra en esta misma carpeta con el argumento --update para que actualice los datos:
./tsdnsserver --update

Si todo ha ido bien, debería aparecer un texto tal que así:
Scanned tsdns_settings.ini, number of entries ipv4: 2 normal and 1 wildcards; ipv4+6:2 normal and 1 wildcards.

Finalmente, pero no menos importante, añadimos un registro SVN a nuestro servidor DNS para que el servicio TSDNS sea alcanzable desde _tsdns._tcp.sysfiend.host:
ADD NEW RECORD > SRV Record
Service: _tsdns
Protocol: _tcp
Priority: 0
Weight: 1
Port: 41144 (este es el puerto por defecto de tsdns, en caso de tener uno diferente, modificarlo)
Target: sysfiend.host

Done!

Ahora solo nos queda esperar que los servidores DNS se actualicen y ya no tendremos que tocarlos más para estos temas. 

No hay comentarios:

Publicar un comentario