Révisé le 02/12/08:
  1. Ajout de la conf rotation des logs
  2. Ajout gestion des sauvegardes
  3. Ajout rkhunter
  4. Mise à jour config awstats
Révisé le 16/02/09:
  1. Modif de la regexp pour pure-ftpd dans la config de fail2ban pour adapter à lenny
Révisé le 22/03/09: ajout d'une nouvelle régle fail2ban (voir rubrique Configuration fail2ban)

Exemple de configuration web, ftp, mysql d'un serveur dédié rps sur lequel un espace de 10 Go est attribué sur /home.
Cette ressource est montée en iSCSI.

Cette machine gérera 5 domaines différents appartenant à un seul propriètaire. Ils seront nommés:



Je détaillerais dans un premier temps cette config sur une debian etch et par la suite sur centos5.1 si j'ai le temps :)

Debian Etch:

Pré-configuration
Installation des paquets
Créations des répertoires
Configuration Apache2
Configuration mysql
Configuration awstats
Configuration phpmyadmin
Configuration pure-ftpd
Configuration memcached
Configuration fail2ban
Configuration des sauvegardes
Configuration de la surveillance et de la notification par sms

On part du principe que le seul service installé est ssh.

On se connecte donc en ssh et on lance quelques commandes histoire de vérifier un peu l'environnement:

Préconfiguration
Je crée tout de suite un utilisateur,  je modifie ensuite /etc/ssh/sshd_config en passant PermitRootLogin à no
et je modifie également la directive Port du même fichier pour spécifier un autre port que le 22 (trop connu).


#adduser monuser
...
#vi /etc/ssh/sshd_config

PermitRootLogin yes  devient PermitRootLogin no
Port 22  devient Port xx (à vous de voir pour xx)

Tout en conservant ma session ouverte je redémarre ssh (/etc/init.d/ssh restart) et je teste la nouvelle connexion
depuis une autre console : ssh -pxx monuser@xx.xx.xx.xx


Par défaut le démon atd est lancé et comme il ne sert pratiquement jamais, autant le dévalider:
#/etc/init.d/atd stop
#update-rc.d -f atd remove

Je supprime également les différents services dans /etc/inetd.conf et je valide:
#killall -HUP inetd

S'ils existent je supprime également nfs-common (peu probable dans le cas d'un montage /home en iSCSI) et portmap:
#/etc/init.d/nfs-common stop
#/etc/init.d/portmap stop
#update-rc.d -f nfs-common remove
#update-rc.d -f portmap remove
Je vais ensuite modifier le sources.list afin d'ajouter mes dépôts favoris:

#vi /etc/apt/sources.list
insertion des nouvelles sources et au final j'ai donc:

# cat /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ etch main

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

deb http://www.backports.org/debian/ etch-backports main
deb http://packages.dotdeb.org etch all

Mise à jour de la base de paquets:
#apt-get update

Et pour éviter d'avoir à chaque update un message d'erreur sur la clé backports:
#apt-get install debian-backports-keyring

Installation des paquets
J'installe ensuite le nécessaire je détaille ligne par ligne mais tous les paquets peuvent bien sûr être installés en une passe:

#apt-get install unzip        (nécessaire pour les thèmes de phpmyadmin par exemple)
#apt-get install sysutils tofrodos  (contiennent entre autres dos2unix )
#apt-get install apache2  (le serveur web )
#apt-get install libapache2-mod-php5   (le module apache2 de php5)
#apt-get install php5-mysql php5-gd php5-mcrypt php5-mhash php5-xmlrpc  (quelques extensions de base pour php5)
#apt-get install php5-memcache   (pour la gestion des sessions php5)
#apt-get install php5-apc   (pour optimiser les scripts php5)
#apt-get install php5-cli    (pour utiliser des scripts en ligne de commande par exemple dans un cron)
#apt-get install memcached  (le demon qui gerera les sessions php5)
#apt-get install mysql-server-5.0  (le serveur  mysql)
#apt-get install libgoogle-perftools0  (pour optimiser mysql si distrib-32 bits voir http://www.dotdeb.org )
#apt-get install pure-ftpd  (le serveur ftp)
#apt-get install fail2ban  (pour dégager les blaireaux)
#apt-get install htop  (un équivalent de top plus pratique)
#apt-get install wget (pour récupérer différents softs)

Le jeu des dépendances fera le nécessaire pour le reste.

J'arrête ensuite les services démarrés en fin d'install:

#/etc/init.d/mysql stop
#/etc/init.d/apache2 stop
#/etc/init.d/openbsd-inetd stop   (pure-ftpd est installé dans l'inetd par défaut)

Création des répertoires

Le répertoire /home disposant du maximum d'espace disponible je vais donc installer les sites dans celui-ci:

#cd /home
#mkdir sites && cd sites
#mkdir -p {web,forum,liens,stats,phpmyadmin}/{www,logs,cgi-bin}
#chown -R www-data:www-data *

Le répertoire logs a été créé dans chaque site mais je configurerais par la suite apache de telle façon que tous les logs
des sites arrivent dans /home/stats/logs.

Configuration Apache2

Je vais ensuite configurer Apache pour déclarer des vhosts:

#cd /etc/apache2
#vi apache2.conf

Les seuls modifs apportées sont les suivantes:

ServerTokens Full  devient ServerTokens Prod
ServerSignature On devient ServerSignature Off
NameVirtualHost *:80  devient NameVirtualHost xx.xx.xx.xx:80  (xx.xx.xx.xx = adresse IP de la machine)

SetEnvIf Request_URI "favicon\.ico"   discard     (pour éviter de logguer les File doesn't exist favicon.ico et robots.txt dans les logs
SetEnvIf Request_URI "robots\.txt"    discard    

Je vais ensuite configurer les vhosts:

vhost default   (je le conserve pour effectuer quelques tests via l'ip en attendant une éventuelle propagation dns.
                          Les logs de celui-ci ainsi que ceux de stats et phpmyadmin arriveront dans le répertoire par défaut
                          à savoir /var/log/apache2.

vhost web   Site web principal : www.domaine.com (c'est dans celui-ci qu'arriveront les logs de web, forums, liens).

vhost liens  Site des liens : liens.domaine.com

vhost forum  Le forum du site: forum.domaine.com

vhost stats   Permettra la consultation des stats awstats via l'url: stats.domaine.com. Elles-ci seront constituées
                      par les logs de web, forum et liens.

vhost phpmyadmin  Comme son nom l'indique: phpmyadmin.domaine.com pour la gestion des bases de données des différents sites.

Il ne reste plus qu'à les activer pour le prochain redémarrage d'apache:

#a2ensite liens
#a2ensite forum
#a2ensite web
#a2ensite phpmyadmin
#a2ensite stats

Il faut ensuite configurer la rotation des logs pour prendre en compte les nouveaux chemins: ça se passe dans
/*etc*/logrotate.d/apache2. Le fichier devient:


/var/log/apache2/*.log /home/sites/*/logs/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                chown -R www-data:www-data /home/sites/*
                if [ -f /var/run/apache2.pid ]; then
                        /etc/init.d/apache2 restart > /dev/null
                fi
        endscript
}


Configuration Mysql
                     
Je configure ensuite mysql:

Avant de le démarrer et SI on utilise une distrib-32 bits il est possible d'optimiser la gestion de la mémoire pour mysql
avec le paquet libggogle-perftools0 de dotdeb: pour cela ajouter au début du fichier /etc/init.d/mysql la ligne suivante:

export LD_PRELOAD="/usr/lib/libtcmalloc.so.0"

#/etc/init.d/mysql start
#mysql mysql  (puisque à l'install le mot de passe root est à blanc)
mysql>update user set Password=password('passmysql') where User='root';

J'en profite pour créer 3 bases de données:

mysql>create database web;
mysql>create database forum;
mysql>create database liens;

Ainsi ques les utilisateurs de ces bases:

mysql>grant all on web.* to 'webuser'@'localhost' identified by 'pwebuser';
mysql>grant all on forum.* to 'forumuser'@'localhost' identified by 'pforumuser';
mysql>grant all on liens.* to 'liensuser'@'localhost' identified by 'pliensuser';

mysql> flush privileges;
mysql>quit
#/etc/init.d/mysql stop

Configuration awstats

Je vais maintenant installer awstats dans /home/sites/stats/cgi-bin

#cd /tmp && mkdir prov && cd prov
#wget http://ovh.dl.sourceforge.net/sourceforge/awstats/awstats-6.8.tar.gz
#tar zxvf awstats-6.8.tar.gz && rm awstats-6.8.tar.gz
#cd awstats-6.8
#tar zcvf /home/sites/stats/cgi-bin/awstats.tgz .
#cd /tmp && rm -r prov
#cd /home/sites/stats/cgi-bin
#tar zxvf awstats.tgz && rm awstats.tgz && chown -R www.data:www-data *

Je crée un fichier de config depuis le modèle par un simple cp:

#cp awstats.model.conf awstats.stats.domaine.com.conf

Et je paramètre: en fait il y a 2 valeurs à renseigner :

#vi awstats.stats.domaine.com.conf

LogFile="/home/sites/web/logs/access.log"
SiteDomain="stats.domaine.com"

On pourra au besoin par la suite peaufiner le fichier de conf pour que les liens générés sur les stats correspondent bien au site ciblé.
En effet le fichier de logs apache étant commun à 3 sites (web,forum,liens), ceux-ci ne fonctionneront pas depuis stats.domaine.com.
D'un autre côté, le propriètaire des sites n'est généralement pas intéressé par cette fonctionnalité, le principal étant pour lui de
comptabiliser les hits et visites par pages.

Je déplace ensuite le répertoire icon vers la racine du site comme indiqué dans la doc .

#mv icon /home/sites/stats/www

Et je revalide les droits par précaution:

#chown www-data:www-data awstats.stats.domaine.com.conf
#chown -R www-data:www-data /home/sites/stats/www/icon

Je crée ensuite une restriction d'accès aux stats:

#cd /home/stats/cgi-bin
#vi .htaccess

Contenu du fichier

AuthUserFile /home/sites/stats/cgi-bin/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>


#htpasswd -bc .htpasswd user pass
#chown www-data:www-data .ht*

Au final on aura donc les fichiers suivants dans /home/sites/stats/cgi-bin:

serveur:/home/sites/stats/cgi-bin# ll
total 692
drwxr-xr-x 10 www-data www-data   4096 2008-12-01 18:44 .
drwxr-xr-x  5 www-data www-data   4096 2008-12-01 16:19 ..
-rwxr-xr-x  1 www-data www-data   5547 2008-04-27 18:47 awredir.pl
-rw-r--r--  1 www-data www-data   5818 2008-12-01 18:33 awstats122008.stats.domaine.com.txt
-rwxr-xr-x  1 www-data www-data 558264 2008-04-21 23:13 awstats.pl
drwxr-xr-x  3 www-data www-data   4096 2006-01-28 22:21 classes
drwxr-xr-x  2 www-data www-data   4096 2006-01-28 22:21 css
drwxr-xr-x  3 www-data www-data   4096 2006-01-28 22:45 docs
-rw-r--r--  1 www-data www-data    163 2008-12-01 18:39 .htaccess
-rw-r--r--  1 www-data www-data     22 2008-12-02 09:13 .htpasswd
drwxr-xr-x  2 www-data www-data   4096 2006-01-28 22:21 js
drwxr-xr-x  5 www-data www-data   4096 2006-01-28 22:21 lang
drwxr-xr-x  2 www-data www-data   4096 2006-01-28 22:21 lib
drwxr-xr-x  3 www-data www-data   4096 2006-01-28 22:21 plugins
-rw-r--r--  1 www-data www-data   6718 2008-04-13 16:40 README.TXT
drwxr-xr-x  4 www-data www-data   4096 2006-01-28 22:22 tools


Je vais ensuite automatiser la mise à jour journalière: pour cela il faut créer dans /etc/cron.daily le fichier suivant:

serveur:/etc/cron.daily# cat 00awstats
#!/bin/bash

cd /home/sites/stats/cgi-bin
./awstats.pl -config=stats.domaine.com -update




Configuration phpMyAdmin

Je passe maintenant à phpmyadmin: je récupère les sources ainsi qu'un thème sur sourceforge.net:

#cd /home/sites/phpmyadmin
#wget http://dfn.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.9.2-all-languages.tar.gz
#wget http://mesh.dl.sourceforge.net/sourceforge/phpmyadmin/paradice-2.11e.zip
#tar zxvf phpMyAdmin-2.11.9.2-all-languages.tar.gz && rm phpMyAdmin-2.11.9.2-all-languages.tar.gz
#rm -r www
#mv phpMyAdmin-2.11.9.2-all-languages www
#cd www/themes
#mv ../../paradice-2.11e.zip .
#unzip paradice-2.11e.zip && rm paradice-2.11e.zip
#cd /home/sites/phpmyadmin
#chown -R www-data:www-data www

Je crée ensuite dans /home/sites/phpmyadmin/www un fichier nommé config.inc.php (copie ici)




Configuration Pure-Ftpd


A l'installation pure-ftpd est installé dans l'inetd et je n'aime pas trop. Je dévalide donc la ligne dans le /etc/inetd.conf
et je m'attaque à la configuration en mode standalone.

#vi /etc/default/pure-ftpd-common

STANDALONE_OR_INETD=inetd devient STANDALONE_OR_INETD=standalone

Je souhaite parametrer par defaut des utilisateurs virtuels: la configuration sera donc:

serveur:/etc/pure-ftpd# ll auth
total 8
drwxr-xr-x 2 root root 4096 2008-09-02 11:22 .
drwxr-xr-x 5 root root 4096 2008-09-02 11:26 ..
lrwxrwxrwx 1 root root   14 2008-09-02 11:22 60puredb -> ../conf/PureDB
lrwxrwxrwx 1 root root   26 2008-09-02 11:21 65unix -> ../conf/UnixAuthentication
lrwxrwxrwx 1 root root   25 2008-09-02 11:21 70pam -> ../conf/PAMAuthentication

Et le contenu de /etc/pure-ftpd/conf/PureDB

# cat conf/PureDB
/etc/pure-ftpd/pureftpd.pdb

Le contenu du répertoire /etc/pure-ftpd/conf ainsi que chacun des fichiers:

AltLog
AntiWarez
Bind
ChrootEveryone
Daemonize
DisplayDotFiles
KeepAllFiles
MinUID
NoAnonymous
PAMAuthentication
PureDB
UnixAuthentication
clf:/var/log/pure-ftpd/transfer.log
yes
xx.xx.xx.xx,21
yes
yes
yes
no
33
yes
yes
/etc/pure-ftpd/pureftpd.pdb
no

Je génére ensuite un fichier de base pureftpd.passwd :

#cd /etc/pure-ftpd
#pure-pwconvert > pureftpd.passwd  (il récupère le contenu de /etc/passwd et le convertit au format pure-ftpd)

Je supprime ensuite tous les utilisateurs du fichier ainsi généré à l'exception de monuser (créé au tout début) afin d'avoir un modèle. Le contenu du fichier est donc:

monuser:$1$OGPFWaW0$BUrcJRog9yDfIb2mb7d4f/:1001:1001::/home/monuser/./::::::::::::

Or les droits des répertoires dans /home/sites sont ceux de www-data et je souhaite que ce soit un utilisateur virtuel: il faut donc modifier comme suit:

uservirtuel:$1$OGPFWaW0$BUrcJRog9yDfIb2mb7d4f/:33:33::/home/sites/./::::::::::::

Je crée ensuite le fichier au format Berkeley par :

#pure-pw mkdb

Il faudra ensuite modifier le mot de passe par:

#pure-pw passwd uservirtuel -m  




Configuration memcache

Le fichier de configuration est /etc/memcached.conf:

Je valide :
-l 127.0.0.1
-p 11211

Il faut ensuite indiquer à php d'utiliser memcache pour stocker les sessions:

Ca se passe dans /etc/php5/apache2/php.ini :

[Session]
; Handler used to store/retrieve data.
;session.save_handler = files
session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"




Configuration fail2ban

La configuration est dans: /etc/fail2ban

J'édite d'abord le fichier jail.conf et j'ajoute cette rubrique dans la section FTP Servers:


[pure-ftpd]

enabled = true
port = ftp
filter = pure-ftpd
logpath = /var/log/syslog
maxretry = 2

Je n'active ensuite que les rubriques suivantes:

[apache]
enabled = true
....
[ssh]
enabled = true
....


Il faut ensuite créer le filtre pour pure-ftpd puisque comme d'habitude c'est le parent pauvre:

#vi /etc/fail2ban/filter.d/pure-ftpd.conf

Je crée simplement les lignes suivantes:

[Definition]
failregex = pure-ftpd: (.+?@<HOST>) \[WARNING\] Authentication failed for user \[.+\]$
ignoreregex =

REMARQUE: on m'a signalé que cette règle ne matche pas sur lenny. Il faut à priori adapter comme suit:

failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*


Le 22/03/09: ajout d'une règle: apache-overflows. En effet l'error.log d'apache2 ressortait fréquemment des lignes telles:

[Sun Mar 22 13:42:15 2009] [error] [client 91.121.1.173] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Sun Mar 22 13:51:32 2009] [error] [client 213.186.58.216] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

Après recherches il apparaît que: w00tw00t.ISC.SANS.DFind" est la signature d'un scanner de failles bien connu.

"DFind", accessible l|  : http://heapoverflow.com/f0rums/projects/tools/20-dfind-port-scanner/

Création de /etc/fail2ban/filter.d/apache-overflows.conf:

[Definition]

failregex = [[]client <HOST>[]] (client sent HTTP/1.1 request without hostname|Invalid method in request|request failed: URI too long|erroneous characters after protocol string)

Ajout dans /etc/fail2ban/jail.conf de la nouvelle règle à prendre en compte:

[apache-overflows]

enabled = true
port    = http
filter  = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 1

Autre lien : http://fr.spamcleaner.org/misc/w00tw00t.html



Configuration sauvegarde

Comme sur tout serveur, il est fortement conseillé de sauvegarder à intervalles réguliers les données:

On va utiliser pour cela les outils fournis par la distrib à savoir cron, mysqldump, tar, bzip2.
Je sauvegarde tous les jours les bases de données et 1 fois /semaine les sites webs.

Les sauvegardes seront stockées dans /home/sites/backups:
#mkdir /home/sites/backups

Config sauvegarde mysql: pour cela je vais créer dans /etc/cron.daily le fichier suivant:

serveur:/etc/cron.daily# cat savemysql
#!/bin/bash

datebackup=`date +%Y%m%d`
for i in mysql base1 base2 base3 etc....
do
mysqldump -pmotdepasserootmysql  $i | bzip2 - > /home/sites/backups/$datebackup-$i.bz2
done
chown -R www-data:www-data /home/sites/backups


Config sauvegarde sites webs: je crée dans /etc/cron.weekly le fichier suivant:

serveur:/etc/cron.weekly# cat savesite
#!/bin/bash

datebackup=`date +%Y%m%d`
for i in web forum liens stats
do
tar zcvf /home/sites/backups/$datebackup-$i.tgz /home/sites/$i
done
chown -R www-data:www-data /home/sites/backups




Configuration surveillance et alertes


Je vais maintenant configurer un petit système de surveillance des démons apache et mysql en placant un cron dans
/etc/cron.hourly. Celui-ci vérifiera la présence des process apache et mysql toutes les heures donc.

Pour éviter les erreurs je stoppe le service cron:

#/etc/init.d/cron stop

#cat /etc/cron.hourly/servicesperso

#!/bin/bash

cd /root/phpmailer && ./trigger.sh

#chmod 755 /etc/cron.hourly/servicesperso

Comme on le constate je vais utiliser la classe phpmailer pour expédier les mails, l'exim installé par défaut avec la distrib ne
distribuant que du courrier local. J'ai d'ailleurs validé cette config par : dpkg-reconfigure exim4-config et en validant le choix:

Distribution locale seulement (pas de réseau)


Je crée donc dans /root un répertoire phpmailer et je vais récupérer dans celui-ci les fichiers nécessaires:

#mkdir /root/phpmailer
#cd /root/phpmailer
#wget http://garr.dl.sourceforge.net/sourceforge/phpmailer/phpMailer_v2.1.tar.gz
#tar zxvf phpMailer_v2.1.tar.gz
#vi trigger.sh

Contenu de trigger.sh
#!/bin/bash

madate=$(date +%c)

ps ax| grep apache2 |grep -v grep >/tmp/apache
ps ax | grep mysqld | grep -v grep >/tmp/mysql

if [ ! -s /tmp/apache -o ! -s /tmp/mysql ]; then
  #echo "On envoie un mail"
  /usr/bin/php5 -n ./alerte.php Alerte_Svcs $madate
fi

Je crée le fichier alerte.php dont voici le contenu:

<?php

date_default_timezone_set(date_default_timezone_get());
include_once('class.phpmailer.php');

$mail             = new PHPMailer();
$body             = "$argv[1]" . "\n" . "$argv[2]";
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "smtp-msa.orange.fr"; // SMTP server
$mail->SMTPAuth = true;
$mail->Port = "587";
$mail->Username = "un-nom-utilisateur-chez-votre-fai";
$mail->Password = "le-mot-de-passe";
$mail->From       = "vous@orange.fr";
$mail->FromName   = "Serveur Dedie";
$mail->Subject    = "$argv[1]";
$mail->MsgHTML($body);
$mail->AddAddress("numero-mobile ou adresse mail@orange.fr", "nompersonne");


?>

Pour tester il suffira de stopper apache et/ou mysql: dans l'heure qui suit vous recevrez un mail.
Il existe un script nettement plus abouti sys_alive.pl qui permet également ce genre de manip.
Le but ici est de montrer l'utilisation de la classe phpmailer si vous avez besoin d'utiliser la fonction mail de php
sur l'un de vos sites. Il suffira dans ce cas de recopier les fichiers class.phpmailer.php et class.smtp.php dans un
répertoire du site en question  (les infos sur phpmailer : http://phpmailer.codeworxtech.com/index.php?pg=phpmailer )


Dernière étape: détection journalière d'une infection système.

Debian propose dans ses paquets rkhunter mais les dépendances installent exim4. Comme il semblerait que certains dédiés
peuvent être livrés SANS serveur de messagerie, pour ne pas surcharger la machine, je vais procéder à une install manuelle.

  # apt-get install libmd5-perl
  # apt-get install openssl
  # cd /usr/local
  # wget http://dfn.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.3.2.tar.gz
  # tar zxvf rkhunter-1.3.2.tar.gz && mv rkhunter-1.3.2.tar.gz src
  # cd rkhunter-1.3.2/
  # ./installer.sh --layout /usr/local --install

Je crée ensuite le fichier: /etc/cron.daily/zcheck

# cat /etc/cron.daily/zcheck

#!/bin/bash
cd /usr/local/bin
./rkhunter --update
./rkhunter -c --skip-keypress
tail -20 /var/log/rkhunter.log > /tmp/rk.log
grep Warning /var/log/rkhunter.log >> /tmp/rk.log

Les deux dernières lignes créent un fichier /tmp/rk.log qu'il suffira de s'envoyer par mail de la même manière
que pour la surveillance sytème.





Maintenant que tout est en place je démarre les différents services et je teste:

#/etc/init.d/memcached start
#/etc/init.d/fail2ban start
#/etc/init.d/apache2 start
#/etc/init.d/mysql start
#/etc/init.d/pure-ftpd start
#/etc/init.d/cron start

Je vérifie que les services sont à l'écoute:

# netstat -lnp
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name  
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     2005/mysqld        
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN     2247/memcached     
tcp        0      0 xx.xx.xx.xx:21        0.0.0.0:*               LISTEN     7303/pure-ftpd (SER
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     7724/exim4         
tcp6       0      0 :::80                   :::*                    LISTEN     7281/apache2       
tcp6       0      0 :::XX                   :::*                    LISTEN     3403/sshd          
Sockets du domaine UNIX actives(seulement serveurs)
Proto RefCpt Indicatrs   Type       Etat          I-Node PID/Program name    Chemin
unix  2      [ ACC ]     STREAM     LISTENING     5253     2155/acpid          /var/run/acpid.socket
unix  2      [ ACC ]     STREAM     LISTENING     5672     2336/python2.4      /tmp/fail2ban.sock
unix  2      [ ACC ]     STREAM     LISTENING     5018     2005/mysqld         /var/run/mysqld/mysqld.sock


Il ne restera qu'à tester les différents sites depuis un navigateur. Si le domaine n'est pas propagé
via le dns, une petite modif dans le fichier host du poste suffira:

xx.xx.xx.xx www.domaine.com stats.domaine.com forum.domaine.com liens.domaine.com phpmyadmin.domaine.com


HTH...   Si vous avez des commentaires ou si vous souhaitez me contacter à propos de cet article


A noter une autre doc trouvée sur Gandalf76