Print Friendly, PDF & Email

Après le serveur Counter-Strike: Source, nous allons voir ensemble toutes les étapes d’installation d’un serveur Counter-Strike: Global Offensive sous Linux Ubuntu 13.04

Serveur Counter-Strike: Global Offensive sous Linux

Installation et mise à jour de Counter-Strike: Global Offensive via le mode console SteamCMD (voir plus bas l’installation et la MAJ de CSGO en mode console Linux) :

  • Mettez à jour le système :
    sudo apt-get update
    sudo apt-get upgrade
  • Créez le dossier steamcmd sur votre Bureau :
    mkdir steamcmd
  • Créez le groupe et l’utilisateur steam avec son mot de passe :
    sudo adduser --home /home/votre_login/Bureau/steamcmd --shell /bin/bash steam
  • Changez le propriétaire du dossier steamcmd :
    sudo chown -R steam:steam steamcmd
  • Déconnectez-vous de votre compte et connectez vous avec l’utilisateur steam. Installez SteamCMD Update Tool :
    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
  • Lancez SteamCMD :
    ./steamcmd.sh
  • Au prompt Steam, loguez-vous anonymement :
    login anonymous
  • Indiquez le répertoire d’installation :
    force_install_dir ./csgo/
  • Installez et mettez à jour le jeu :
    app_update 740 validate
  • Une fois que c’est terminé, quittez proprement SteamCMD :
    quit
  • Si ce n’est pas déjà fait, installez Screen qui servira dans le script de lancement à se déconnecter du serveur Linux tout en laissant le serveur Counter-Strike: Global Offensive actif : 
    sudo apt-get install screen
Vous pouvez alors lancer le serveur Counter-Strike: Global Offensive via un script serveur_csgo.sh à créer dans le dossier /steamcmd/csgo/ :

#!/bin/sh
sleep 1
screen -A -m -d -S csgo ./srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_bomb +map de_dust -ip 0.0.0.0 -port 27015 -tickrate 100 -pingboost 2
  • La commande screen permet de conserver le processus actif même après s’être déconnecté du serveur Linux
  • Les options de la ligne de commande du programme srcds de SteamCMD sont expliquées sur le site de Valve
  • Lui donner les droits d’exécution :
    chmod +x serveur_csgo.sh
  • Le lancer :
    sh serveur_csgo.sh
  • Votre serveur démarre et vos clients peuvent se connecter ! Pour lister les Screens actifs :
    screen -ls
  • Pour revenir dans le Screen :
    screen -r csgo
  • Pour quitter le Screen : touches CTRL + A puis D
  • Pour killer le Screen : touches CTRL + A puis K

Les fichiers de configuration du serveur sont les suivants :

  • motd.txt qui se trouve dans le dossier /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 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 du 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 CSGO 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
  • gamemode_casual.cfg, gamemode_competitive.cfg, gamemode_armsrace.cfg, gamemode_demolition.cfg et gamemode_deathmatch.cfg sont donc les différents fichiers de config des 5 modes de jeu. C’est dans ces fichiers que vous trouverez les variables du serveur mais pas besoin d’y toucher, elles sont de base assez homogènes…
  • Ces différents modes de jeu seront lancés en fonction des commandes que vous allez paramétrer dans le script de lancement. Dans le script plus haut j’ai choisi le mode Classic Casual. Voici le détail des commandes à modifier dans le script de lancement du jeu en fonction du mode choisi :
  • Classic Casual :
    -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_bomb +map de_dust
  • Classic Competitive :
    -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_bomb_se +map de_dust2_se
  • Arms Race :
    -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map ar_shoots
  • Demolition :
    -game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_lake
  • Deathmatch :
    -game csgo -console -usercon +game_type 1 +game_mode 2 +mapgroup mg_allclassic +map de_dust

Il existe également des mods que vous pouvez installer sur votre serveur :

  • Metamod:Source
  • SourceMod 1.5 pour CSGO (la dernière version Linux proposée) + le plugin Admin Weapon Menu : un menu pour choisir à tout instant du jeu n’importe quelle arme même si vous n’avez pas assez d’argent
  • Voir la liste des plugins disponibles ici
  • Le Steam Workshop est une nouveauté Steam très intéressante, rapide à mettre en œuvre et qui offre les mods à tous puisque qu’ils sont automatiquement installés par Steam sur votre serveur. Il suffit simplement de les sélectionner dans le Steam Workshop Counter-Strike: Global Offensive et de les installer dans votre propre Workshop : plus d’info dans le tutorial suivant (tuto Garry’s Mod mais c’est le même principe pour CSGO). Il faudra simplement déclarer votre Workshop dans le script de lancement de Counter-Strike: Global Offensive qui sera alors le suivant :
    #!/bin/sh
    sleep 1
    screen -A -m -d -S csgo ./srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_bomb +map de_dust -ip 0.0.0.0 -port 27015 -tickrate 100 -pingboost 2 +host_workshop_collection INSERER_VOTRE_ID_WORKSHOP -authkey INSERER_VOTRE_AUTHKEY
        

Un logiciel sous Windows permet de gérer votre serveur CSGO mais aussi les plugins, c’est HLSW. Il suffit de s’enregistrer gratuitement sur le site Web de HLSW pour avoir accès à l’ensemble des fonctionnalités. Ca devient par exemple très facile de kicker un ou plusieurs joueurs en pleine partie 🙂

Installation et MAJ de CSGO en mode console Linux

Vous pouvez installer et mettre à jour CSGO en mode console SteamCMD comme indiqué plus haut ou passer plus directement par les commandes suivantes depuis la console Linux :
 
Installation CSGO :

  • Reprendre les commandes détaillées en début d’article, la méthode change une fois que vous avez rendu le fichier d’installation exécutable :
    chmod +x steamcmd.sh
  • Installez le jeu :
    ./steamcmd.sh +login anonymous +force_install_dir ./csgo/ +app_update 740 validate +quit
  • Installez Screen qui servira dans le script de lancement à se déconnecter du serveur Linux tout en laissant le serveur Counter-Strike: Global Offensive actif (voir plus haut pour le script) : 
    sudo apt-get install screen

Mise à jour CSGO :

  • Prenez soin au préalable de stopper le serveur CSGO via les commandes Screen (pour plus de détail, voir plus haut)
  • Rendez-vous dans le dossier /steamcmd/
  • Mettez à jour le jeu :
    ./steamcmd.sh +login anonymous +force_install_dir ./csgo/ +app_update 740 validate +quit

Sécurité – pare-feu

Pensez à sécuriser vos accès Internet via le pare-feu de votre routeur ou de votre Box + le pare-feu Ubuntu en autorisant les port TCP/UDP de destination utilisés par SteamCMD.

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.

Les ports de destination suivants sont utilisés par le client et le serveur SteamCMD :

  • Ports UDP 27000 à 27015 (Game client traffic)
  • Ports UDP 27015 à 27030 (Typically Matchmaking and HLTV)
  • Ports TCP 27014 à 27050 (Steam downloads)
  • Port UDP 4380
  • Port TCP 27015 (SRCDS Rcon port)
Sous Ubuntu 13.04, la commande du pare-feu Ufw est la suivante en mode terminal :

sudo ufw allow 27000:27030/udp
sudo ufw allow 27014:27050/tcp
sudo ufw allow 4380/udp