Cómo instalar el servidor de TeamSpeak en Debian 11

TeamSpeak es un software de chat de voz multiplataforma utilizado por jugadores, equipos y escuelas. Es ligero y rápido y te ofrece más control, ya que puedes alojarlo en tu servidor. Ofrece una forma segura y fácil de conectar con personas de todo el mundo. Tiene una interfaz de usuario totalmente personalizable, admite mensajería directa, transferencia ilimitada de archivos y permite el uso anónimo.

Este tutorial te enseñará a instalar el servidor TeamSpeak en un servidor basado en Debian 11 y a conectarte a él utilizando un cliente Windows.

Requisitos previos

  • Un servidor basado en Debian 11.
  • Un usuario no root con privilegios sudo.
  • El paqueteSudo está instalado.
  • Todo está actualizado.
    $ sudo apt update && sudo apt upgrade
    
  • Pocos paquetes que necesite tu sistema.
    $ sudo apt install nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring wget -y
    

    Puede que algunos de estos paquetes ya estén instalados en tu sistema.

Paso 1 – Configurar el Cortafuegos

El primer paso es configurar el cortafuegos. Debian viene con ufw (Cortafuegos sin complicaciones).

Comprueba si el cortafuegos está funcionando.

$ sudo ufw status

Deberías obtener la siguiente salida.

Status: inactive

Permite el puerto SSH para que el cortafuegos no rompa la conexión actual al activarlo.

$ sudo ufw allow OpenSSH

Abre los siguientes puertos requeridos por TeamSpeak.

  • 9987/udp para Voz.
  • 30033/tcp para Transferencia de archivos.
  • 10011/tcp para Consulta del servidor (sin procesar).
  • 10022/tcp para Serverquery (SSH).
  • 10080/tcp para Consulta Web (HTTP).
$ sudo ufw allow 9987/udp
$ sudo ufw allow 30033/tcp
$ sudo ufw allow 10011/tcp
$ sudo ufw allow 10022/tcp
$ sudo ufw allow 10080/tcp

Habilitar el cortafuegos

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Comprueba de nuevo el estado del cortafuegos.

$ sudo ufw status

Deberías ver un resultado similar.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
9987/udp                   ALLOW       Anywhere
30033/tcp                  ALLOW       Anywhere
10011/tcp                  ALLOW       Anywhere
10080/tcp                  ALLOW       Anywhere
10022/tcp                  ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
9987/udp (v6)              ALLOW       Anywhere (v6)
30033/tcp (v6)             ALLOW       Anywhere (v6)
10011/tcp (v6)             ALLOW       Anywhere (v6)
10080/tcp (v6)             ALLOW       Anywhere (v6)
10022/tcp (v6)             ALLOW       Anywhere (v6)

Paso 2 – Descarga TeamSpeak

Visita la página de descargas de TeamSpeak y fíjate en el número de la última versión. En el momento de realizar este tutorial, v3.13.6 es la última versión disponible del servidor TeamSpeak.

Utiliza el siguiente comando para descargar el servidor TeamSpeak.

$ TVERSION=3.13.6
$ wget https://files.teamspeak-services.com/releases/server/${TVERSION}/teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2

Extrae el archivo descargado.

$ tar -xf ./teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2

Paso 3 – Crear usuario y directorio de TeamSpeak

El primer paso para instalar TeamSpeak es crear un usuario para el servidor. El usuario tendrá su directorio de inicio en /opt/teamspeak y no tendrá contraseña.

$ sudo adduser ts3 --home /opt/teamspeak --shell /bin/bash --disabled-password

Ahora podemos mover el directorio extraído al directorio /opt/teamspeak.

$ sudo mv teamspeak3-server_linux_amd64/* /opt/teamspeak/

Concede los permisos correctos al directorio.

$ sudo chown -R ts3:ts3 /opt/teamspeak

Paso 4 – Ejecutar el servidor TeamSpeak

El siguiente paso es ejecutar el servidor de TeamSpeak para crear una clave de privilegios por primera vez. Esta clave te ayudará a acceder al servidor como administrador.

Antes de iniciar el servidor, debes iniciar sesión como usuario de TeamSpeak. Ejecuta el siguiente comando para acceder a tu shell como usuario de TeamSpeak.

$ sudo -u -i ts3

Para ello, crearemos un archivo llamado .ts3server_license_accepted en el directorio de trabajo de TeamSpeak.

$ touch .ts3server_license_accepted

Ejecuta el siguiente comando para iniciar el servidor.

$ ./ts3server_startscript.sh start
------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "BtXdJaCb"
         apikey= "BAD8rYVPM61p_-TdrsBqEL_8ZxKzEHIKOkUk6_e"
------------------------------------------------------------------


------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=WIRagRYXkCnWqM5g7gBoSgcHHpfgLG9w17pcLORy
------------------------------------------------------------------

Al ejecutar el servidor por primera vez, se creará una cuenta de administrador de consultas del servidor. Anota su nombre de usuario y la contraseña. Anota también la clave API y el token de privilegio generado. Los necesitarás en los próximos pasos.

Para detener el servidor, pulsa Ctrl + C en tu teclado.

Cierra la sesión como usuario de TeamSpeak.

$ exit

Paso 5 – Crear el demonio del Servicio TeamSpeak

Crea el archivo /lib/systemd/system/ts3server.service y ábrelo para editarlo.

$ sudo nano /lib/systemd/system/ts3server.service

Pega en él el siguiente código.

[Unit]
Description=TeamSpeak3 Server
Wants=network-online.target
After=syslog.target network.target local-fs.target

[Service]
WorkingDirectory=/opt/teamspeak
User=ts3
Group=ts3
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
ExecReload=/opt/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.

Vuelve a cargar el demonio de servicio.

$ sudo systemctl daemon-reload

Activa e inicia el servicio TeamSpeak.

$ sudo systemctl enable ts3server --now

Comprueba el estado del servicio.

$ sudo systemctl enable ts3server
? ts3server.service - TeamSpeak3 Server
     Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-03-29 08:18:17 UTC; 2s ago
    Process: 23120 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 (code=exited, status=0/SUCCESS)
   Main PID: 23127 (ts3server)
      Tasks: 21 (limit: 2341)
     Memory: 17.3M
        CPU: 1.953s
     CGroup: /system.slice/ts3server.service
             ??23127 ./ts3server license_accepted=1  daemon=1 pid_file=ts3server.pid

Mar 29 08:18:17 teamspeak systemd[1]: Starting TeamSpeak3 Server...
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: Starting the TeamSpeak 3 server
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: TeamSpeak 3 server started, for details please view the log file
Mar 29 08:18:17 teamspeak systemd[1]: Started TeamSpeak3 Server.

Paso 6 – Conéctate utilizando el Cliente TeamSpeak

Descarga e instala el Cliente de TeamSpeak 3 para Windows desde el sitio web oficial. También puedes descargar la última versión beta (v5) del cliente, pero para nuestro tutorial, utilizaremos la v3, más antigua y estable.

Ejecuta el cliente en tu escritorio, y obtendrás la siguiente pantalla después de pasar por el indicador de licencia.

Cliente TeamSpeak 3

Haz clic en Conexiones y selecciona la opción Conectar para empezar. Introduce la dirección IP de tu servidor, la contraseña generada en el paso 4 y un apodo para ti.

TeamSpeak Cliente Servidor Conectar

Pulsa el botón Conectar para continuar. Se te pedirá que introduzcas la clave de Privilegio en el siguiente aviso. Introduce la clave de Privilegio del paso 4 y haz clic en Ok para continuar.

Mensaje de privilegio de cliente de TeamSpeak 3

Ya estás conectado a tu servidor de TeamSpeak y puedes empezar a utilizar el cliente para comunicarte.

Conexión exitosa del cliente de TeamSpeak 3

Paso 7 – Cambiar la Contraseña de Acceso

Puedes cambiar la contraseña de Administrador del Servidor por otra más segura de tu elección. Para ello, detén el servicio TeamSpeak.

$ sudo systemctl stop ts3server

Cambia al usuario TeamSpeak.

$ sudo -i -u ts3

Inicia el servidor TeamSpeak y añade el parámetro serveradmin_password en tu comando.

$ ./ts3server_startscript.sh start serveradmin_password=password
Starting the TeamSpeak 3 server
TeamSpeak 3 server started, for details please view the log file

Sustituye password por una contraseña fuerte de tu elección.

Vuelve a parar el servidor.

$ ./ts3server_startscript.sh stop
Stopping the TeamSpeak 3 server .
done

Vuelve a cambiar a tu cuenta de usuario.

$ exit

Inicia de nuevo el servicio TeamSpeak.

$ sudo systemctl start ts3server

Paso 8 – Instalar y configurar MySQL

TeamSpeak, por defecto, utiliza la base de datos SQLite para almacenar todos los datos de comunicación y de usuario. Aunque esto está bien para una comunidad pequeña, puede convertirse en un problema si utilizas TeamSpeak para alojar a más usuarios. Afortunadamente, TeamSpeak puede configurarse para utilizar una base de datos MySQL o PostgreSQL.

Nosotros lo configuraremos para utilizarlo con el servidor MySQL.

Instala el servidor MariaDB, que es un sustituto directo de MySQL, ya que Debian no incluye MySQL 8 por defecto.

$ sudo apt install mariadb-server -y

El instalador iniciará y activará el servicio Mariadb por ti. Puedes comprobar el estado del servicio.

$ sudo systemctl status mariadb

Ejecuta el script de seguridad para MariaDB. Utiliza las opciones que se indican a continuación.

$ sudo mysql_secure_installation
Enter current password for root (enter for none): (Press Enter)
Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Accede al shell de MySQL.

$ sudo mysql

Crea el usuario ts3user. Sustituye your_password por una contraseña segura de tu elección.

mysql> CREATE USER 'ts3user'@'localhost' IDENTIFIED BY 'your_password';

Crea la base de datos teamspeak3.

mysql> CREATE DATABASE teamspeak3;

Concede privilegios al usuario en la base de datos teamspeak3.

mysql> GRANT ALL PRIVILEGES ON teamspeak3.* TO 'ts3user'@'localhost';

Sal del intérprete de comandos.

mysql> exit

Cambia al usuario TeamSpeak.

$ sudo -i -u ts3

El primer paso para configurar MariaDB para que funcione con TeamSpeak es añadir la biblioteca MariaDB. La encontrarás en la carpeta /opt/teamspeak/redist.

Crea un enlace simbólico para la biblioteca desde la carpeta redist al directorio de trabajo principal.

$ ln -s /opt/teamspeak-server/redist/libmariadb.so.2 /opt/teamspeak-server/libmariadb.so.2

Ejecuta el siguiente comando para imprimir las bibliotecas compartidas que necesita TeamSpeak.

$ ldd /opt/teamspeak3-server/libts3db_mariadb.so

Crea el archivo de configuración para almacenar los parámetros de la base de datos y ábrelo para editarlo.

$ nano ts3db_mariadb.ini

Pega en él el siguiente código.

[config]
host=127.0.0.1
port=3306
username=ts3user
password=your_password
database=teamspeak3
socket=

Utiliza las credenciales de la base de datos creadas anteriormente. Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.

Crea un archivo de configuración para TeamSpeak y ábrelo para editarlo.

$ nano ts3server.ini

Pega en él el siguiente código.

machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
query_ip_whitelist=query_ip_whitelist.txt
query_ip_blacklist=query_ip_blacklist.txt
dbsqlpath=sql/
dbplugin=ts3db_mariadb
dbsqlcreatepath=create_mariadb/
dbpluginparameter=ts3db_mariadb.ini
dbconnections=10
logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0

Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite. Para conocer estos ajustes de configuración, puedes consultar el archivo server_quickstart.md disponible en la carpeta doc. El archivo anterior configura TeamSpeak para que utilice MariaDB en lugar de la base de datos SQLite.

Sal del intérprete de comandos de TeamSpeak.

$ exit

Tenemos que decirle al servidor de TeamSpeak que utilice el archivo de configuración recién creado. Detén y desactiva el servicio TeamSpeak.

$ sudo systemctl stop ts3server && sudo systemctl disable ts3server

Abre el archivo de servicio.

$ sudo nano /lib/systemd/system/ts3server.service

Busca la línea ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 y cámbiala añadiendo los detalles del archivo de configuración como se muestra a continuación.

....
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini
....

Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.

Recarga el demonio de servicio para aplicar los cambios.

$ sudo systemctl daemon-reload

Activa e inicia el servicio TeamSpeak.

$ sudo systemctl enable ts3server --now

Comprueba el estado del servidor.

$ sudo systemctl status ts3server
? ts3server.service - TeamSpeak3 Server
     Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-03-29 12:21:22 UTC; 6s ago
    Process: 26511 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini (code=exited, status=0/SUCCESS)
   Main PID: 26518 (ts3server)
      Tasks: 21 (limit: 2341)
     Memory: 16.0M
        CPU: 1.818s
     CGroup: /system.slice/ts3server.service
             ??26518 ./ts3server license_accepted=1 inifile=ts3server.ini  daemon=1 pid_file=ts3server.pid

Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]:          apikey= "BAA_lDBRBQxy2nPJXwPQvTRk9_sX3o403Ktlbjz"
Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:                       I M P O R T A N T
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       ServerAdmin privilege key created, please use it to gain
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       serveradmin rights for your virtualserver. please
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       also check the doc/privilegekey_guide.txt for details.
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:        token=kuFsCpz8G7204KiYgQJR8X8orHR+C8OrSv21MZRw
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------

Al hacerlo, se volverá a crear la clave de privilegios. La próxima vez que te conectes a tu servidor, se te pedirá. Sin embargo, tu contraseña de administración del servidor seguirá siendo la misma.

Paso 9 – Actualizar TeamSpeak

El primer paso para actualizar el servidor de TeamSpeak es detener el servidor.

$ sudo systemctl stop ts3server

Descarga la última versión de la web oficial y extrae el archivo al directorio /opt/teamspeak sobrescribiendo los archivos originales siguiendo los pasos 2 y 3 del tutorial. Asegúrate de cambiar el permiso de la carpeta extraída.

Cuando hayas terminado, inicia de nuevo el servidor.

$ sudo systemctl start ts3server

Conclusión

Con esto concluye nuestro tutorial sobre la instalación y uso del Servidor de TeamSpeak en un servidor basado en Debian 11. Si tienes alguna pregunta, publícala en los comentarios a continuación.

También te podría gustar...