Cet article vous montrera comment exécuter un serveur Teamspeak 3 sous Debian Wheezy. Avant de commencer, vous devez préparer votre VPS.
Si vous avez déjà un pare-feu en place, assurez-vous que le trafic vers le serveur Teamspeak est autorisé en ajoutant les règles suivantes:
iptables -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -A INPUT -p udp --sport 9987 -j ACCEPT
iptables -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -A INPUT -p tcp --sport 30033 -j ACCEPT
iptables -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -A INPUT -p tcp --sport 10011 -j ACCEPT
Sinon, voici une liste de règles de base qui autorise le trafic SSH et ICMP (ainsi que le trafic pour Teamspeak bien sûr) et supprime tout le reste, IPv4 et IPv6:
iptables -A INPUT -i lo -j ACCEPT # Since a lot of interprocess-communication goes over the loopback-interface you should allow it to avoid very, very weird and difficult problems
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Accept packets that respond to outgoing requests
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -P INPUT DROP # DROP everything else
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -p udp --dport 9987 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 30033 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 10011 -j ACCEPT
ip6tables -P INPUT DROP
Après avoir fait tourner votre serveur, connectez-vous en tant que root. Bien que le travail permanent en tant que root soit généralement mal vu par la communauté Internet, il a également de sérieuses implications pour la sécurité de votre serveur. Selon Internet Storm Center, 90% de toutes les attaques par force brute sur SSH ciblent le compte root. Il existe des centaines, voire des milliers d'analyses automatisées, essayant de pénétrer dans des serveurs avec des mots de passe administratifs faibles - c'est donc certainement une bonne idée d'utiliser un utilisateur distinct en combinaison avec sudo.
Tout d'abord, ajoutez un autre utilisateur et donnez-lui un mot de passe fort:
useradd -m -s /bin/bash yourusername
passwd yourusername
Ensuite, modifiez /etc/sudoerspour vous permettre de l'utiliser:
yourusername ALL=(ALL:ALL) ALL
Ensuite, déconnectez-vous et reconnectez-vous à la machine avec votre nouvel utilisateur. Vous pouvez ensuite désactiver la connexion root dans /etc/ssh/sshd_config:
PermitRootLogin no
AllowUsers yourusername
Pour encore plus de sécurité, vous pouvez envisager d'implémenter une authentification sans mot de passe à l'aide de clés SSH. Pour plus d'informations sur l'authentification sans mot de passe, consultez ce didacticiel . Félicitations, vous vous êtes sauvé de plus de 90% des attaquants. Maintenant, sur l'installation du serveur Teamspeak.
C'est une mauvaise pratique d'exécuter un service en tant que root, donc créez un utilisateur uniquement pour Teamspeak:
sudo useradd -m -s /bin/bash teamspeak
Ensuite, connectez-vous à ce compte d'utilisateur et basculez vers le répertoire personnel:
sudo su teamspeak
cd
Téléchargez Teamspeak. Selon votre architecture, vous aurez besoin de la version x64 :
wget http://dl.4players.de/ts/releases/3.0.11.1/teamspeak3-server_linux-amd64-3.0.11.1.tar.gz
Ou la version x86 :
wget http://dl.4players.de/ts/releases/3.0.11.1/teamspeak3-server_linux-x86-3.0.11.1.tar.gz
Décompressez l'archive téléchargée:
tar -xzvf *.tar.gz && rm *.tar.gz
Maintenant, vous avez un dossier nommé teamspeak3-server_linux-amd64 avec quelques scripts dedans. Revenez à votre utilisateur normal:
exit
Configurez un script pour démarrer automatiquement votre serveur après un redémarrage. Ce script arrête ou redémarre également facilement le service Teamspeak. Collez ce qui suit dans /etc/init.d/teamspeak :
#!/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="/home/teamspeak/teamspeak3-server_linux-amd64"
###### Teamspeak 3 server start/stop script ######
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
Rendez ce fichier exécutable:
sudo chmod 700 /etc/init.d/teamspeak
Maintenant, faites démarrer Teamspeak au démarrage:
sudo update-rc.d teamspeak defaults
Il ne reste plus qu'à démarrer le service:
sudo service teamspeak start
Bonne discussion!