Pour effectuer l'installation de notre serveur TeamSpeak 3, nous commençons par créer un utilisateur dédié :
useradd -d /opt/teamspeak -m teamspeak
Nous nous rendrons ensuite sur le site de TS (http://teamspeak.com/downloads#server) pour télécharger la dernière version du serveur (en version 3.0.12.4 actuellement). Une fois télécharger nous extrayons l'archive.
cd /opt/teamspeak tar -xf teamspeak3-server_linux_amd64-3.0.12.4.tar.bz2 mv teamspeak3-server_linux_amd64/* ./ rm teamspeak3-server_linux_amd64*
Pour palier à un problème de librairie sur le serveur, nous créons le lien symbolique suivant :
ln -s /opt/teamspeak/redist/libmariadb.so.2 /opt/teamspeak/
Nous exécutons également la commande qui suit pour vérifier que le reste des librairies sont bien installées :
ldd /opt/teamspeak3-server/libts3db_mariadb.so
Sur certains systèmes, le lien symbolique ne suffit pas et la librairie libmariadb.so.2 apparait toujours comme non trouvée.
Dans ce cas, nous utiliserons cette commande permettant d'effectuer l'installation de la dite librairie :
apt-get install libmariadb2
Après ré-exécution de la commande ldd précédente, toutes les librairies sont maintenant trouvées.
Maintenant que TeamSpeak 3 Server est installé, il nous reste à le configurer.
Notre serveur TeamSpeak utilisera une base de données pour stocker l'ensemble de ses informations. Nous allons donc y créer un utilisateur et une base de données de la manière suivante :
CREATE USER 'teamspeak'@'192.168.x.x' IDENTIFIED BY 'unMotDePasse'; CREATE DATABASE teamspeak; GRANT ALL PRIVILEGES ON teamspeak.* TO 'teamspeak'@'192.168.x.x'; FLUSH PRIVILEGES;
Nous allons commencé par créer les deux fichiers de protection basique du service Query de TeamSpeak via les commandes
touch query_ip_blacklist echo 127.0.0.1 > query_ip_whitelist
Puis nous créons le fichier *ts3db_mariadb.ini*
[config] host=127.0.0.1 port=3306 username=teamspeak password=unMotDePasse database=teamspeak socket=
Finalement, nous terminons avec le fichier *ts3server.ini* dans lequel nous plaçons une configuration de base
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 query_ip_blacklist=query_ip_blacklist 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
Pour terminer la configuration, nous nous assurons que les droits sur l'ensemble des éléments est bien associé à l'utilisateur que nous avons dédié au service :
chown teamspeak:teamspeak ./ -R
Pour rendre la gestion de notre serveur plus simple, nous procédons à la création du fichier /etc/init.d/teamspeak ayant le contenu suivant :
#!/bin/sh ### BEGIN INIT INFO # Provides: teamspeak # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Teamspeak 3 Server ### END INIT INFO USER="teamspeak" DIR="/opt/teamspeak" case "$1" in start) su $USER -c "$DIR/ts3server_startscript.sh start" ;; stop) su $USER -c "$DIR/ts3server_startscript.sh stop" ;; restart) su $USER -c "$DIR/ts3server_startscript.sh restart" ;; status) su $USER -c "$DIR/ts3server_startscript.sh status" ;; *) echo "Usage: " >&2 exit 1 ;; esac exit 0
Script que nous penserons à rendre exécutable
chmod +x /etc/init.d/teamspeak
Reste alors à ouvrir le port sur le pare-feu si cela est nécessaire.
iptables -A INPUT -p udp -m udp --dport 9987 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 30033 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 10011 -j ACCEPT