Configuration Serveur · 8 min read · Jan 05, 2026

Installation d'une configuration multiserveur avec des serveurs Web, Email, DNS et MySQL dédiés sur Debian 5.0 avec ISPConfig 3

Installation d’une configuration multiserveur avec des serveurs Web, Email, DNS et MySQL dédiés sur Debian 5.0 avec ISPConfig 3

Version 1.0
Auteur : Till Brehm

Ce tutoriel décrit l’installation d’une configuration multiserveur ISPConfig 3 avec des serveurs Web, Email, base de données et deux serveurs DNS, tous gérés via un seul panneau de contrôle ISPConfig 3. La configuration décrite ci-dessous utilise cinq serveurs et peut être facilement étendue à un plus grand nombre de serveurs en ajoutant simplement plus de serveurs. Par exemple, si vous souhaitez avoir deux serveurs de messagerie, effectuez les étapes de configuration du chapitre 2 sur chacun de ces serveurs. Si vous souhaitez configurer plus de serveurs Web, installez ISPConfig sur tous les autres serveurs Web en mode expert, à l’exception du premier.

Pour apprendre à utiliser ISPConfig 3, je recommande fortement de télécharger le Manuel ISPConfig 3.

Sur près de 300 pages, il couvre le concept derrière ISPConfig (administrateur, revendeurs, clients), explique comment installer et mettre à jour ISPConfig 3, inclut une référence pour tous les formulaires et champs de formulaire dans ISPConfig avec des exemples d’entrées valides, et fournit des tutoriels pour les tâches les plus courantes dans ISPConfig 3. Il explique également comment sécuriser votre serveur et comprend une section de dépannage à la fin.

1 Installation des cinq systèmes de base Debian

Dans cette configuration, il y aura un serveur maître (qui exécute le serveur Web et l’interface du panneau de contrôle ISPConfig) et quatre serveurs esclaves pour la base de données, l’email et le DNS.

Pour installer la configuration en cluster, nous avons besoin de cinq serveurs (ou serveurs virtuels) avec une installation minimale de Debian 5.0. La configuration de base est décrite dans le tutoriel suivant aux étapes 1 - 6 :

https://www.howtoforge.com/perfect-server-debian-lenny-ispconfig3

Installez uniquement les étapes 1 - 6 du tutoriel du serveur parfait et non les autres étapes car elles diffèrent pour une configuration en cluster !

Dans mon exemple, j’utilise les noms d’hôtes et les adresses IP suivants pour les cinq serveurs :

Serveur Web
Nom d’hôte : web.example.tld
Adresse IP : 192.168.0.105

Serveur Mail
Nom d’hôte : mail.example.tld
Adresse IP : 192.168.0.106

Serveur DB
Nom d’hôte : db.example.tld
Adresse IP : 192.168.0.107

Serveur DNS (primaire)
Nom d’hôte : ns1.example.tld
Adresse IP : 192.168.0.108

Serveur DNS (secondaire)
Nom d’hôte : ns2.example.tld
Adresse IP : 192.168.0.109

Chaque fois que ces noms d’hôtes ou adresses IP apparaissent dans les étapes d’installation suivantes, vous devrez les modifier pour correspondre aux adresses IP et aux noms d’hôtes de vos serveurs.

2 Installation du serveur Web

Éditez le fichier hosts et ajoutez les adresses IP et les noms d’hôtes pour tous les serveurs. Les noms d’hôtes et les adresses IP doivent être ajustés pour correspondre à votre configuration.

vi /etc/hosts
127.0.0.1       localhost
192.168.0.105   web.example.tld
192.168.0.106   mail.example.tld
192.168.0.107   db.example.tld
192.168.0.108   ns1.example.tld
192.168.0.109   ns2.example.tld
 
# Les lignes suivantes sont souhaitables pour les hôtes compatibles IPv6
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Définissez le nom d’hôte du serveur : echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Éditez le fichier sources.list…

vi /etc/apt/sources.list 

… et assurez-vous qu’il contient la ligne suivante pour activer le dépôt volatile.

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Exécutez…

 apt-get update

… pour mettre à jour la base de données des paquets apt ; puis exécutez…

apt-get upgrade

… pour installer les dernières mises à jour (s’il y en a).

Il est judicieux de synchroniser l’horloge système avec un serveur NTP ( n etwork t ime p rotocol) sur Internet. Exécutez simplement…

apt-get -y install ntp ntpdate

… et votre heure système sera toujours synchronisée.

Installez le serveur MySQL. Une instance de serveur MySQL est nécessaire sur chaque serveur car ISPConfig l’utilise pour synchroniser la configuration entre les serveurs.

apt-get -y install mysql-client mysql-server

Entrez le nouveau mot de passe pour MySQL lorsque le programme d’installation le demande.

Nous voulons que MySQL écoute sur toutes les interfaces sur le serveur maître, pas seulement localhost, donc nous éditons /etc/mysql/my.cnf et commentons la ligne bind-address = 127.0.0.1 :

vi /etc/mysql/my.cnf
[...]  
# Au lieu de skip-networking, le défaut est maintenant d'écouter uniquement sur  
# localhost, ce qui est plus compatible et n'est pas moins sécurisé.  
#bind-address           = 127.0.0.1  
[...] 

Puis redémarrez MySQL :

/etc/init.d/mysql restart

Installez maintenant Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear et mcrypt comme suit :

apt-get -y install apache2 apache2.2-common apache2-doc   apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5   php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli   php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth   php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo 

Vous verrez la question suivante :

Serveur Web à reconfigurer automatiquement : <– apache2

Puis exécutez la commande suivante pour activer les modules Apache suexec, rewrite, ssl, actions et include :

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

PureFTPd et quota peuvent être installés avec la commande suivante :

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

Éditez /etc/fstab. Le mien ressemble à ceci (j’ai ajouté,usrquota,grpquota à la partition avec le point de montage /) :

vi /etc/fstab

| # /etc/fstab: informations sur le système de fichiers statique. # # proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

Pour activer le quota, exécutez ces commandes :

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /

quotacheck -avugm
quotaon -avug

Installez vlogger, webalizer et awstats :

apt-get -y install vlogger webalizer awstats 

Installez Jailkit : Jailkit est nécessaire uniquement si vous souhaitez chrooter les utilisateurs SSH. Il peut être installé comme suit (important : Jailkit doit être installé avant ISPConfig - il ne peut pas être installé après !) :

apt-get -y install build-essential autoconf automake1.9 libtool flex bison

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
tar xvfz jailkit-2.11.tar.gz
cd jailkit-2.11
./configure
make
make install
cd ..
rm -rf jailkit-2.11*

Installez fail2ban : c’est optionnel mais recommandé, car le moniteur ISPConfig essaie d’afficher le journal :

apt-get install fail2ban

Ensuite, nous allons installer ISPConfig 3. Pour obtenir l’URL de téléchargement de la dernière version stable d’ISPConfig 3, veuillez visiter le site Web d’ISPConfig : http://www.ispconfig.org/ispconfig-3/download/

Ce serveur est le serveur maître dans notre configuration qui exécute l’interface du panneau de contrôle ISPConfig. Pour permettre aux autres instances MySQL de se connecter à la base de données MySQL sur ce nœud pendant l’installation, nous devons ajouter des enregistrements d’utilisateur root MySQL dans la base de données maître pour chaque nom d’hôte et adresse IP de serveur esclave. Le moyen le plus simple de le faire est d’utiliser l’outil d’administration phpmyadmin basé sur le web que nous avons déjà installé. Ouvrez l’URL http://192.168.0.105/phpmyadmin dans un navigateur web, connectez-vous en tant qu’utilisateur root MySQL et exécutez ces requêtes MySQL :

CREATE USER ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Dans les commandes sql ci-dessus, remplacez les adresses IP ( 192.168.0.106 - 192.168.0.109) par les adresses IP de vos serveurs et remplacez mail.example.tld, db.example.tld, ns1.example.tld et ns2.example.tld par les noms d’hôtes de vos serveurs et myrootpassword par le mot de passe root souhaité.

Cliquez sur le bouton recharger les autorisations ou redémarrez MySQL. Puis fermez phpmyadmin.

Retournez à la console de server1.example.tld et téléchargez la dernière version stable d’ISPConfig 3 :

cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Puis démarrez le script d’installation :

php -q install.php

Sélectionnez la langue (en,de) [en]: <– en
Mode d’installation (standard,expert) [standard]: <– expert
Nom d’hôte entièrement qualifié (FQDN) du serveur, par ex. server2.domain.tld [web.example.tld]: <– web.example.tld
Nom d’hôte du serveur MySQL [localhost]: <– localhost
Nom d’utilisateur root MySQL [root]: <– root
Mot de passe root MySQL []: <– Entrez votre mot de passe root MySQL ici
Base de données MySQL à créer [dbispconfig]: <– dbispconfig
Jeu de caractères MySQL [utf8]: <– utf8
Ce serveur doit-il rejoindre une configuration multiserveur ISPConfig existante (y,n) [n]: <– n
Configurer le Mail (y,n) [y]: <– n
Configurer Jailkit (y,n) [y]: <– y
Configurer le serveur FTP (y,n) [y]: <– y
Configurer le serveur DNS (y,n) [y]: <– n
Configurer le serveur Apache (y,n) [y]: <– y
Configurer le serveur pare-feu (y,n) [y]: <–y
Installer l’interface Web ISPConfig (y,n) [y]: <–y
Port ISPConfig [8080]: <– 8080

Nettoyez les répertoires d’installation :

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.