Après une 1ère installation de Steam Dedicated Server sur Linux Ubuntu (serveur dédié) pour de nombreux jeux Steam, Counter-Strike: Global Offensive, Counter-Strike: Source et Garry’s Mod, j’ai profité d’une réinstallation complète du serveur Linux suite à un crash pour mettre à jour le guide d’installation des serveurs de jeux Steam.
J’ai complété ce guide avec des scripts de gestion comme le démarrage, l’arrêt ou encore la mise à jour automatique des serveurs Steam. Très pratique quand on sait que Steam fait une mise à jour quasi quotidienne de ses jeux les plus en vus comme Counter-Strike: Global Offensive.
Pour ma première installation Linux, j’avais utilisé une version Ubuntu Desktop. Cette fois, j’en ai profité pour installer la version Ubuntu Server 14.04 LTS.
Serveur Linux Ubuntu
Aucune difficulté rencontrée lors de l’installation du serveur Linux Ubuntu, le guide d’installation qui se déroule à l’écran est très intuitif.
Une fois cette phase terminée, il y a plusieurs services à paramétrer sur le serveur qui nous seront utiles pour l’installation de Steam Dedicated Server.
Connexion en SSH
Pour sécuriser l’accès au serveur Linux en mode console avec Putty, modifiez le port SSH par défaut.
sudo vi /etc/ssh/sshd_config
Changez le port par défaut 22 par un nouveau port comme par exemple 54322
sudo service ssh restart
Adresse IP statique
sudo vi /etc/network/interfaces
auto eth0 iface eth0 inet dhcp
auto eth0 iface eth0 inet static address 192.168.XXX.XXX netmask 255.255.255.0 gateway 192.168.XXX.XXX dns-nameservers 192.168.XXX.XXX
Pour le paramètre dns-nameservers, je vous conseille d’utiliser le DNS du routeur ou de la Box.
sudo /etc/init.d/networking restart
Modification des droits par défaut
sudo vi /etc/login.defs
Modifiez le paramètre UMASK en le passant de la valeur 0022 à 0002 soit un passage des droits par défaut de 755 à 775. Ce point est important car un utilisateur appartenant au groupe « Samba » (sambausers dans notre exemple) possèdera par défaut tous les droits sur les fichiers du serveur Linux et pourra les gérer depuis un partage réseau sur un PC Windows.
Partage de fichiers Samba
sudo apt-get install samba
sudo vi /etc/samba/smb.conf
workgroup = WORKGROUP netbios name = « le_nom_de_votre_serveur » security = USER valid users = @sambausers, @user1, @user2 encrypt passwords = true socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192 usershare allow guests = no dns proxy = no interfaces = eth0 bind interfaces only = yes server role = standalone server passdb backend = tdbsam unix password sync = no create mask = 0660 directory mask = 0770 [partage] path = /home/user_admin/partage comment = Dossier de partage read only = no valid users = user1, user2
Vous trouverez toutes les explications utiles concernant le paramétrage du fichier de configuration Samba sur le site Ubuntu-fr.
On va s’intéresser à la dernière section du fichier de configuration qui concerne le partage Samba. Le nom entre crochet est le nom du partage qui sera utilisé sur les PC Windows. Dans cet exemple il s’appelle tout simplement partage et s’appuie sur le dossier home de l’administrateur Linux : /home/user_admin/partage
Le tout premier paramètre du fichier de configuration, workgroup (groupe de travail), doit être identique à celui présent sur les postes Windows sur lesquels le partage Samba sera utilisé :
sudo testparm -s
sudo service smbd reload
Création d’un utilisateur Linux & Samba
sudo adduser user1 --ingroup sambausers
Cette commande va également attribuer par défaut à l’utilisateur que l’on vient de créer le groupe sambausers
Si vous reproduisez cette même procédure avec d’autres utilisateurs, vous pourrez travailler sur le même partage réseau car tous les utilisateurs seront dans le même groupe sambausers
sudo smbpasswd -a user1
Et lui donner le même mot de passe que sous Linux (créé par le commande précédente).
sudo usermod -d /home/user_admin/partage user1
Il s’agit du même dossier déclaré dans la section [partage] du fichier smb.conf
Firewall
Sécurisez vos accès Internet via le firewall de votre routeur ou de votre Box et le firewall du serveur Ubuntu en autorisant les ports TCP/UDP en entrée.
Avec la version Ubuntu Server 14.04 LTS, le pare-feu UFW (Uncomplicated FireWall) est installé par défaut.
Les ports de destination suivants sont utilisés par Samba :
- Port UDP 137 : NetBIOS Name Service
- Port UDP 138 : NetBIOS Datagram Service
- Port TCP 139 : NetBIOS Session
- Port TCP 445 : SMB over TCP
sudo ufw allow in 137:138/udp sudo ufw allow in 139/tcp sudo ufw allow in 445/tcp
Ces règles sont utiles si vous souhaitez donner un accès au partage Samba depuis Internet.
sudo ufw allow in from 192.168.X.0/24
Ne pas oublier de rediriger les ports de destination vers le serveur Linux via le menu adéquat de votre routeur ou de votre Box si nécessaire.
Partage Samba sous Windows
Une fois ces opérations terminées, vous pouvez réaliser le partage Samba sous Windows.
Dans l’explorateur Windows, sélectionnez votre ordinateur dans la liste de gauche, puis le menu Ordinateur et Connecter un lecteur réseau :
\\le_nom_de_votre_serveur\partage
Puis cochez la case Se connecter à l’aide d’informations d’identification différentes :
Cliquez sur Utiliser un autre compte, saisissez le login + mot de passe Linux de user1 et cochez la case Mémoriser ces informations :
Vous voilà connecté au partage Samba du serveur Linux !
Ce partage sera utile pour copier les mods et modifier les fichiers de configuration des jeux Steam directement depuis votre PC plutôt qu’en mode console sur le serveur Linux.
Eventuellement, en mode console, il faudra changer les droits (commande chmod) et le propriétaire (commande chown) des fichiers.
Steam Dedicated Server
En mode console sur le serveur Linux, connectez-vous avec l’utilisateur qui vous servira à installer les serveurs de jeux dédiés Steam : user1 dans notre exemple, qui est aussi utilisateur Samba.
Une fois logué, le dossier par défaut est /home/user_admin/partage
Installez Steam Dedicated Server :
- Créez le dossier steamcmd :
mkdir steamcmd
- Changez de dossier :
cd steamcmd
- Téléchargez l’outil SteamCMD :
sudo wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
- Extraire le contenu :
tar -xvzf steamcmd_linux.tar.gz
- Rendre le fichier exécutable :
chmod +x steamcmd.sh
Vous trouverez toutes les explications utiles concernant l’outil SteamCMD sur le site Steam.
Firewall
Les ports de destination suivants sont utilisés par SteamCMD :
- Ports UDP 27000 à 27015 : trafic pour le client Steam
- Ports UDP 27015 à 27030 : matchs et HLTV
- Ports TCP 27014 à 27050 : téléchargements sur Steam
- Ports TCP 27015 et > : ports rcon SRCDS des différents serveurs dédiés
- Port UDP 4380
sudo ufw allow in 27000:27030/udp sudo ufw allow in 27014:27050/tcp sudo ufw allow in 4380/udp
Ne pas oublier de rediriger les ports de destination vers le serveur Linux via le menu adéquat de votre routeur ou de votre Box.
Counter-Strike: Global Offensive
Installation du serveur
Pour installer le serveur dédié Counter-Strike: Global Offensive :
- Depuis le dossier /home/user_admin/partage/steamcmd, lancez l’outil SteamCMD avec l’utilisateur user1 :
./steamcmd.sh
- Loguez-vous anonymement :
login anonymous
- Indiquez le répertoire d’installation :
force_install_dir ./csgo/
- Installez le jeu :
app_update 740 -verify_all -retry validate
- Une fois que c’est terminé, quittez proprement l’outil SteamCMD :
quit
- Screen, qui servira dans le script de lancement à se déconnecter du serveur Steam tout en laissant le processus actif, est normalement déjà installé sur le serveur Linux. En cas de pb, installez-le :
sudo apt-get install screen
Fichiers de configuration
Les fichiers de configuration du serveur sont les suivants :
- motd.txt qui se trouve dans le dossier /home/user_admin/partage/steamcmd/csgo/csgo/. Le contenu de ce fichier est affiché comme page d’accueil lors de la connexion sur le serveur. C’est un fichier HTML que vous pouvez compléter
- server.cfg qui se trouve dans le dossier …/steamcmd/csgo/csgo/cfg/ contient des infos importantes. C’est tout d’abord dans ce fichier que vous définissez les mots de passe rcon (remote console) et serveur si vous ne souhaitez pas le rendre public. Un exemple de ce fichier est disponible ici. Néanmoins, le fichier server.cfg a perdu de son importance dans CS:GO car la plupart des variables se paramètrent maintenant dans les fichiers ci-dessous
- GameModes_Server.txt qui se trouve dans le même répertoire que server.cfg permet de personnaliser les différents modes du jeu : Classic Casual, Classic Competitive, Arms Race, Demolition et Deathmatch. Un exemple de ce fichier est disponible ici
- Chaque mode de jeu possède son propre fichier de configuration, gamemode_[mode].cfg. C’est dans ces fichiers que vous trouverez les variables par défaut du serveur
- Si vous souhaitez modifier les paramètres par défaut de ces fichier, créez par copier/coller via le partage Samba sur le PC Windows de nouveaux fichiers que vous nommerez gamemode_[mode]_server.cfg
- Le fonctionnement du jeu est le suivant : il exécute en premier les fichiers qui n’ont pas le suffixe « server », GameModes.txt, gamemode_[mode].cfg, puis les fichiers avec le suffixe « server », GameModes_server.txt, gamemode_[mode]_server.cfg qui écrasent les paramètres de jeu des premiers fichiers et enfin le fichier server.cfg. Evitez de modifier les fichiers par défaut sans le suffixe et créez de nouveaux fichiers avec le suffixe si vous souhaitez personnaliser le jeu
- Les différents modes de jeu seront lancés en fonction de la commande qui sera paramétrée dans le script de lancement du jeu
- Voici le détail de la commande en mode Classic Casual :
-game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_bomb +map de_dust
- En mode Classic Competitive :
-game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_bomb_se +map de_dust2_se
- En mode Arms Race :
-game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map ar_shoots
- En mode Demolition :
-game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_lake
- En mode Deathmatch :
-game csgo -console -usercon +game_type 1 +game_mode 2 +mapgroup mg_allclassic +map de_dust
Mods, Plugins & Workshop
Il existe également des mods et plugins que vous pouvez installer sur votre serveur dans le dossier …/steamcmd/csgo/csgo/addons/ depuis le partage Samba sous Windows :
- Metamod:Source : utilisez la dernière version Linux disponible dans la « new stable branch »
- Le plugin Metamod SourceMod : utilisez la dernière version Linux disponible dans la « development branch »
- Les plugins SourceMod :
- Admin Weapon Menu (click droit – enregistrer sous) : un menu pour choisir à tout instant du jeu n’importe quelle arme même si vous n’avez pas assez d’argent (lancez le menu depuis la console du jeu en saisissant la commande suivante : say !weaponmenu). Ce plugin n’est plus disponible sur le site Web SourceMod mais je mets à disposition une version que j’avais téléchargée en 2013 et qui fonctionne toujours
- Next Map Mode : ce plugin permet de gérer plus facilement les cartes CS:GO dont le mécanisme est assez complexe
- Voir la liste des plugins SourceMod pour CS:GO disponible ici
- Vous pouvez aussi utiliser la version française de SourceMod
Le Steam Workshop est une nouveauté Steam très intéressante, rapide à mettre en œuvre et qui offre les cartes et les mods à tous puisque qu’ils sont automatiquement installés par Steam sur le serveur puis téléchargés par les clients.
Il suffit simplement de les sélectionner dans le Steam Workshop Counter-Strike: Global Offensive et de les installer dans votre propre Workshop. Pour plus d’info sur le fonctionnement du Workshop, voir le tutoriel suivant
Script de lancement
Il existe des scripts de lancement Linux disponibles sur Internet comme celui de Crazy ou encore celui de Daniel Gibbs.
J’utilise le script de Crazy que j’ai adapté au contexte de ce guide et dont vous trouverez un exemple ici
sudo vi /etc/init.d/csgo
sudo chmod 755 /etc/init.d/csgo
/etc/init.d/csgo start
Les principales autres commandes :
- Arrêter le serveur dédié et le screen :
/etc/init.d/csgo stop
- Mettre à jour du serveur dédié :
/etc/init.d/csgo update
- Afficher la console du serveur dédié. Pour revenir sur le prompt en se détachant du screen sans killer le serveur, il faut appuyer sur CTRL+A puis D :
/etc/init.d/csgo console
Crazy propose également un script qui permet la mise à jour quotidienne du serveur de jeu. Vous trouverez un exemple ici adapté au contexte de ce guide.
sudo vi /etc/cron.daily/csgo
sudo chmod 755 /etc/cron.daily/csgo
Counter-Strike: Source
Installation du serveur
Pour installer le serveur dédié Counter-Strike: Source :
- Depuis le dossier /home/user_admin/partage/steamcmd, lancez l’outil SteamCMD avec l’utilisateur user1 :
./steamcmd.sh
- Loguez-vous anonymement :
login anonymous
- Indiquez le répertoire d’installation :
force_install_dir ./css/
- Installez le jeu :
app_update 232330 -verify_all -retry validate
- Une fois que c’est terminé, quittez proprement l’outil SteamCMD :
quit
- Screen est normalement déjà installé sur le serveur Linux. En cas de pb, installez-le :
sudo apt-get install screen
Fichiers de configuration
Les fichiers de configuration du serveur sont les suivants :
- motd.txt qui se trouve dans le dossier /home/user_admin/partage/steamcmd/css/cstrike/cfg/
- server.cfg qui se trouve dans le même dossier. Un exemple de ce fichier est disponible ici
- bot.cfg qui se trouve dans le même répertoire et qui contient les paramètres des bots. Un exemple de ce fichier est disponible ici
Mods & Plugins
Il existe également des mods et plugins que vous pouvez installer sur votre serveur dans le dossier …/steamcmd/css/cstrike/addons/ depuis le partage Samba sous Windows :
- Metamod:Source : utilisez la dernière version Linux disponible dans la « new stable branch »
- Le plugin Metamod SourceMod : utilisez la dernière version Linux disponible dans la « development branch ». Vous pouvez aussi utiliser la version française de SourceMod
- Voir la liste des plugins SourceMod pour CS:S disponible ici
Pas de Workshop disponible chez Steam pour Counter-Strike: Source.
Script de lancement
J’ai adapté au contexte de ce guide le script de lancement de Crazy dont vous trouverez un exemple ici
sudo vi /etc/init.d/css
sudo chmod 755 /etc/init.d/css
/etc/init.d/css start
Les principales autres commandes :
- Arrêter le serveur dédié et le screen :
/etc/init.d/css stop
- Mettre à jour du serveur dédié :
/etc/init.d/css update
- Afficher la console du serveur dédié :
/etc/init.d/css console
Crazy propose également un script qui permet la mise à jour quotidienne du serveur de jeu. Vous trouverez un exemple ici adapté au contexte de ce guide.
sudo vi /etc/cron.daily/css
sudo chmod 755 /etc/cron.daily/css
Garry’s Mod
Installation du serveur
Pour installer le serveur dédié Garry’s Mod :
- Depuis le dossier /home/user_admin/partage/steamcmd, lancez l’outil SteamCMD avec l’utilisateur user1 :
./steamcmd.sh
- Loguez-vous anonymement :
login anonymous
- Indiquez le répertoire d’installation :
force_install_dir ./gmod/
- Installez le jeu :
app_update 4020 -verify_all -retry validate
- Une fois que c’est terminé, quittez proprement l’outil SteamCMD :
quit
- Screen est normalement déjà installé sur le serveur Linux. En cas de pb, installez-le :
sudo apt-get install screen
Fichiers de configuration
Les fichiers de configuration du serveur sont les suivants :
- motd.txt qui se trouve dans le dossier /home/user_admin/partage/steamcmd/gmod/garrysmod/cfg/
- server.cfg qui se trouve dans le même dossier. Un exemple de ce fichier est disponible ici
Mods & Workshop
Il existe également des mods que vous pouvez installer sur votre client ou sur votre serveur depuis le partage Samba sous Windows :
- Des mods à installer sur votre serveur dans le dossier …/steamcmd/gmod/garrysmod/addons/ comme les mods d’administration ULIB/ULX
- Subversion (abrégé SVN) est un système de gestion de versions qui est aussi utilisé pour les mods clients de Garry’s Mod :
- Installez le logiciel TortoiseSVN
- Le guide suivant vous explique en détail comment utiliser les SVN Garry’s Mod
- Une liste de SVN Garry’s Mod
- La version SVN des mods d’administration Garry’s Mod ULIB/ULX
Le Steam Workshop est disponible pour Garry’s Mod. Pour plus d’info sur le fonctionnement du Workshop, voir le tutoriel suivant
Script de lancement
J’ai adapté au contexte de ce guide le script de lancement de Crazy dont vous trouverez un exemple ici
sudo vi /etc/init.d/gmod
sudo chmod 755 /etc/init.d/gmod
/etc/init.d/gmod start
Les principales autres commandes :
- Arrêter le serveur dédié et le screen :
/etc/init.d/gmod stop
- Mettre à jour du serveur dédié :
/etc/init.d/gmod update
- Afficher la console du serveur dédié :
/etc/init.d/gmod console
Crazy propose également un script qui permet la mise à jour quotidienne du serveur de jeu. Vous trouverez un exemple ici adapté au contexte de ce guide.
sudo vi /etc/cron.daily/gmod
sudo chmod 755 /etc/cron.daily/gmod
Left 4 Dead 2
Installation du serveur
Pour installer le serveur dédié Left 4 Dead 2 :
- Depuis le dossier /home/user_admin/partage/steamcmd, lancez l’outil SteamCMD avec l’utilisateur user1 :
./steamcmd.sh
- Loguez-vous anonymement :
login anonymous
- Indiquez le répertoire d’installation :
force_install_dir ./left4dead2/
- Installez le jeu :
app_update 222860 -verify_all -retry validate
- Une fois que c’est terminé, quittez proprement l’outil SteamCMD :
quit
- Screen est normalement déjà installé sur le serveur Linux. En cas de pb, installez-le :
sudo apt-get install screen
Fichiers de configuration
Les fichiers de configuration du serveur sont les suivants :
- motd.txt qui se trouve dans le dossier /home/user_admin/partage/steamcmd/left4dead2/left4dead2/
- server.cfg qui se trouve dans le dossier …/steamcmd/left4dead2/left4dead2/cfg/. Un exemple de ce fichier est disponible ici
Mods, Plugins & Workshop
Il existe également des mods et plugins que vous pouvez installer sur votre serveur dans le dossier …/steamcmd/left4dead2/left4dead2/addons/ depuis le partage Samba sous Windows :
- Metamod:Source : utilisez la dernière version Linux disponible dans la « new stable branch »
- Le plugin Metamod SourceMod : utilisez la dernière version Linux disponible dans la « development branch ». Vous pouvez aussi utiliser la version française de SourceMod
- Voir la liste des plugins SourceMod pour Left 4 Dead 2 disponible ici
Le Steam Workshop est disponible pour Left 4 Dead 2. Vous pouvez suivre le même tutoriel que pour CS:GO.
Script de lancement
J’ai adapté au contexte de ce guide le script de lancement Left 4 Dead 2 de Crazy dont vous trouverez un exemple ici
sudo vi /etc/init.d/l4d2
sudo chmod 755 /etc/init.d/l4d2
/etc/init.d/l4d2 start
Les principales autres commandes :
- Arrêter le serveur dédié et le screen :
/etc/init.d/l4d2 stop
- Mettre à jour du serveur dédié :
/etc/init.d/l4d2 update
- Afficher la console du serveur dédié :
/etc/init.d/l4d2 console
Crazy propose également un script qui permet la mise à jour quotidienne du serveur de jeu. Vous trouverez un exemple ici adapté au contexte de ce guide.
sudo vi /etc/cron.daily/l4d2
sudo chmod 755 /etc/cron.daily/l4d2
Team Fortress 2
Installation du serveur
Pour installer le serveur dédié Team Fortress 2 :
- Depuis le dossier /home/user_admin/partage/steamcmd, lancez l’outil SteamCMD :
./steamcmd.sh
- Loguez-vous anonymement :
login anonymous
- Indiquez le répertoire d’installation :
force_install_dir ./tf2/
- Installez le jeu :
app_update 232250 -verify_all -retry validate
- Une fois que c’est terminé, quittez proprement l’outil SteamCMD :
quit
- Screen est normalement déjà installé sur le serveur Linux. En cas de pb, installez-le :
sudo apt-get install screen
Fichiers de configuration
Les fichiers de configuration du serveur sont les suivants :
- motd.txt qui se trouve dans le dossier /home/user_admin/partage/steamcmd/tf2/tf/cfg/
- server.cfg qui se trouve dans le même dossier. Un exemple de ce fichier est disponible ici
Mods, Plugins & Workshop
Il existe également des mods et plugins que vous pouvez installer sur votre serveur dans le dossier …/steamcmd/tf2/tf/addons/ depuis le partage Samba sous Windows :
- Metamod:Source : utilisez la dernière version Linux disponible dans la « new stable branch »
- Le plugin Metamod SourceMod : utilisez la dernière version Linux disponible dans la « development branch ». Vous pouvez aussi utiliser la version française de SourceMod
- Voir la liste des plugins SourceMod pour Team Fortress 2 disponible ici
Le Steam Workshop est disponible pour Team Fortress 2. Vous pouvez suivre le même tutoriel que pour CS:GO.
Script de lancement
J’ai adapté au contexte de ce guide le script de lancement de Crazy dont vous trouverez un exemple ici
sudo vi /etc/init.d/tf2
sudo chmod 755 /etc/init.d/tf2
/etc/init.d/tf2 start
Les principales autres commandes :
- Arrêter le serveur dédié et le screen :
/etc/init.d/tf2 stop
- Mettre à jour du serveur dédié :
/etc/init.d/tf2 update
- Afficher la console du serveur dédié :
/etc/init.d/tf2 console
Crazy propose également un script qui permet la mise à jour quotidienne du serveur de jeu. Vous trouverez un exemple ici adapté au contexte de ce guide.
sudo vi /etc/cron.daily/tf2
sudo chmod 755 /etc/cron.daily/tf2
Droit d’auteur de l’image à la une : yupiramos / 123RF Banque d’images
Merci pour l’article !