Installation d’un serveur Condition Zero sous Linux
lundi 15 juillet 2005.
Configuration Firewall
Nous allons détailler la configuration firewall, lorsque celui-ci est iptables sous GNU/Linux 2.4/2.6.
En entrée et sortie UDP/1200 UDP/27000 à 27015 (si le serveur tourne sur ce port) TCP/27030 à 27039
$EXTINF = Votre interface externe (Internet)
$INTINF = Votre interface au réseau local (LAN, WLAN)
$IPT = /sbin/iptables
$IPT -A INPUT -i $EXTINF-p udp --dport 1200 -j ACCEPT
$IPT -A OUTPUT -o $EXTINF -p udp --sport 1200 -j ACCEPT
$IPT -A INPUT -i $EXTINF -p udp --dport 27000:27015 -j ACCEPT
$IPT -A OUTPUT -o $EXTINF -p udp 27000:27015 -j ACCEPT
Si le serveur tourne sur le 27015
$IPT -A OUTPUT -p tcp --sport 27030:27039 -j ACCEPT
$IPT -A INPUT -p tcp --dport 27030:27039 -j ACCEPT
Si vous souhaitez ne pas faire de filtrage en sortie, tapez :
$IPT -A OUTPUT -o $EXTINF -p tcp -j ACCEPT
$IPT -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"
$IPT -t nat -A PREROUTING -p udp --dport 1200 -j DNAT --to-destination $IP_SERVEUR:1200
$IPT -t nat -A PREROUTING -p udp --dport 27000:27039 -j DNAT --to-destination $IP_SERVEUR:27000:27039
$IPT -t nat -A PREROUTING -p tcp --dport 27000:27039 -j DNAT --to-destination $IP_SERVEUR:27000:27039
Installation du serveur HLDS
La première étape consiste à télécharger le serveur, et à créer un compte Steam par la même occasion :
wget http://www.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
[....
....]
Enter 'yes' to accept this agreement, 'no' to decline: yes
extracting steam...done
./steam -create ritalman@alphacore.net motdepasse "C'est une documentation ?" oui
Checking bootstrapper version ...
Creating Account
Account Created successfully
Ensuite, il ne reste plus qu’à mettre à jour les fichiers Condition Zero :
./steam -command update -game czero -username ritalman -password motdepasse -remember_password
Checking bootstrapper version ...
Updating Installation
Logging in as 'ritalman'
No installation record found at ./
Checking/Installing 'Condition Zero Base Content' version 14
Downloading: ./\czero\cl_dlls\client.dll
Downloading: ./\czero\dlls\cs_amd64.so
Downloading: ./\czero\dlls\cs_i386.so
Downloading: ./\czero\dlls\mp.dll
[...]
Downloading: ./\czero\decals.wad
Downloading: ./\czero\GameServerConfig.vdf
Downloading: ./\czero\hlbasics.wad
Downloading: ./\czero\liblist.gam
Downloading: ./\czero\mapcycle.txt
Downloading: ./\czero\motd.txt
Downloading: ./\czero\playlist.txt
Downloading: ./\czero\server.cfg
Downloading: ./\czero\steam.inf
Downloading: ./\czero\titles.txt
Downloading: ./\czero\tutordata.txt
No installation record found at ./
Checking/Installing 'Counter-Strike Base Content' version 15
Downloading: ./\cstrike\cl_dlls\client.dll
Downloading: ./\cstrike\dlls\cs_amd64.so
Downloading: ./\cstrike\dlls\cs_i386.so
[...]
Downloading: ./\cstrike\rebuy.txt
Downloading: ./\cstrike\server.cfg
Downloading: ./\cstrike\spectcammenu.txt
Downloading: ./\cstrike\steam.inf
Downloading: ./\cstrike\titles.txt
Downloading: ./\cstrike\torntextures.wad
Downloading: ./\cstrike\tswad.wad
Checking/Installing 'Linux Server Engine' version 15
Checking/Installing 'Half-Life Base Content' version 7
HLDS installation up to date
Le serveur est à jour, passons à sa configuration :
Configuration du serveur
La première étape consiste à éditer le fichier czero/server.cfg
sv_aim 0
// disable clients' ability to pause the server
pausable 0
// default server name. Change to "Bob's Server", etc.
hostname "Serveur Condition Zero"
// maximum client movement speed
sv_maxspeed 320
// 20 minute timelimit
mp_timelimit 20
sv_cheats 0
// load ban files
exec listip.cfg
exec banned.cfg
Vous pouvez rajouter plein d'options dans ce fichier : adresse IP sur laquelle écouter, port, mapcycle...
Fichier liblist.gam
Nous allons le modifier pour qu’il supporte Metamod
game "Condition Zero"
url_info "www.cs-conditionzero.com"
url_dl ""
version "1.0"
size "184000000"
svonly "0"
secure "1"
type "multiplayer_only"
cldll "1"
hlversion "1111"
nomodels "1"
nohimodel "1"
mpentity "info_player_start"
gamedll "dlls\mp.dll"
gamedll_linux "addons/metamod/dlls/metamod_i386.so"
trainmap "tr_1"
fallback_dir "cstrike"
detailed_textures "1"
Installation de Metamod
Le metamod permet de lancer d’autres mods utiles pour l'administration/l'amélioration du serveur.
cd /chemin/vers/hlds/
cd czero
mkdir addons
mkdir addons/metamod
mkdir addons/metamod/dlls
cd addons/metamod/dlls
tar zxvf metamod-version-linux.tar.gz
cd ..
touch plugins.ini
Editez le fichier plugins.ini
linux addons/amx/dlls/amxx_mm_i386.so
linux addons/hlguard/dlls/hlguard_mm_i586.so
Configuration d’Amx Mod X
cd /home/hlds/czero/
tar zxvf amxmodx-version-steam.tar.gz
cd addons/amxx/
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 :
<code>
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 #KV\nhttp://nkvd.net" "000100255"
L'accès "z" signifie que les joueurs sont des utilisateurs normaux, c’est ce qu’il nous faut.
Pour faire sauter une ligne dans l’affichage du bandeau défilant, utilisez \n c’est comme en PHP
Fichier configs/mysql.cfg
A modifier si vous utilisez des plugins se servant d’une base de donnée MySQL
amx_mysql_host "127.0.0.1"
amx_mysql_user "root"
amx_mysql_pass "********"
amx_mysql_db "amx"
Attention : AMX Mod X ne fournit pas le schéma à utiliser pour créer la base de donnée.
Fichier configs/core.ini
; Configuration file for AMX Mod X
amxx_logdir addons/amxx/logs
amxx_configsdir addons/amxx/configs
amxx_customdir addons/amxx/custom
amxx_modules addons/amxx/modules.ini
amxx_plugins addons/amxx/plugins.ini
amxx_pluginsdir addons/amxx/plugins
amxx_modulesdir addons/amxx/modules
amxx_vault addons/amxx/configs/vault.ini
csstats_score addons/amxx/custom/csstats.amx
csstats addons/amxx/custom/csstats.dat
Ce fichier ne doit à priori pas être modifié, sauf si vraiment vous en faites une utilisation particulière. Il peut aussi servir à faire migrer votre ancienne configuration des plugins et modules AMX Mod, vers une configuration AMX Mod X
Fichiers configs/clcmds.ini et cmds.ini
Ces fichiers contiennent vos raccourcis vers les commandes les plus utilisées : kick, ban, changemap ...
Ils sont à éditer en fonction de vos besoins, je ne m’attarde pas sur la configuration qui est relativement simple à comprendre.
Fichier configs/configs.ini
Ce fichier contient la liste des configurations à faire prendre au serveur pour qu’il devienne un serveur conforme aux règles Clanbase ou aux règles CPL...
Ne le modifiez pas si vous ne savez pas comment on modifie un fichier server.cfg
Fichier configs/conmotd.txt
C’est le « Connection MOTD » c’est le message affiché lors de la connexion au serveur dans la console. Ca devient obsolète avec CS 1.6 puisque par défaut on ne voit pas la console ;)
Sinon vous verrez apparaître ca :

Fichier configs/cvars.ini
Il contient toutes les variables côté serveur que l’on peut modifier via le menu : amx_menu
Modifiez les variables qui seront affichées par défaut et les choix possibles, ci-dessous, un exemple :
"mp_timelimit" "0" "30" "45" "u"
"mp_friendlyfire" "0" "1" "u"
"mp_autoteambalance" "0" "1" "2" "u"
...
Fichier configs/maps.ini
Même chose, sauf que dans ce cas, il s’agit des maps que l’on peut afficher dans le menu, ainsi qu’une brève description de celles-ci.
Fichier configs/speech.ini
C’est le fichier qui contient toutes les voix (Hey arrêtez ca !) (T’inquiètes, on leur fera payer ca au centuple) Ceux-là je vous laisse les modifier pour faire rigoler tout le monde.
Fichier users.ini
C’est le fichier qui détermine qui peut faire quoi sur le serveur. Il est très puissant, et faîtes donc bien attention à qui vous donnez des droits.
Ci -dessous voici un utilisateur qui est l’administrateur tout puissant du serveur :
"#KV | RItalMan" "mot_passe" "abcdefghijklmnopqrstu" "abcde"
Fichier modules.ini
Ce fichier est lègèrement plus important, puisqu’il permet de gérer l’accès à une base MySQL par exemple. Mon fichier désactive le « Fun mode » que je trouve débile à souhait, et active l’appel à une base MySQL
; Fun - This has extra functions for "extra" stuff
;fun_amx_i386.so
; Engine - This has engine functions core to half-life
engine_amx_i386.so
; MySQL - This adds MySQL connection support
mysql_amx_i386.so
; Counter-Strike - This adds functions specific to Counter-Strike
cstrike_amx_i386.so
; CS Stats - This adds functionality for CS statistical information
csstats_amx_i386.so
Attention, par défaut, le fichier mysql_i386.so n’est pas executable, pour palier à ce problème faites :
chmod +x mysql_amx_i386.so
Voilà pour la configuration de base d’AMX Mod.
Attention, vous avez dans un fichier plugins.ini qui quand à lui vous permet de rajouter des modules compilés par vous, ou trouvez sur internet ; ex : high ping kicker ou autre.
D’une manière général, si vous rajoutez un plugin ; n’oubliez pas de rajouter son nom *.amx dans le fichier plugins.ini
Fichier plugins.ini
Extrait de configuration :
;admin.amx ; admin base (required for any admin-related)
admin_mysql.amx ; admin base - MySQL version (comment admin.amx)
admincmd.amx ; basic admin console commands
adminhelp.amx ; help command for admin console commands
adminslots.amx ; slot reservation
....
high_ping_kicker.amx ;Kicks pings that are higher than 100ms
Dans le répertoire scripting vous trouverez tout le nécessaire pour pouvoir compiler vos propres plugins AMX Mod X.
Configuration d’HLGuard
cd /chemin/vers/hlds/czero
unzip hlguard_version.zip
cd addons/hlguard/
Le fichier a éditer est : hlguard.cfg
La configuration de base est très bonne, il n’y a pratiquement rien à changer, sauf si vous faîtes tourner le serveur en LAN ou sur Internet :
hlg_exec addons/hlguard/config/hlg_net.cfg // InterNET mode - Bans by UniqueID
// hlg_exec addons/hlguard/config/hlg_lan.cfg // LAN mode - Bans by IP address
// hlg_exec addons/hlguard/config/hlg_league.cfg
Commentez et décommentez donc celui qui vous convient le mieux.
Vous aurez ensuite à éditer le fichier correspondant dans le répertoire config, mais là encore, il y a peu de choses à changer.
Vous pouvez bien sûr lancer tout plein d’autres mods et vous amuser à les configurer, le principe est toujours le même.
Lancement test du serveur
Vous pouvez, une fois la configuration terminée, lancer votre serveur ainsi :
cd /home/hlds
./hlds_run -game czero +maxplayers 12 +map de_aztec
Auto detecting CPU
Using AMD Optimised binary.
Auto-restarting the server on crash
Console initialized.
scandir failed:/home/florian/hlds/./cstrike/SAVE
scandir failed:/home/florian/hlds/./valve/SAVE
scandir failed:/home/florian/hlds/./platform/SAVE
Protocol version 47
Exe version 1.0.0.2/Stdio (czero)
Exe build: 02:38:45 Jul 7 2004 (2738)
STEAM Auth Server
couldn't exec language.cfg
Server IP address 192.168.0.3:27015
Metamod version 1.17.2 Copyright (c) 2001-2004 Will Day <willday@metamod.org>
Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `meta gpl' for details.
Downloading Security Module from Speakeasy.net ...
Completed downloading Security Module from Speakeasy.net
Server is in Secure Mode.
scandir failed:/home/florian/hlds/./cstrike/SAVE
scandir failed:/home/florian/hlds/./valve/SAVE
scandir failed:/home/florian/hlds/./platform/SAVE
scandir failed:/home/florian/hlds/cstrike/SAVE
Navigation map loaded.
couldn't exec listip.cfg
couldn't exec banned.cfg
Adding auth server 65.73.232.253:27040
Adding master server 207.173.177.12:27010
Adding master server 69.28.151.178:27010
source:
http://alphacore.net/spip/article.php3?id_article=62