Installation du mod deflate pour apache2

Adminstration Server Linux, Debian No Comments »

Le module mod_deflate est un module du serveur web Apache qui fournit les filtres DEFLATE permettant à la sortie du serveur d’être compressée avant d’être envoyée au navigateur sur le réseau. Ce qui apporte une économie de bande passante pouvant aller parfois jusqu’à 80%, une légère consommation en plus du processeur ainsi que de la mémoire est à prévoir.

Quelques informations en plus ce module :

Installation

Deflate est installé par défaut avec Apache mais il n’est pas lancé, de plus même une fois lancé il sera nécessaire de le configurer.

Paramétrage

Dans /etc/apache2/conf.d/mod_deflate, ajoutez :

# Mod Deflate


 DeflateCompressionLevel 3



 AddOutputFilterByType DEFLATE text/plain
 AddOutputFilterByType DEFLATE text/xml
 AddOutputFilterByType DEFLATE text/html
 AddOutputFilterByType DEFLATE text/css
 AddOutputFilterByType DEFLATE image/svg+xml
 AddOutputFilterByType DEFLATE application/xhtml+xml
 AddOutputFilterByType DEFLATE application/xml
 AddOutputFilterByType DEFLATE application/rss+xml
 AddOutputFilterByType DEFLATE application/atom_xml
 AddOutputFilterByType DEFLATE application/x-javascript
 AddOutputFilterByType DEFLATE application/x-httpd-php
 AddOutputFilterByType DEFLATE application/x-httpd-fastphp
 AddOutputFilterByType DEFLATE application/x-httpd-eruby

 SetOutputFilter DEFLATE

 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary

 BrowserMatch ^Mozilla/4 gzip-only-text/html
 BrowserMatch ^Mozilla/4\.0[678] no-gzip
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

 # Make sure proxies don't deliver the wrong content
 Header append Vary User-Agent env=!dont-vary

Explications

DeflateCompressionLevel 3
Détermine le niveau de compression, les valeurs vont de 1 à 9, de base le choix est à 1.

AddOutputFilterByType DEFLATE text/html
Indique que les pages .html seront compressées.

SetOutputFilter DEFLATE
Active la compression.

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Ne compresse pas les fichiers de type .gif .jpg .jpeg .png car ils possèdent déjà une compression.

BrowserMatch ^Mozilla/4 gzip-only-text/html
Active que la compression des pages HTML pour Netscape 4.

Header append Vary User-Agent env=!dont-vary
Assurez-vous que les proxy ne livrent pas les mauvais contenus

Mise en production

Activez les deux modules suivants :

a2enmod headers
a2enmod deflate

Relancez Apache

/etc/init.d/apache2 restart

Pour vérifier que la compression soit fonctionnelle, vous pouvez aller sur ce site : www.gidnetwork.com

Installation et configuration du mod_security pour apache2 sous Debian

Adminstration Server Linux, Debian, Sécurité 14 Comments »

Le module Security est une sorte de firewall pour Apache qui apporte une solution aux problèmes de sécurité et d’attaques applicatives web. En effet, malgrés le déploiement de mesures de sécurité élevées sur un serveur web, il est toujours possible qu’une simple erreur de programmation dans un script « cgi » ou « php » mette en péril l’intégrité et la confidentialité des données stockées.
Pour faire simple ce module bloque les requêtes pouvant être dangereuses.
Exemple en image :

modsecurity

Installation.

Ce module n’est pas installé de base avec Apache, je vais vous proposer deux méthodes à vous de choisir la votre :
L’installation par la commande dpkg est très simple, wget doit être installé sur votre système.

wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_i386.deb

Installation du paquet :

dpkg -i mod-security-common_2.5.9-1_all.deb libapache-mod-security_2.5.9-1_i386.deb

Voila le module est installé. Maintenant on active ce dernier auprès d’Apache.

 a2enmod mod-security

L’installation du module Security est terminée

Configuration

La configuration du module Security consiste dans sa plus grande partie à ajouter des règles “de filtrage”.
Ces règles sont séparées en plusieurs fichiers (blacklist, proxy, règles de bases, rootkits, etc…).
On créé un répertoire modsecurity2 dans le répertoire /etc/apache2/, on se place dedans et on télécharge les règles.

mkdir /etc/apache2/modsecurity2/
cd /etc/apache2/modsecurity2/
wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/apache2-gotrootrules-modsec2.0-latest.tar.gz

Une fois le téléchargement terminé nous allons décompresser l’archive contenant les règles.

tar zxvf apache2-gotrootrules-modsec2.0-latest.tar.gz

Puis créez un fichiers nommé mod_security pour y ajouter les lignes suivantes :

vi /etc/apache2/conf.d/mod_security
# A adapter en fonction de la version du module qui est utilisé.


# Analyse uniquement les requêtes dynamiques.
#SecFilterEngine DynamicOnly

# Active le filtrage.
SecFilterEngine On

# Rejette les requêtes ayant le status 500.
SecFilterDefaultAction "deny,log,status:500"

# Quelques règles de bases.
SecFilterScanPOST On
SecFilterCheckURLEncoding On
SecFilterCheckCookieFormat On
SecFilterCheckUnicodeEncoding Off
SecFilterNormalizeCookies On
# Active la version 1 (RFC 2965) cookies
SecFilterCookieFormat 1

# Ne donne aucune précision sur le serveur web.
SecServerResponseToken Off

# Scanner le flux de sortie.
#SecFilterScanOutput On
#SecFilterOutputMimeTypes "(null) text/html text/plain"

# Autorise presques toutes les valeurs de bytes.
SecFilterForceByteRange 1 255

# Masquer le serveur.
#fake server banner - NOYB used - no one needs to know what we are using
SecServerSignature "NOYB"

#SecUploadDir /tmp
#SecUploadKeepFiles Off

# Only record the interesting stuff
SecAuditEngine RelevantOnly
SecAuditLog logs/audit_log

# Configuration du module de debuggage.
SecFilterDebugLevel 0
SecFilterDebugLog /var/logs/apache2/modsec_debug_log

# Règles d'exlusion.
# Cette ligne doit rester devant les autres.
Include /etc/apache2/modsecurity2/exclude.conf

# Règles de protections.
Include /etc/apache2/modsecurity2/rules.conf

# Règles dédiées au spam.
Include /etc/apache2/modsecurity2/blacklist.conf

# Règles de filtrage des hotes, proxy, etc...
Include /etc/apache2/modsecurity2/blacklist2.conf

# Règles interdisant certains client, robots, etc...
Include /etc/apache2/modsecurity2/useragents.conf

# Protection contre les rootkits.
Include /etc/apache2/modsecurity2/rootkits.conf

# Règle empéchant l'utilisation du serveur comme proxy.
# A utiliser seulement si le serveur n'est pas en mod proxy.
Include /etc/apache2/modsecurity2/proxy.conf

# Quelques règles de plus, uniquement pour Apache2.
Include /etc/apache2/modsecurity2/apache2-rules.conf

La configuration du module est terminé, il ne reste plus qu’a relancer Apache.

/etc/init.d/apache2 restart

Mise à jour des règles.

Un script a été conçu pour permettre le téléchargement des nouvelles règles automatiquement.
Cette méthode nécessite l’ajout d’une tâche dans votre crontab.

Dans le répertoire /etc/cron.d/ nous allons créer un fichier modsecurity contenant ceci :

vi /etc/cron.d/modsecurity
# Tout les jours à 5h30 du matin.
30 5 * * * /etc/apache2/modsecurity2/modsec.sh

Ce script bash a été adapté pour une distribution Debian, il aura pour nom modsec.sh et sera placé dans /etc/apache2/modsecurity2/

vi /etc/apache2/modsecurity2/modsec.sh
#!/bin/sh

# Autoupdater for modsec rulesets.
 #
 # This script will attempt to update your rulefiles, and restart apache.
 # If it apache does not start after changing rules, it will roll back to
 # the old ruleset and restart apache again.
 #
 # Version: $Id: modsec.sh,v 1.1 2005/06/29 18:07:53 olei Exp $
 # URL: http://cs.evilnetwork.org/cycro
 # Copyright 2005, All Rights Reserved

APACHESTART="/usr/sbin/apache2ctl start"
 MODSECPATH="/etc/apache2/modsecurity2 "
 APACHEPID="/var/run/apache2.pid"

##########################################################################
 ######### you probably don't need to change anything below here ##########
 ##########################################################################

# urls
 BLACKLIST="http://www.gotroot.com/downloads/ftp/mod_security/blacklist.conf"
 RULES="http://www.gotroot.com/downloads/ftp/mod_security/rules.conf"
 APACHE2="http://www.gotroot.com/downloads/ftp/mod_security/apache2-rules.conf"

# internal
 PID=`cat ${APACHEPID}`
 UPDATED=0

echo -n "Changing PWD: "
 cd ${MODSECPATH}
 echo `pwd`

# blacklist
 echo -n "Updating blacklist.conf: "
 /usr/bin/wget -t 30 -O blacklist.conf.1 -q ${BLACKLIST}
 if [ `md5sum blacklist.conf | cut -d " " -f1` != `md5sum blacklist.conf.1 | cut -d " " -f1` ] ; then
 /bin/mv blacklist.conf blacklist.conf.bak
 /bin/mv blacklist.conf.1 blacklist.conf
 UPDATED=`expr $UPDATED + 1`
 echo "ok."
 else
 echo "allready up to date."
 /bin/rm -f blacklist.conf.1
 fi

# rules
 echo -n "Updating rules.conf: "
 /usr/bin/wget -t 30 -O rules.conf.1 -q ${RULES}
 if [ `md5sum rules.conf | cut -d " " -f1` != `md5sum rules.conf.1 | cut -d " " -f1` ] ; then
 /bin/mv rules.conf rules.conf.bak
 /bin/mv rules.conf.1 rules.conf
 UPDATED=`expr $UPDATED + 1`
 echo "ok."
 else
 echo "allready up to date."
 /bin/rm -f rules.conf.1
 fi

# apache2 rules
 echo -n "Updating apache2-rules.conf: "
 /usr/bin/wget -t 30 -O apache2-rules.conf.1 -q ${APACHE2}
 if [ `md5sum apache2-rules.conf | cut -d " " -f1` != `md5sum apache2-rules.conf.1 | cut -d " " -f1` ] ; then
 /bin/mv apache2-rules.conf apache2-rules.conf.bak
 /bin/mv apache2-rules.conf.1 apache2-rules.conf
 UPDATED=`expr $UPDATED + 1`
 echo "ok."
 else
 echo "allready up to date."
 /bin/rm -f apache2-rules.conf.1
 fi

# try restart
 if [ "$UPDATED" -gt "0" ]; then
 echo -n "Restarting apache: "
 /bin/kill -HUP ${PID} 2>/dev/null
 # did it work?
 if `/bin/kill -CHLD ${PID} >/dev/null 2>&1`; then
 echo "ok."
 exit 0
 fi
 echo "error. Apache not running."

# blacklist
 echo -n "Rolling back blacklist.conf: "
 /bin/mv blacklist.conf blacklist.conf.new
 /bin/mv blacklist.conf.bak blacklist.conf
 echo "ok."

# rules
 echo -n "Rolling back rules.conf: "
 /bin/mv rules.conf rules.conf.new
 /bin/mv rules.conf.bak rules.conf
 echo "ok."

# apache2 rules
 echo -n "Rolling back apache2-rules.conf: "
 /bin/mv apache2-rules.conf apache2-rules.conf.new
 /bin/mv apache2-rules.conf.bak apache2-rules.conf
 echo "ok."

# try starting httpd again
 `${APACHESTART}`
 PID=`cat ${APACHEPID}`

# did that fix the problem?
 if `/bin/kill -CHLD ${PID} >/dev/null 2>&1`; then
 echo "That did the trick."
 exit 0
 fi

echo "Fatal: Apache still not running! Run apache2ctl -t to find the error."
 exit 999
 fi

Il faut rendre ce script exécutable.

chmod +x /etc/apache2/modsecurity2/modsec.sh

Installation du mod evasive sur apache 2.2 pour contrer des attaques DOS

Adminstration Server Linux, Sécurité 8 Comments »

Cette après midi après plusieurs test de charge du serveur Web, je me suis rendu compte que c’était un jeu d’enfant de faire planter à la fois le apache mais aussi la machine.

Comment me direz-vous, tous simplement en flood le serveur de centaine de thread, la charge CPU monte la ram aussi, vient ensuite le tour de la swap et puis c’est la fin, le serveur ne répond plus à rien sauf au ping.

htop

Après quelque recherche j’ai installé le mod_evasive qui permet de détecter les floods et les tentatives de déni de service.  Ce module renvoie des erreurs HTTP 403 lorsque le seuil de sollicitation du serveur Web par IP a été dépassé. Ce blocage dure pendant 10 secondes (paramétrable). Il est aussi possible de demander au module d’exécuter une commande lorsque qu’un flood est détecté, il est ainsi possible d’ajouter une règle Iptables à chaque nouvelle détection de flood.

apt-get install libapache2-mod-evasive

On édite le fichier de configuration d’apache2 et on ajoute les lignes suivante :

vi /etc/apache2/apache2.conf
# mod_evasive


DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 50
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 300
DOSEmailNotify "admin@majorxtrem.be"
DOSLogDir "/var/log/mod_evasive/"
#DOSSystemCommand "/sbin/iptables -I INPUT -s %s -j DROP"
DOSSystemCommand "/bin/echo %s >> /var/log/mod_evasive/dos_evasive.log && /bin/date >> /var/log/mod_evasive/dos_evasive.log"
DOSWhiteList 127.0.0.1
DOSWhitelist 66.249.65.*
DOSWhitelist 66.249.66.*
DOSWhitelist 66.249.67.*

Les valeurs données dans cette exemple sont à adapter selon votre serveur.

Explications :

DOSHashTableSize Size of the hash table. The greater this setting, the more memory is required for the look up table, but also the faster the look ups are processed. This option will automatically round up to the nearest prime number.
DOSPageCount définie le nombre de fois ou une page peut être appelée par la même adresse IP avant que celle-ci soit bloquée.
DOSSiteCount définie le nombre de fois ou un site peut être demandé par la même adresse IP avant que celle-ci soit bloquée.
DOSPageInterval détermine un interval en seconde qui autorise l’affichage de la même page avant un bloquage.
DOSSiteInterval détermine un interval en seconde qui autorise l’affichage de d’un même site avant un bloquage.
DOSBlockingPeriod détermine la durée de bloquage.
DOSEmailNotify permet qu’un email soit envoyé à chaque bloquage d’adresses IP.
DOSSystemCommand permet de définir une commande bien précise en cas d’attaque (bannissement de l’adresse IP dans IPTables par exemple).
DOSLogDir détermine le chemin ou seront stockés les logs d’attaques.
DOSWhiteLt définie une liste blanche d’adresse IP.

DOSSystemCommand "/sbin/iptables -I INPUT -s %s -j DROP"

Cette commande permet de bloquer une adresse IP à l’aide d’IPTable.
Cependant l’utilisation de DOSSystemCommand doit être prise au sérieux car en cas d’attaques massives l’instruction déterminée entre ”“ sera répétée autant de fois qu’il faut.

Pour que l’adresse IP soit ajoutée à IPTables il est nécessaire que l’utilisateur “www-data” ait les droits pour manipuler IPTables

On crée le dossier /var/log/mod_evasive/ et on lui donne les bon droits

mkdir /var/log/mod_evasive/
chown -R www-data /var/log/mod_evasive/

On charge le module

a2enmod mod-evasive

On termine en redémarrant apache

/etc/init.d/apache2 restart

On va maintenant tester la configuration à l’aide d’un petit script perl mais il faut avant tous commenter temporairement la ligne DOSWhiteList 127.0.0.1 et redémarrer apache

vi test.pl
#!/usr/bin/perl

# test.pl: small script to test mod_dosevasive's effectiveness

use IO::Socket;
use strict;

for(0..100) {
  my($response);
  my($SOCKET) = new IO::Socket::INET( Proto   => "tcp",
                                      PeerAddr=> "127.0.0.1:80");
  if (! defined $SOCKET) { die $!; }
  print $SOCKET "GET /?$_ HTTP/1.0nn";
  $response = <$SOCKET>;
  print $response;
  close($SOCKET);
}

On le rend exécutable

chmod +x test.pl

Et on le lance

./test.pl

Code Source & Résultat

Votre serveur apache est désormais capable de réagir sur des attaques DOS

Réalisasion d’un server COD4 sous Debian

Adminstration Server Linux, Debian, Jeux Vidéo 2 Comments »

1 Préparation du server

Une fois que la machine est installée, ou que vous venez de recevoir les accès du serveur que vous louez, il y a une série de petites choses à faire pour un fonctionnement optimal du serveur.

1.1 Mise à jour

Sur Debian il est très facile de mettre à jour son système, il faut être en root (su)

# apt-get update && apt-get upgrade

1.2 Installation des outils essentiel

Pour que votre server fonctionne correctement il faut ajouter certain programme et services. Nous allons les installer tous d’un coup et au fur et à mesure du tutorial les configurer.

# apt-get install vsftpd ssh vim ntpdate bzip2 htop md5tools build-essential screen libstdc++6-dbg

1.3 Configuration du server FTP : vsftpd

La configuration de vsftpd est assez simple et ce toruve dans le fichier /etc/vsftpd.conf

# vim /etc/vsftpd.conf

Une fois dans l’éditeur vim il faut faire insert pour passer en mode insertion, vous ne devez avoir dans votre configuration uniquement les lignes suivantes active, les autre doivent être commentées en utilisant un #

listen=YES
local_enable=YES
write_enable=YES
local_umask=001
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Pour sauvegarder et quitter, vous faites escape et ensuite :wq

Vous redémarre maintenant votre server FTP

# /etc/init.d/vsftpd restart

1.4 Ajout de l’utilisateur COD4

Jusqu’à présent vous travailliez en root, c’est le super-admin de la machine. Il est très dangereux de faire tourner des services directement en root. Il convient donc de créer un simple utilisateur pour lancer les serveurs.

# adduser cod4
Ajout de l'utilisateur « cod4 »...
Ajout du nouveau groupe « cod44 » (1001)...
Ajout du nouvel utilisateur « cod44 » (1001) avec le groupe « cod44 »...
Création du répertoire personnel « /home/cod4 »...
Copie des fichiers depuis « /etc/skel »...
Enter new UNIX password:
Retype new UNIX password:
passwd : le mot de passe a été mis à jour avec succès
Modification des informations relatives à l'utilisateur cod4
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []: COD4_user
N° de bureau []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Ces informations sont-elles correctes ? [o/N] o

Vous venez de créer un utilisateur cod4 avec comme répertoire personnel /home/cod4 et le mot de passe ce que vous avez entrez.

Il est temps de tester votre serveur FTP en vous logant avec le user cod4. Vous arrivez dans un répertoire vide, c’est votre dossier personnel /home/cod4.

2 Installation et configuration du master install

Nous allons maintenant installer cod4 de façon professionnel et propre, les GSP utilisent en effet la même technique pour déployer un grand nombre de serveur d’un coup.

2.1 Copie des fichiers du jeu

2.1.1 Via le lecteur DVD

Si vous êtes à coté du serveur et que celui-ci dispose d’un cd-rom au tant en profiter.

Tous d’abord, on va crée le dossier master dans le dossier personnel du user cod4

# mkdir /home/cod4/master

Insérez le DVD dans le lecteur, le lecteur se trouve dans /media/cdrom. On va copier les fichier qui nous intéressent vers le dossier /home/cod4/master/

# cp -r /media/cdrom/Setup/Data/* /home/cod4/master/ 

Il a copié prés de plus de 1 GO de vidéo complètement inutile, on les supprime de la manière suivante

# rm -r /home/cod/master/main/video

2.1.2 Via le réseau

Si la première méthode ne vous plaie pas ou que vous n’avez pas moyen de le faire, connectez vous au server ftp avec le user cod4.

Ensuite créez un dossier master et dans ce dossier vous copier les fichiers et dossiers se trouvant dans le dossier \Setup\Data\ du DVD.

Ici aussi inutile d’uploader sur le serveur les vidéos du dossier \Setup\Data\main\video

2.1.3 Vérification

Une fois copier vous devez avoir quelque choses de similaire dans votre dossier /home/cod4/master

# ls /home/cod4/master
binkw32.dll cod4.ico cod.bmp codlogo.bmp iw3mp.exe iw3sp.exe localization.txt main miles Mods mss32.dll zone

2.2 Téléchargement et installation des binaires linux

Les binaires linux sont produits par une ICCULUS, c’est donc sur leur site qu’il faut allé récupérer les deniers binaires en date => http://icculus.org/news/news.php

# mkdir /home/cod4/temp
# cd /home/cod4/temp
# wget wget http://www.shrapnet.com/downloads/cod4-linux-server-06282008.tar.bz2
# tar xvfj cod4-linux-server-06282008.tar.bz2

Avant de continuer il est important de savoir si les données que vous avez copiées proviennent dans DVD français ou anglais. Pour le savoir rien de plus simple

# ls /home/cod4/master/zone

Les binaires ne sont disponible quand anlgais, si vous avez une version française pas de panique, vous aurez juste une manipulation supplémentaire à faire.

# cd cod4-linux-server/cod4-linux-server
# cp -r ./* /home/cod4/master/

Pour la version française il faut faire en plus

# cp -r zone/english/* /home/cod4/master/zone/french/

2.3 Test du server

On va vérifier si tous fonctionne correctement, pour ce test on utilise aucune config, mods ou quoi que ce soit. On va d’abord par définir le propriétaire des fichiers et ensuite on va se loguer en temps que l’utilisateur cod4.

# chown -R cod4 /home/cod4
# chgrp -R cod4 /home/cod4
# su cod4
$ cd ~/master
$ ./cod4_lnxded

Là vous devriez vous le serveur démarrer une fois fait, vous devez lancer une map.

map mp_backlot

Vous pouvez maintenant vous connectez au server en utilisant son ip et le port par défaut 28960.

C’est juste un test pourvoir si le serveur se lance correctement et que le patch est installé, il n’est pas du tous jouable notamment à cause du PB pas à jour.

Coupez le server.

quit

On va maintenant s’occuper de configurer le serveur a proprement parler

2.4 Mise à jour et installation de Punkbuster

On va exécuter pbsetup, il fonctionne de la même façon que la version windows à la différence qu’il est en ligne de commande. On l’initialise, ensuite on ajoute le master install et le met à jour.

$ cd ~/master
$ ./pbsetup.run –e
$ ./pbsetup.run -ag cod4 -ap /home/cod4/master/ --i-accept-the-pb-eula
$ ./pbsetup.run -u --i-accept-the-pb-eula

3 Configuration des servers

La base de votre serveur est maintenant opérationnel, on va maintenant s’occuper de lancer une voir plusieurs instance du serveur, en effet il est tous à fait possible de lancer plusieurs serveur cod4 sur la même machine à condition qu’ils ne soient pas sur le même port.

A fin de vous facilité la vie, voici un script qui vous permettra de gérer le Start-Stop-Reboot de votre serveur, il est même compatible avec une interface web de gestion spécialement.

3.1 Screen fonctionne-il ?

On commence par tester si on peut ouvrir un screen, en effet on en a besoin pour lancer les serveurs cod dedans car on peut les lancer en arrière plant. Si vous lancer un serveur directement depuis votre Shell, celui-ci devra rester en permance ouvert

$ screen
Cannot open your terminal '/dev/pts/0' - please check.

Si vous avez ce message faites

$ exit
# chmod 777 /dev/pts/0
# su cod4

Taper exit pour quitter le screen que vous venez d’ouvrir

exit

3.2 Installation du script de gestion des serveurs

Uploader avec le ftp le script server_cod4 à la racine, c’est-à-dire à coté du dossier master.

Il va vous permettre de gérer tous vos serveur cod4 sur cette machine.

Une fois uploadé il faut lui donner des droits d’exécution

$ chmod 775 ~/server_cod4

Il fonctionne de la manière suivante server_cod4

Les actions a votre disposition sont : start, stop, restart, list et check.

3.2.1 < action >

start : démarre le serveur sur le port avec le mod
stop : arrête le serveur sur le port
restart : reboot le serveur sur le port avec le mod
list permet de voir quel serveur tourne actuellement

$ ./server_cod4 list
6155.cod4_28960 (Detached)
1 Socket in /var/run/screen/S-cod4.

check : retourne 0 ou 1 si le serveur est lancé ou non, cette fonction sert uniquement avec l’interface web

3.2.2

Vous avez le choix entre un port de 20000 à 40000

3.2.3

C’est le nom du répertoire contenant le mod. Dans le cas ou vous ne le spécifiez pas le serveur démarre en Ranked.

3.3 Premier démarrage du serveur

On va lancer de nouveau le serveur à vide sans config à fin qu’il créer les fichiers et dossier de votre serveur.

./server_cod4 start 28960 promod
Server cod4 successfully on 28960
$ ./server_cod4 list
6155.cod4_28960 (Detached)
1 Socket in /var/run/screen/S-cod4.

Vous devriez obtenir quelque chose de semblable. On va couper le server pour configurer punkbuster, installer le promod et la cfg.

$ ./server_cod4 stop 28960
Stopping server cod4 on 28960

On va faire un petit état des lieux avant de continuer pour bien comprendre ce qu’on à fait jusqu’a présent.

$ cd ~
$ ls
cod4_28960 master server_cod4

Le dossier master contient la base de votre serveur
Le dossier cod4_28960 contient les fichiers de configuration du serveur tournant sur le port 28960

server_cod4 c’est le script de lancement

3.4 Config de punkbuster

$ cd ~/master
$ ./pbsetup.run -ag cod4 -ap /home/cod4/cod4_28960/ --i-accept-the-pb-eula
$ ./pbsetup.run -u --i-accept-the-pb-eula

3.5 Ajout de la CFG

Via le FTP uploader votre CFG dans le dossier /cod4_28960/mods/promod/ sous le nom server.cfg

L’emplacement est très important, vous ne devez pas installer de CFG dans le dossier master, elle serait en effet active sur tous les autres serveurs que vous lanceriez.

3.6 Ajout du mod

Toujours dans le dossier /cod4_28960/mods/promod/ uploader tous les fichiers du mods

Mais ce n’est pas tous, et cette partie est extrêmement importante, chaque mod sur cod4 à un fichier mod.ff, vous devez le également uploader dans le master install ce fichier exactement au même endroit.

~/cod4_28960/mods/promod/mod.ff

~/master/mods/promod/mod.ff

Vous l’aurez compris, si vous installer un mod < mon_mods > vous devez avoir dans l’install du server et dans le master install le même fichier au même endroit

~/cod4_/mods/< mon_mods > /mod.ff

~/master/mods/< mon_mods > /mod.ff

3.6.1 / !\ Piège à éviter / !\

Vous ne pouvez pas mettre dans le serveur cod4_28960 une version du promod dans le dossier mods/promod et une autre dans le dossier mods/promod du serveur cod4_29960.

Vous devez ABSOMUMENT mettre un nom différent si les mods ne sont pas identique et de même version.

3.7 Installation des scripts Punkbuster pour le streaming

Les éventuels scripts Punkbuster sont à uploader via le FTP dans le dossier /cod4_/pb

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Connexion
ipv6 ready