Les instructions sont conçues pour Ubuntu 14.04 32 bits, mais devraient fonctionner sur toutes les versions d'Ubuntu. Ce tutoriel vous apprendra à créer un serveur de jeux Garry's Mod.
Connectez-vous via le terminal en tant que root.
Tout d'abord, nous devons nous assurer que le pare-feu est sécurisé pour réduire les risques de problème de sécurité. En supposant que ce serveur sera dédié au Garry's Mod, il est sûr de bloquer absolument tous les ports entrants (y compris ICMP) en plus de ceux requis pour Garry's Mod. ICMP n'est pas requis pour le fonctionnement du serveur, et le bloquer complètement n'aura aucun effet négatif sur le Mod de Garry, cependant, il aidera à réduire les vecteurs d'attaque d'une attaque DDoS.
Pour bloquer tous les ports non requis, les commandes suivantes sont requises:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
Cela dit essentiellement au pare-feu d'ignorer tous les paquets ICMP qu'il reçoit et de ne prendre aucune mesure à ce sujet. Cela signifie également que si quelqu'un essaie d'envoyer une requête ping à votre serveur, il n'obtiendra aucune réponse. La deuxième ligne indique au pare-feu de bloquer tous les paquets ICMP sortants, cela est beaucoup moins important, mais doublez simplement la garantie qu'il n'y aura pas de communication ICMP.
Ensuite, nous devons autoriser spécifiquement tous les ports requis pour le Mod de Garry (27005 - 27015 inclus) avec ces commandes:
iptables -I INPUT -p tcp --dport 27005:27015 -j ACCEPT
iptables -I INPUT -p udp --dport 27005:27015 -j ACCEPT
Cela indique que tout ce qui se trouve sur les ports entre 27005 et 27015 est autorisé. La première commande est pour TCP, et la seconde est pour UDP. La deuxième commande (UDP) est la plus importante ici car presque toutes les communications entre le serveur et les joueurs se font avec UDP. Certaines personnes ont signalé des problèmes de blocage de TCP, c'est pourquoi nous devons l'autoriser.
Maintenant, nous voulons dire au pare-feu d'autoriser les connexions que nous avons ouvertes nous-mêmes (ou le logiciel sur le serveur a). Cela signifie que si nous contactons un serveur, nous pourrons voir une réponse. Tapez cette commande pour l'autoriser:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Si vous utilisez SSH pour contrôler votre serveur (plutôt que d'utiliser la console dans votre compte), cette commande est requise pour permettre à SSH de fonctionner sur le port standard. Si vous n'utilisez pas SSH, ne lancez pas ceci:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
Et enfin, la dernière commande pour configurer le pare-feu. Cette commande bloquera toutes les connexions entrantes en plus de celles que nous avons autorisées:
iptables -A INPUT -j REJECT
Ces paramètres ne sont appliqués qu'au redémarrage de notre serveur, ce qui signifie que nous devons le reconfigurer manuellement à chaque redémarrage de l'ordinateur. Ce n'est pas acceptable, il y a donc un package à installer qui enregistre les règles de pare-feu dans un fichier, puis le charge à chaque démarrage du serveur. Pour installer ce package, tapez ce qui suit:
apt-get install iptables-persistent
Suivez les instructions à l'écran. Lorsqu'on vous demande si vous souhaitez enregistrer les règles de pare-feu actuelles, appuyez sur oui.
Maintenant, notre pare-feu est installé, et aucune configuration supplémentaire ne devrait jamais être requise en ce qui concerne le pare-feu.
Si vous utilisez SSH, il y a un package que vous devez installer qui bloquera automatiquement la connexion des gens au serveur s'ils continuent d'essayer le mauvais mot de passe SSH. Ceci est très utile pour éviter que votre mot de passe SSH ne soit forcé brutalement ». Pour installer le package, utilisez la commande suivante:
apt-get install fail2ban
Fail2ban est déjà configuré pour bloquer l'accès des personnes après quelques tentatives de mot de passe infructueuses, nous n'avons donc pas besoin de le configurer. Maintenant, votre serveur est beaucoup plus sécurisé qu'il ne l'était lorsque nous avons commencé.
Ensuite, nous devons installer "écran". Cela vous permet essentiellement d'exécuter des commandes en continu, même si vous vous déconnectez du serveur. Ceci est essentiel pour que le serveur Mod de votre Garry fonctionne en continu pendant de longues périodes, en particulier lorsque vous contrôlez le serveur avec SSH. Pour installer "écran", tapez ce qui suit:
apt-get install screen
Une fois l'installation terminée, exécutez cette commande:
screen
Un avertissement apparaîtra à l'écran, appuyez simplement sur Entrée pour continuer. La saisie screendans l'écran de démarrage de la console et vous permet de travailler à l'intérieur d'une console virtuelle.Si vous vous déconnectez de SSH ou que vous vous déconnectez, cette console virtuelle continuera à fonctionner avec votre commande à côté d'elle (le serveur Mod de Garry s'exécute comme une commande Linux, donc c'est là que nous devons utiliser l'écran).
Maintenant, avant d'installer Steam, Garry's Mod et les fichiers requis, nous avons besoin d'un compte dédié. Je suggère de l'appeler steam. Pour créer un nouveau compte, tapez ce qui suit:
adduser steam
Vous devez utiliser un mot de passe différent de votre mot de passe root pour que tout soit sécurisé. Vous utiliserez très rarement ce mot de passe. On vous posera des questions sur le compte, telles que son nom complet, son numéro de téléphone, etc. Laissez tous ces champs vides.
Maintenant, nous voulons être connectés au compte "Steam" pendant que nous téléchargeons tous les fichiers requis. Cela signifie que "steam" obtient tous les droits de propriété sur ces fichiers et que les autorisations Linux sont définies correctement sans aucune configuration. Il est beaucoup plus difficile d'obtenir les bonnes autorisations si vous installez Steam en tant que root, puis essayez de modifier ces autorisations. Pour vous connecter en tant que Steam, tapez ce qui suit:
su steam
Nous avons besoin d'un répertoire (dossier) pour enregistrer le logiciel Steam. Pour créer le répertoire, utilisez cette commande:
mkdir ~/Steam
Maintenant, nous voulons être à l'intérieur de ce répertoire. Pour en faire votre répertoire de travail actuel, tapez ce qui suit:
cd ~/Steam
Nous devons maintenant télécharger le logiciel Steam en tapant:
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
Maintenant, nous devons le décompresser et l'installer, avec les éléments suivants:
tar -xvzf steamcmd_linux.tar.gz
Si vous utilisez un système d'exploitation 64 bits, vous devrez installer des bibliothèques 32 bits pour exécuter Steam.
apt-get install lib32stdc++6
apt-get install lib32gcc1
Exécutez la commande suivante pour ouvrir Steam, dites-lui de se connecter en tant qu '"anonyme" (un compte Steam que n'importe qui peut utiliser pour télécharger des logiciels gratuits à partir de leurs serveurs), et dites-lui d'installer le serveur Garry's Mod dans le dossier gmodds (stocké dans le répertoire personnel du compte Steam).
./steamcmd.sh +login anonymous +force_install_dir ../gmodds +app_update 4020 validate +quit
Nous pouvons nous attendre à ce que cette commande dure longtemps, mais nous pouvons suivre son évolution. Il est possible que cette commande échoue, les serveurs Steam ont assez souvent des difficultés mineures qui font échouer un téléchargement (ou ne pas démarrer du tout). Si cela se produit, redémarrez-le simplement.
Une fois cette commande terminée, nous aurons une copie de travail du serveur Mod de Garry, cependant, la plupart des contenus Mod de Garry nécessitent l'installation de CounterStrike: Source (CS: S pour faire court). Pour installer CS: S, exécutez la commande suivante:
./steamcmd.sh +login anonymous +force_install_dir ../cssds +app_update 232330 validate +quit
Cette commande prendra également un certain temps.
Une fois le Mod et CounterStrike de Garry installés, ils doivent être liés ensemble à l'aide d'un fichier de configuration. Pour ce faire, nous devons modifier le fichier suivant avec cette commande:
nano /home/steam/gmodds/garrysmod/cfg/mount.cfg
Sur la ligne contenant "cstrike", nous devons supprimer les deux barres obliques (//) au début de la ligne, puis remplacer la partie entière du chemin de la ligne (commence par C:/). Cette partie de la ligne doit être remplacée par:
/home/steam/cssds/cstrike
La ligne entière devrait maintenant ressembler à ceci:
"cstrike" "/home/steam/cssds/cstrike"
Il doit y avoir un espace de tabulation au début avant le mot cstrike et la ligne ne doit contenir aucune double barre oblique (//) nulle part. Une fois terminé, vous pouvez enregistrer ce fichier avec Ctrl + X puis Y. Cela indique au Garry's Mod où trouver CounterStrike afin qu'il puisse être utilisé.
Nous avons maintenant installé un serveur Mod de Garry de base. Pour l'exécuter, assurez-vous que nous sommes dans le bon répertoire avec cette commande:
cd /home/steam/gmodds/
Exécutez ensuite la commande suivante:
./srcds_run -game garrysmod +gamemode terrortown +maxplayers 16 +map cs_office
Une fois qu'il a démarré, vous devriez pouvoir vous joindre en tapant ce qui suit dans la console Mod de Garry (PAS le terminal du serveur):
connect IP_ADDRESS
Remplacez IP_ADDRESSpar l'adresse IP du serveur. Si vous ne connaissez pas votre adresse IP, taper ce qui suit dans le terminal du serveur vous dira de quoi il s'agit:
url -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Si vous souhaitez modifier le nombre de joueurs autorisés sur votre serveur, arrêtez le serveur en faisant Ctrl + C et exécutez à nouveau la commande de démarrage, mais remplacez maxplayers 16par maxplayers x(changez xle nombre de joueurs que vous voulez). Pour modifier la carte par défaut (la première carte lue), remplacez-la cs_officepar le nom de la carte souhaitée. Et enfin, pour changer le mode de jeu, remplacez-le terrortownpar le mode de jeu que vous souhaitez. Le Mod de Garry est uniquement livré avec terrortown(Short for Trouble in Terrorist Town) et Sandbox par défaut.
Pour configurer davantage le serveur, il existe un fichier de configuration qui peut être modifié. Chaque ligne de ce fichier est appelée variable de configuration (cVar). Exécutez cette commande pour modifier le fichier:
nano /home/steam/gmodds/garrysmod/cfg/server.cfg
Les valeurs suivantes peuvent être modifiées, je vais expliquer ce que chacun fait sous peu:
hostname "server name"
sv_downloadurl "http://example.com/files/"
sv_allowupload 1
sv_password "secret password"
sv_timeout 60
La modification de la valeur du nom d'hôte vous permet de modifier le nom de votre serveur. Il sera appelé "Garry's Mod" à moins que vous ne le changiez. Par exemple, cela appellera votre serveur "My cool server":
hostname "My cool server"
Vous pouvez ajouter autant de variables au fichier que vous le souhaitez, chaque nouvelle variable a besoin d'une nouvelle ligne.
La sv_downloadurlvariable vous permet de choisir d'où le contenu du serveur personnalisé est téléchargé. Le contenu personnalisé comprend les cartes de mod, les sons, les addons et les textures de Garry. Par défaut, Garry's Mod autorise uniquement le téléchargement de données à partir de votre serveur à un rythme extrêmement lent, c'est pourquoi nous devons fournir une URL à partir de laquelle les données peuvent être téléchargées à pleine vitesse. L'URL que vous fournissez doit être un clone de votre dossier "garrysmod" afin que tous les fichiers soient disponibles.
sv_allowuploadpeut avoir deux choix, 0 ou 1, cela spécifie si vous souhaitez autoriser les utilisateurs à télécharger du contenu sur le serveur. Ceci n'est utilisé que pour les sprays (graphiques que les joueurs peuvent vaporiser sur les murs) et peuvent poser un problème de sécurité. Les sprays sont souvent demandés, donc l'utilisation de "1" rendra les joueurs heureux, mais "0" gardera votre serveur plus sécurisé.
sv passwordvous permet de choisir un mot de passe pour votre serveur. Chaque fois que quelqu'un se joint, on lui demandera ce mot de passe et il ne pourra pas le rejoindre s'il ne l'a pas.
sv_timeoutest le temps, en secondes, que le serveur doit attendre avant de donner un coup de pied à quelqu'un qui a perdu sa connexion. Le serveur attendra automatiquement qu'ils retrouvent leur connexion, mais pendant ce temps, le joueur semblera immobile. Il vaut mieux avoir ceci à 60 secondes ou moins. Une fois que vous avez modifié ces paramètres, un redémarrage du serveur est requis.
Des extensions peuvent également être installées pour donner des fonctionnalités supplémentaires au jeu. Certains modules complémentaires doivent être installés d'une manière spécifique, vous devez donc toujours lire les instructions sur leur site, mais c'est ainsi que vous téléchargerez et installerez la majorité des modules complémentaires:
cd /home/steam/gmodds/garrysmod/addons/
wget http://example.com/addon.zip
unzip addon.zip
Remplacez http://example.com/addon.zippar l'URL de l'emplacement de l'addon. Vous devrez également changer addon.ziple nom du fichier zip de l'addon. Maintenant que l'addon a été téléchargé et décompressé, vous pouvez supprimer le fichier zip pour économiser de l'espace, comme ceci:
rm addon.zip
Encore une fois, remplacez addon.zippar le nom réel du fichier zip.
Si le serveur est en cours d'exécution, vous devez le redémarrer avec Ctrl + C et relancer la commande de démarrage. Vous pouvez appuyer sur la flèche vers le haut de votre clavier pour insérer automatiquement la dernière commande que vous avez exécutée.
Si vous perdez votre connexion SSH, lorsque vous vous reconnectez, vous devrez émettre le screen -r command, qui vous permet de reprendre à partir de votre dernier emplacement (la console de jeu).