> |
Installation de GNU /Linux
Que ce soit pour la Mandrake ou la Debian, je ne vais malheureusement pas pouvoir détailler l’ensemble de l’installation. Globalement les étapes sont toujours les mêmes :
Partitionnement du disque dur
Choix des paquetages, décompression et installation de ceux-ci
Configuration finale : choix du mot de passe administrateur et création de comptes annexes
Attention tout de même , il faut près de 1.5 Go au serveur dédié pour fonctionner, d’autre part, il se décompresse par défaut dans la partition qui accueille le point de montage /usr, veuillez donc laisser au moins 2 Go pour avoir une marge de manoeuvre en cas d’erreur ...
Pour l’installation d’une Debian, je vous conseille l’excellent didacticiel d’Alexis Delattre :
http://www.via.ecp.fr/~alexis/formation-linux
Installation du serveur Dédié HLDS
La première étape consiste à le télécharger :
wget ftp://ftp.freenet.de/pub/4players/halflife/server/linux/hlds_l_1120_full.bin
Passez ensuite root :
su
Password:
votrepass
Il faut ensuite le rendre éxecutable pour pouvoir le décompresser et aussi créer un répertoire d’installation par défaut sans quoi vous vous verrez recevoir une erreur à l’installation:
mkdir /usr/steam
création du répertoire
chmod +x hlds_l_1120_full.bin
passer le en executable (flag x)
./hlds_l_1120_full.bin
tapez yes
Vous devez attendre que l’archive se décompresse dans le répertoire : /usr/steam
extracting /usr/steam/hlds_l_1120_full.tgz...done
Ensuite décompressez l’archive:
cd /usr/steam
tar zxvf hlds_l_1120_full.tgz
Une fois que c’est terminé, déplacez votre dossier vers une partition qui possède plus d’espace libre, si vraiment vous avez peur que ça pose un problème plus tard, à priori, sauf si vous rajoutez des cartes sur votre serveur, il y a peu de chance qu’il "gonfle".
Ex :
mv /usr/steam/hlds_l /home/
C’est un exemple comme un autre.
Configuration firewall et routeur
Si vous souhaitez forwarder votre serveur counter-strike. Soit vous avez un routeur hardware (configuration par interface web), dans ce cas, notez bien les ports suivants à faire suivre:
En entrée et sortie
UDP/1200
UDP/27000 à 27015 (si le serveur tourne sur ce port)
TCP/27030 à 27039
Faites bien attention, car ces ports ont été changés depuis Steam
La plupart des routeurs, ont par défaut tous les ports en sortie d’ouverts
Si vous utilisez un routeur qui est une machine Linux (la syntaxe BSD ne doit pas être très différente, modifiez vos règles iptables de la manière suivante :
Attention, bien veiller à ce que les ports suivants soient ouverts en entrée/sortie
$EXTINF = Votre interface externe (Internet)
$INTINF = Votre interface au réseau local (LAN, WLAN)
iptables -A INPUT -i $EXTINF-p udp --dport 1200 -j ACCEPT
iptables -A OUTPUT -o $EXTINF -p udp --sport 1200 -j ACCEPT
iptables -A INPUT -i $EXTINF -p udp --dport 27000:27015 -j ACCEPT
iptables -A OUTPUT -o $EXTINF -p udp 27000:27015 -j ACCEPT
Si le serveur tourne sur le 27015
iptables -A OUTPUT -p tcp --sport 27030:27039 -j ACCEPT
iptables -A INPUT -p tcp --dport 27030:27039 -j ACCEPT
si vous souhaitez ne pas faire de filtrage en sortie, tapez :
iptables -A OUTPUT -o $EXTINF -p tcp -j ACCEPT
iptables -A OUTPUT -o $EXTINF -p udp -j ACCEPT
Ces règles sont valables pour un serveur qui est lui même passerelle vers internet. Pour un routeur, il faut rajouter les lignes de port forwarding (Destination Network Address Translation)suivantes:
IP_SERVEUR = "Adresse IP du serveur"
iptables -t nat -A PREROUTING -p udp --dport 1200
-j DNAT --to-destination $IP_SERVEUR:1200
iptables -t nat -A PREROUTING -p udp --dport 27000:27039 -j DNAT
--to-destination $IP_SERVEUR:27000:27039
iptables -t nat -A PREROUTING -p tcp --dport 27000:27039 -j DNAT
--to-destination $IP_SERVEUR:27000:27039
L’avantage énorme de forwarder un serveur, c’est qu’on est pas obligé d’utiliser les ports ouverts sur le routeur et de le faire correspondre avec les ports ouverts sur le serveur de jeux. Par exemple, si le routeur n’autorise que le port 80 d’ouvert, il est tout à fait possible d’héberger un serveur de jeux tournant (du côté internet) sur le port 80. (En fait il va manquer des ports pour l’interrogation via les serveurs d’authentification, mais il est possible qu’il soit joignable.
Haute disponibilité
On peut aussi, en changeant le paramètre IP_SERVEUR basculer facilement d’un serveur à un autre en cas de panne, de réparation ... On peut même le faire d’une manière dynamique : si le serveur ne répond plus au ping, alors le paramètre IP_SERVER change pour une IP où un serveur de secours fonctionne. Les règles iptables sont ensuite redémarrées instantanément. Ca s’appelle du Fail Over Services, mais c’est un peu plus compliqué.
Voici une idée pour le faire :
#! /bin/sh
if test $(telnet $IP_SERVEUR 27015 < /dev/zero 2> /dev/null | grep -c
Connected) -eq 0; then
iptables -t nat -A PREROUTING -p udp --dport 1200
-j DNAT --to-destination $IP_SERVEUR2:1200
iptables -t nat -A PREROUTING -p udp --dport 27000:27039 -j DNAT
--to-destination $IP_SERVEUR2:27000:27039
iptables -t nat -A PREROUTING -p tcp --dport 27000:27039 -j DNAT
--to-destination $IP_SERVEUR2:27000:27039
fi
Nous allons effectuer à présent les manipulations suivantes :
Création d’un compte FTP & Shell qui peut lancer et vous permettre d’uploader vos fichiers de configuration et vos maps
Installation du serveur Samba pour pouvoir modifier depuis le voisinage réseau Windows les fichiers de configuration
adduser hlds
Choisissez un mot de passe, répetez le. Ensuite il faut donner accès au répertoire HLDS Linux :
chown -R hlds /usr/steam/hlds_l
chmod -R 755 /usr/steam/hlds_l
ln -s /usr/steam/hlds_l /home/hlds/hlds_l
chown -R hlds /home/hlds/hlds_l
chmod -R 755 /home/hlds/hlds_l
Note: les répertoires ont été passés en lecture/écriture/execution pour l’utilisateur hlds et en lecture/écriture pour les autres. Cela afin qu’ils soient accessibles depuis Samba
Si vous avez un serveur FTP (ProFTPd d’installé, vous pourrez vous en servir pour uploader vos fichiers de configuration en vous loggant en tant que :
ftp://hlds:votrepass@ipserveur/hlds_l
Maintenant nous allons configuré le dossier sous Samba, pour qu’il soit accessible depuis le voisinage réseau
Editez le fichier de configuration
vim /etc/samba/smb.conf
Et insérez-y ces lignes de configuration :
[hlds]
comment = Serveur dédié HLDS Linux
path = /usr/steam/hlds_l
guest ok = yes
browseable = yes
writeable = yes
Sauvegardez et quittez, puis relancez le démon Samba
/etc/init.d/samba restart
Mise à jour du serveur Dédié
Les serveurs de Valve, grâce à la toute nouvelle et performante plate-forme Steam (oui oui je tartine pas mal) vous permettent de faire des mises à jour. La première est manuelle, les autres seront automatiques :)
/usr/steam/hlds_l/steam -update utilisateur@adresse ****** Y
La syntaxe de mise à jouer à été modifiée dans les versions suivantes de steam, voir la crontab
1ere mise à jour
Checking bootstrapper version ...
Getting version 4 of Steam HLDS Update Tool
Downloading. . . . . . . . . . .
Steam Linux Client updated, please retry the command
2ème mise à jour
Checking bootstrapper version ...
Updating Installation
Logging in as 'nkvd@nkvd.net'
Updating 'Linux Server Engine' from version 0 to version 7
Downloading: /usr/steam/hlds_lcore_i386.so
Downloading: /usr/steam/hlds_lengine_amd.so
Downloading: /usr/steam/hlds_lengine_amd64.so
Downloading: /usr/steam/hlds_lengine_i486.so
Downloading: /usr/steam/hlds_lengine_i686.so
Downloading: /usr/steam/hlds_lfilesystem_stdio_amd64.so
Downloading: /usr/steam/hlds_lfilesystem_stdio_i386.so
Downloading: /usr/steam/hlds_lhlds_amd
Downloading: /usr/steam/hlds_lhlds_amd64
Downloading: /usr/steam/hlds_lhlds_i486
Downloading: /usr/steam/hlds_lhlds_i686
Downloading: /usr/steam/hlds_lhltv
Downloading: /usr/steam/hlds_llibSteamValidateUserIDTickets_amd64.so
Downloading: /usr/steam/hlds_llibSteamValidateUserIDTickets_i386.so
Downloading: /usr/steam/hlds_lproxy_i386.so
Updating 'HL base content' from version 0 to version 4
Downloading: /usr/steam/hlds_lvalvedllshl.dll
Downloading: /usr/steam/hlds_lvalvedllshl_amd64.so
Downloading: /usr/steam/hlds_lvalvedllshl_i386.so
Downloading: /usr/steam/hlds_lvalveliblist.gam
Updating 'cstrike content' from version 0 to version 7
Downloading: /usr/steam/hlds_lcstrikecl_dllsclient.dll
Downloading: /usr/steam/hlds_lcstrikedllscs_amd64.so
Downloading: /usr/steam/hlds_lcstrikedllscs_i386.so
Downloading: /usr/steam/hlds_lcstrikedllsmp.dll
Downloading: /usr/steam/hlds_lcstrikesoundeventsenemy_died.wav
Downloading: /usr/steam/hlds_lcstrikesoundeventsfriend_died.wav
Downloading: /usr/steam/hlds_lcstrikesoundeventstask_complete.wav
Downloading: /usr/steam/hlds_lcstrikesoundeventstutor_msg.wav
Downloading: /usr/steam/hlds_lcstrikesprites640hud7.spr
Downloading: /usr/steam/hlds_lcstrikespritesshadow_circle.spr
Downloading: /usr/steam/hlds_lcstrikeautobuy.txt
Downloading: /usr/steam/hlds_lcstrikerebuy.txt
Downloading: /usr/steam/hlds_lcstrikespectcammenu.txt
Downloading: /usr/steam/hlds_lcstrikesteam.inf
Downloading: /usr/steam/hlds_lcstriketitles.txt
HLDS installation up to date
Ensuite nous ferons les mises à jour tous les 2 jours par exemple :
crontab -e
* * */2 * * /usr/steam/hlds_l/steam -command update -game cstrike -dir /usr/steam/hlds_l -username utilisateur@adresse -password ****** remember_password
Premier lancement "test" du serveur
Tapez la commande suivante : /usr/steam/hlds_l/hlds_run -game cstrike +maxplayers 12 +map de_aztec
Auto detecting CPU
Using Pentium II Optimised binary.
Auto-restarting the server on crash
Console initialized.
scandir failed:/usr/steam/hlds_l/./valve/SAVE
scandir failed:/usr/steam/hlds_l/./platform/SAVE
Protocol version 47
Exe version 1.1.2.4/Stdio (cstrike)
Exe build: 14:14:09 Feb 4 2004 (2659)
STEAM Auth Server
couldn't exec language.cfg
Server IP address 10.44.1.34:27015
Downloading Security Module from Speakeasy.net ...
Completed downloading Security Module from Speakeasy.net
Server is in Secure Mode.
scandir failed:/usr/steam/hlds_l/./valve/SAVE
scandir failed:/usr/steam/hlds_l/./platform/SAVE
Server logging data to file logs/L0225000.log
L 02/25/2004 - 14:32:54: Log file started
(file "logs/L0225000.log") (game "cstrike")
(version "47/1.1.2.4/Stdio/2659")
couldn't exec listip.cfg
couldn't exec banned.cfg
Adding auth server 65.73.232.251:27040
Adding auth server 65.73.232.253:27040
Adding master server 207.173.177.11:27010
Adding master server 207.173.177.12:27010
L 02/25/2004 - 14:32:55: Server cvar "sv_region" = "255"
L 02/25/2004 - 14:33:03: World triggered "Round_Start"
Il est important de voir si la version est bien > à la 1.1.20 qui a été téléchargée.
Configuration du serveur
Ici nous commençons vraiment à nous occuper de la partie serveur de jeux.
Edition des paramètres du serveur
Le premier fichier à éditer est : server.cfg
Modifiez les paramètres comme suit :
// Use this file to configure your DEDICATED server.
// This config file is executed on server start.
// disable autoaim
sv_aim 0
// disable clients' ability to pause the server
pausable 0
// default server name. Change to "Bob's Server", etc.
hostname ".: Team #KV CS 1.6 - http://nkvd.net"
// maximum client movement speed
sv_maxspeed 320
// 20 minute timelimit
mp_timelimit 20
sv_cheats 0
mp_logmessages 1
log on
// load ban files
exec listip.cfg
exec banned.cfg
Modifiez également le fichier motd.txt
Comme nous sommes sous la CS 1.6 le MOTD (Message Of The Day) peut être écrit en mettant du HTML et du CSS
Par exemple ici je redirige le MOTD vers la page d’accueil du site de notre team (waoou !!)
Edition du fichier liblist.gam
Ce fichier est relativement important puisqu’il renseigne le serveur dédié sur la manière d’utiliser les modules (Dynamic Loadble Librairy ou Shared Objects)
vim /usr/steam/hlds_l/cstrike/liblist.gam
Repérez la ligne qui contient:
gamedll_linux "dlls/cs_i386.so"
et remplacez la par:
gamedll_linux "addons/metamod/dlls/metamod_i386.so"
Création du répertoire addons
cd /usr/steam/hlds_l/cstrike
mkdir addons
mkdir addons/metamod
mkdir addons/metamod/dlls
Téléchargez la dernière version de Metamod (1.17) pour Linux :
cd addons/metamod/dlls
wget http://metamod.org/dl/dlls/metamod_i386.so.gz
gunzip metamod_i386.so.gz
cd ..
vim plugins.ini
Appuyez sur la toucher insertion, puis tapez cette ligne
linux addons/amx/dlls/amxx_mm_i386.so
linux addons/hlguard/dlls/hlguard_mm_i586.so
Metamod est un meta mod. Plus généralement, du fait qu’il soit "méta", il vient au dessus des autres, c’est à dire qu’il fournit un langage pour écrire les autres modules : amx, statsme, hlguard.
Téléchargez la dernière version d’AMX Mod X
cd /usr/steam/hlds_l/cstrike
tar zxvf amxmodx-version-steam.tar.gz
L’arborescence d’AMX Mod X à quelque peu changé, mais globalement on s’y retrouve toujours:
configs custom
dlls
documentation
logs
modules
modules.ini
plugins
plugins.ini
scripting
Détail de la configuration
Fichier configs/amxx.cfg
Ce fichier contient les paramètres globaux de configuration. Il n’y a que très peu de choses à modifier . Ci -dessous les lignes à modifier:
amx_default_access "z"
// Center typed colored messages (last parameter is a color in RRRGGGBBB format)
amx_imessage "Bienvenue sur %hostname%" "000255100"
amx_imessage "Serveur de la team #KVnhttp://nkvd.net" "000100255"
L’accès "z" signifie que les joueurs sont des utilisateurs normaux, c’est ce qu’il nous faut.
< |