====== TeamSpeak 3 Server ====== ===== Prérequis ===== * Il vous faut un serveur de base de données disponible. ===== Installation ===== 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. {{ :ts3server_notfound.jpg |}} 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. {{ :ts3server_found.jpg |}} Maintenant que TeamSpeak 3 Server est installé, il nous reste à le configurer. ===== Configuration ===== ==== Base de données ==== 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; * //192.168.x.x// correspond à l'adresse depuis laquelle l'utilisateur à le droit de se connecter. * //unMotDePasse// doit être remplacé par un mot de passe fort. ==== Fichiers de configuration ==== 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 ==== Service ==== 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 ==== Pare-feu ==== Reste alors à ouvrir le port sur le [[iptables|pare-feu]] si cela est nécessaire. * Le port 9987 en UDP pour la voix * Le port 30033 en TCP pour les transferts de fichiers * Le port 10011 en TCP pour le service //Query// 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