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/hosts127.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-allhostsDé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-freeExé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-serverEntrez 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 restartInstallez 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_digestPureFTPd 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. # # |
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 bisoncd /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 fail2banEnsuite, 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.phpSé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
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.