Cómo instalar el servidor de TeamSpeak en Debian 11

Cliente de TeamSpeak 3

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

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

Requisitos previos

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

    Algunos de estos paquetes pueden estar ya instalados en su sistema.

Paso 1 – Configurar el Firewall

El primer paso es configurar el cortafuegos. Debian viene con ufw (Uncomplicated Firewall).

Compruebe si el cortafuegos se está ejecutando.

$ sudo ufw status

Debería obtener la siguiente salida.

Status: inactive

Permita el puerto SSH para que el firewall no rompa la conexión actual al habilitarlo.

$ sudo ufw allow OpenSSH

Abra los siguientes puertos requeridos por TeamSpeak.

  • 9987/udp para Voz.
  • 30033/tcp para la transferencia de archivos.
  • 10011/tcp para la consulta del servidor (Raw).
  • 10022/tcp para Serverquery (SSH).
  • 10080/tcp para Webquery (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 Firewall

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

Compruebe de nuevo el estado del cortafuegos.

$ sudo ufw status

Debería ver una salida 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 – Descargar 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 este tutorial, la v3.13.6 es la última versión del servidor de TeamSpeak disponible.

Utilice el siguiente comando para descargar el servidor de TeamSpeak.

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

Extraiga 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 principal 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/

Conceda los permisos correctos al directorio.

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

Paso 4 – Ejecutar el servidor de TeamSpeak

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

Antes de iniciar el servidor, necesitas iniciar sesión como usuario de TeamSpeak. Ejecute el siguiente comando para entrar en su 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

Ejecute 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. Anote su nombre de usuario y la contraseña. Además, anote la clave de la API y el token de privilegio generado. Los necesitará en los próximos pasos.

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

Cierra la sesión como usuario de TeamSpeak.

$ exit

Paso 5 – Creación del demonio de servicio de TeamSpeak

Cree el archivo /lib/systemd/system/ts3server.service y ábralo para editarlo.

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

Pegue el siguiente código en él.

[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

Cierre el archivo pulsando Ctrl + X e introduciendo Y cuando se le solicite.

Recargue el demonio de servicio.

$ sudo systemctl daemon-reload

Habilite e inicie el servicio de TeamSpeak.

$ sudo systemctl enable ts3server --now

Compruebe 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éctese usando el cliente de TeamSpeak

Descargue e instale 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.

Inicie el cliente en su escritorio, y obtendrá la siguiente pantalla después de pasar por la solicitud de licencia.

Cliente de TeamSpeak 3

Haga clic en el Conexiones y seleccione el Conectar para empezar. Introduzca la dirección IP de su servidor, la contraseña generada en el paso 4 y un apodo para usted.

Conexión cliente-servidor de TeamSpeak

Haga clic en el Conectar para continuar. Se le pedirá que introduzca la clave de privilegio en el siguiente aviso. Introduzca la clave de privilegio del paso 4 y haga clic en Ok para continuar.

Pregunta de privilegio del cliente de TeamSpeak 3

Ahora está conectado a su servidor de TeamSpeak y puede empezar a utilizar el cliente para comunicarse.

Conexión exitosa del cliente de TeamSpeak 3

Paso 7 – Cambio de la contraseña de acceso

Puede cambiar la contraseña de administrador del servidor por una más fuerte de su elección. Para ello, detenga el servicio de TeamSpeak.

$ sudo systemctl stop ts3server

Cambie al usuario de TeamSpeak.

$ sudo -i -u ts3

Inicie el servidor de TeamSpeak y añada el parámetro serveradmin_password en su comando.

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

Reemplace la contraseña con una contraseña fuerte de su elección.

Detenga el servidor de nuevo.

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

Vuelva a cambiar a su cuenta de usuario.

$ exit

Inicie de nuevo el servicio de TeamSpeak.

$ sudo systemctl start ts3server

Paso 8 – Instalación y configuración de MySQL

TeamSpeak, por defecto, utiliza la base de datos SQLite para almacenar toda la comunicación y los datos de los usuarios. Mientras que esto está bien para una pequeña comunidad, puede convertirse en un problema si usted está usando TeamSpeak para alojar a más usuarios. Afortunadamente, TeamSpeak puede ser configurado para utilizar una base de datos MySQL o PostgreSQL.

Lo configuraremos para utilizarlo con el servidor MySQL.

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

$ sudo apt install mariadb-server -y

El instalador iniciará y habilitará el servicio Mariadb por usted. Puede comprobar el estado del servicio.

$ sudo systemctl status mariadb

Ejecute el script de seguridad para MariaDB. Utilice las opciones indicadas 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

Inicie sesión en el shell de MySQL.

$ sudo mysql

Cree el usuario ts3user. Reemplace su_contraseña con una contraseña fuerte de su elección.

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

Cree la base de datos de teamspeak3.

mysql> CREATE DATABASE teamspeak3;

Conceda al usuario privilegios en la base de datos teamspeak3.

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

Salga del Shell.

mysql> exit

Cambiar al usuario de TeamSpeak.

$ sudo -i -u ts3

El primer paso para configurar MariaDB para que funcione con TeamSpeak es añadir la biblioteca MariaDB. Puedes encontrarla en la carpeta /opt/teamspeak/redist.

Cree 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

Ejecute el siguiente comando para imprimir las bibliotecas compartidas requeridas por TeamSpeak.

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

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

$ nano ts3db_mariadb.ini

Pegue el siguiente código en él.

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

Utilice las credenciales de la base de datos creadas anteriormente. Cierre el archivo pulsando Ctrl + X e introduciendo Y cuando se le solicite.

Cree un archivo de configuración para TeamSpeak y ábralo para editarlo.

$ nano ts3server.ini

Pegue el siguiente código en él.

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

Cierre el archivo pulsando Ctrl + X e introduciendo Y cuando se le 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 utilizar MariaDB en lugar de la base de datos SQLite.

Salga del shell de TeamSpeak.

$ exit

Necesitamos decirle al servidor de TeamSpeak que utilice el archivo de configuración recién creado. Detenga y desactive el servicio de TeamSpeak.

$ sudo systemctl stop ts3server && sudo systemctl disable ts3server

Abra el archivo de servicio.

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

Encuentre la línea ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 y cámbiela 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
....

Cierre el archivo presionando Ctrl + X e introduciendo Y cuando se le solicite.

Recargue el demonio de servicio para aplicar los cambios.

$ sudo systemctl daemon-reload

Habilite e inicie el servicio de TeamSpeak.

$ sudo systemctl enable ts3server --now

Compruebe 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 recreará la clave de privilegio. La próxima vez que se conecte a su servidor, se la pedirá. Sin embargo, su contraseña de administración del servidor seguirá siendo la misma.

Paso 9 – Actualización de TeamSpeak

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

$ sudo systemctl stop ts3server

Descargue la última versión del sitio web oficial y extraiga el archivo en el 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.

Una vez que haya terminado, inicie el servidor de nuevo.

$ sudo systemctl start ts3server

Conclusión

Con esto concluye nuestro tutorial sobre la instalación y uso de TeamSpeak Server en un servidor basado en Debian 11. Si tiene alguna pregunta, publíquela en los comentarios más abajo.

Deja una respuesta

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