Installation du serveur - sparda personnal page
Transcription
Installation du serveur - sparda personnal page
Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian Installation d'un serveur « Counter Strike: Source » sous Linux (Debian) Tutoriel écrit le 25/02/2008 Dernière mise à jour le 06/06/2008 Testé sous une Debian Sarge 3.1, une etch 4.0 et une testing Lenny Sparda – [email protected] Introduction Ce document est un tutoriel détaillant la procédure d'installation d'un serveur « Counter Strike: Source » sous le système d'exploitation Debian. Je suppose qu'il est valide pour d'autre distribution, la plupart des procédures n'étant pas spécifique à ce système. Ce document reste principalement destiné au débutant, le niveau de difficulté de mise en place de ce serveur restant faible. Vous pouvez reprendre et éditer ce document à votre guise. Il est en cour d'élaboration (fautes d'orthographes ...) et tous commentaires ou propositions de corrections seront acceptés avec plaisir. Ce document a été rédigé sous OpenOffice 2.4 pour ses possibilités d'exportations en html et pdf. Les connaissances nécessaires Si vous n'êtes pas habitué à utiliser Linux par l'intermédiaire de la console, je vous conseille de vous documentez un peu. Ce tutoriel n'a pas pour objectif de vous apprendre à utiliser ce genre de système, les commandes de base tel que cp, rm, nano, ls, adduser, mkdir, cd, top, su ... peuvent vous être utile. Tout comme les références aux répertoires (/,~,.,..). Je me permet de mettre en garde ceux qui sont débutant et souhaite ce lancer dans la création de serveurs CS:S sur leurs serveurs dédiés fraichement installés : Des connaissances sur l'administration de votre distribution (le fonctionnement de son système de paquet par exemple), sur le fonctionnement d'un système Linux (qu'est ce que le noyau ?) et la sécurité en informatique (une lecture de la doc. Debian sur le sujet par exemple) sont indispensable pour conserver une machine en bon état de fonctionnement. La sécurité Que vous mettiez en place un serveur local pour votre lan ou un serveur destiné au jeu en ligne, ne faites jamais tourner un serveur CS:S sous le compte root! Ajoutez un utilisateur et faites l'intégralité de vos manipulation sous ce compte: adduser css su css Si votre serveur est destiné à être mis en ligne, évitez les mots de passe trop simple, installez fail2ban, configurez votre sshd, vérifiez vos log et évitez d'installer tout et n'importe quoi sur votre machine. Ces conseils ne représente qu'une toute petite partie de ce que vous devez prendre en compte. Je vous incite donc vivement de prendre le temps de lire de la documentation fiable sur le sujet. 1 Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian Erreurs et problèmes Les systèmes 64bits Si votre système est en 64bit et si vous rencontrez cette erreur: -bash: ./hldsupdatetool.bin: No such file or directory Exécutez: ld hldsupdatetool.bin Si vous obtenez ce message : ld: warning: i386 architecture of input file `hldsupdatetool.bin' is incompatible with i386:x86-64 output ld: warning: cannot find entry symbol _start; defaulting to 0000000000400a90 Installez alors lib32gcc1: aptitude update aptitude install lib32gcc1 Option 1000hz du noyau (kernel) Il est généralement conseiller d'avoir l'option 1000hz de votre noyau activée, notamment si vous constatez des baisses de « ticks » et des lags après peu de temps de jeux. NB: OVH fournis des noyaux avec l'option activée. Screen La majorité des utilisateur de ce tutoriel vont l'utiliser pour installer leurs serveurs sur une machine dédiée et donc se connecter à l'aide de SSH. Je vous conseille de vous connecter directement avec l'utilisateur sur lequel vous allez travailler car il est possible que vous n'ayez pas la possibilité d'accéder à vos screen en réalisant un « su css » depuis le compte root. Screen, qu’est-ce donc ? - http://www.linux-nantes.org/Screen-qu-est-ce-donc.html Installation du serveur On s'assure d'être connecté en tant que l'utilisateur « css », puis on change le répertoire courant vers le répertoire de l'utilisateur (/home/css) su css cd ~ On récupère l'exécutable de Steam pour Linux depuis le site internet de Steam : wget http://storefront.steampowered.com/download/hldsupdatetool.bin 2 Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian On lui donne les droits d'exécution : chmod a+x hldsupdatetool.bin Exécutez : ./hldsupdatetool.bin Réponder « YES », un fichier "steam" devrait alors apparaître. (commande « ls » pour vérifier) on ajoute un dossier nommé « server1 » qui contiendra l'intégralité du serveur: mkdir server1 Téléchargement des fichiers du jeux Il s'agit d'une mise à jour cependant l'exécutable ne détectant aucun fichier se contentera de télécharger l'intégralité des fichiers (connections haut débit recommandée) « -game "Counter-Strike Source" »: indique que nous installons CS:S « -dir server1 »: indique que l'installation aura lieu dans le dossier que nous venons de créer. Lorsque vous souhaiterez installer un second serveur, remplacer server1 par server2. A la première exécution il vous demandera de relancer la commande : ./steam -command update -game "Counter-Strike Source" -dir server1 [...] (Steam Linux Client updated, please retry the command) ./steam -command update -game "Counter-Strike Source" -dir server1 Lors de la deuxième exécution il devrait télécharger les fichiers du jeu : exemple: [...] 5.60% 6.41% 6.43% 6.44% 8.77% 8.85% 8.85% [...] server1\cstrike\maps\cs_italy.bsp server1\cstrike\maps\cs_italy.nav server1\cstrike\maps\cs_italy.txt server1\cstrike\maps\cs_militia.bsp server1\cstrike\maps\cs_militia.nav server1\cstrike\maps\cs_militia.txt server1\cstrike\maps\cs_office.bsp 99.97% server1\srcds_i486 99.99% server1\srcds_i686 100.00% server1\srcds_run HLDS installation up to date Je vous conseille de relancer la commande à nouveau afin de vérifier que l'intégralité des fichiers ont été téléchargés. 3 Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian ./steam -command update -game "Counter-Strike Source" -dir server1 On se deplace dans le dossier de configuration du serveur et on créer le fichier "server.cfg": cd server1/cstrike/cfg nano server.cfg (CTRL + X pour fermer nano) Un exemple de fichier server.cfg //////////////////////////////////////////////// /// server.cfg //////////////////////////////////////////////// sv_lan 0 sv_region 3 hostname "Fr - ffa - tick100`d2-only" sv_password "" sv_allowupload 1 sv_allowdownload 1 // rcon rcon_password "urpwd" sv_rcon_banpenalty disabled sv_rcon_maxfailures 30 sv_rcon_minfailures 5 sv_rcon_maxfailures 30 //log log on sv_logbans 1 sv_logecho 1 sv_logfile 1 sv_log_onefile 1 // connection rate 30000 sv_client_min_interp_ratio 1 sv_client_max_interp_ratio 2 sv_client_predict 1 sv_client_interpolate 1 sv_client_cmdrate_difference 30 sv_client_interp 0.01 sv_mincmdrate 66 sv_maxcmdrate 101 net_maxfilesize 256 net_queuesplits 0 sv_minupdaterate 66 sv_maxupdaterate 101 sv_minrate 5000 sv_maxrate 0 fps_max 1000 sv_unlag 1 //jeu mp_buytime 0.75 mp_startmoney 800 mp_dynamicpricing 0 4 Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian mp_maxrounds 0 mp_fraglimit 0 mp_winlimit 0 mp_roundtime 3 mp_c4timer 35 mp_autoteambalance 1 mp_autokick 1 mp_spawnprotectiontime 5 mp_tkpunish 0 mp_friendlyfire 1 mp_freezetime 6 mp_playerid 0 mp_flashlight 1 mp_limitteams 2 sv_cheats 0 mp_footsteps 1 mp_falldamage 1 mp_hostagepenalty 4 mp_forcecamera 0 sv_alltalk 1 sv_pausable 0 sv_consistency 0 mp_allowspectators 1 sv_voiceenable 1 sv_gravity 800 sv_maxvelocity 3500 sv_maxspeed 320 sv_timeout 65 mp_chattime 10 //exec exec mani_server.cfg exec mani_quake_sounds.cfg exec banned_user.cfg exec banned_ip.cfg writeid writeip On retourne dans le dossier server1 : cd ~/server1 On peut désormais lancer le serveur (le tout sur une seule ligne): ./srcds_run -console -game cstrike +fps_max 1000 +port 27015 -autoupdate -pingboost 3 +maxplayers 16 +map de_dust2 -tickrate 100 Cette commande a pour effet de lancer le serveur dans la fenêtre active et vous empêche alors de continuer à travailler. Le deuxième inconvénient de taille est que la fermeture de votre terminal provoquera l'arrêt du serveur. C'est à cause de ces inconvénients que nous avons recours à un gestionnaire de fenêtre en mode texte appelé « screen ». Vérifiez qu'il est actuellement installé : aptitude update aptitude install screen Pour lancer le serveur dans une fenêtre de screen dénommé « serv1 » 5 Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian screen -AmdS serv1 ./srcds_run -console -game cstrike +fps_max 1000 +port 27015 -autoupdate -pingboost 3 +maxplayers 16 +map de_dust2 -tickrate 100 N'hésitez pas à modifier les différents paramètres de cette commande (maxplayers, port). Pour mettre à jour le serveur manuellement, on exécute simplement la même commande que pour l'installation ./steam -command update -game "Counter-Strike Source" -dir server1 Script de lancement/arrêt/redémarrage Je vous propose une script basique, qui peut être amélioré (la gestion des sessions screen est imparfaite). Il est également possible de concevoir un script qui permette de gérer l'ensemble des serveurs ou de l'intégrer dans init.d pour permettre les démarrages et arrêts automatiques avec la machine. Pour cela je vous invite à consulter votre ami google. On retourne donc dans le dossier de l'utilisateur, pour récupérer le script depuis mon hébergement. Vous pouvez l'adapter à votre guise avec nano. Cd ~ wget http://engeldb.free.fr/files/documents/memo/server1.sh nano server1.sh Le script: ##!/bin/sh ############################################# ## Script de lancement du serveur ## ############################################# usage() { echo "---------------------------------------------------------------------" echo "Usage: (stop|start|restart|update)" echo "---------------------------------------------------------------------" exit 2 } srcds_start() { cd ~/server1 screen -AmdS serv1 ./srcds_run -console -game cstrike +fps_max 1000 -pingboost 3 +maxplayers 11 +map de_dust2 -tickrate 100 echo "---------------------------------------------------------------------" echo "[SERV1]started" echo "---------------------------------------------------------------------" } srcds_stop() { screen -dr serv1 -X quit echo "---------------------------------------------------------------------" echo "[SERV1]stopped" echo "---------------------------------------------------------------------" } srcds_restart() { srcds_stop srcds_start echo "---------------------------------------------------------------------" echo "[SERV1]restarted" 6 Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian echo "---------------------------------------------------------------------" } srcds_update() { srcds_stop cd ~/server1 ./steam -command update -game "Counter-Strike Source" -dir ~/server1 srcds_start echo "---------------------------------------------------------------------" echo "[SERV1]updated and restarted" echo "---------------------------------------------------------------------" } case $1 in stop) srcds_stop ;; start) srcds_start ;; restart) srcds_restart ;; update) srcds_update ;; *) usage esac Utilisation: sh sh sh sh server1.sh server1.sh server1.sh server1.sh start restart update stop Ce genre de script suffit donc pour la mise en place de redémarrages automatiques (journalier par exemple) à l'aide de « cron ». La qualité de jeux se dégrade fortement si le serveur CS:S n'ayant pas été relancer toutes les 24h. Évitez de lancer plusieurs fois la commande start sans avoir au préalable arrêté le serveur : le script sera incapable d'arrêter les sessions screen portant le même nom. [TODO] Un deuxième serveur Pour installer un deuxième serveur, créez un deuxième dossier "server2" dans /home/css et répétez la manipulation en remplaçant server1 et serv1 par server2 et serv2 respectivement. Pensez également à modifier le port dans le script server2.sh. En résumé: Cd ~ mkdir server2 ./steam -command update -game "Counter-Strike Source" -dir server2 ./steam -command update -game "Counter-Strike Source" -dir server2 7 Installation d'un serveur CS:S sur un serveur dédié – Distribution : Debian cp server1.sh server2.sh # adaptez le script au dossier « server2 » et le nom de fenêtre screen « serv2 », ajustez les paramètres de lancement du serveur. nano server2.sh Liens – Doc. Française Automatisation des taches - Crontab - http://www.ac-creteil.fr/reseaux/systemes/linux/cron.html Screen, qu’est-ce donc ? - http://www.linux-nantes.org/Screen-qu-est-ce-donc.html Guide de référence pour Debian - http://www.debian.org/doc/manuals/reference/index.fr.html Manuel de sécurisation de Debian - http://www.debian.org/doc/manuals/securing-debianhowto/index.fr.html 8