Configuration Serveur · 6 min read · Sep 08, 2025
Configuration parfaite d'ISPConfig Multiserver sur Ubuntu 24.04 et Debian 12

Ce tutoriel vous guidera à travers l’installation de votre propre configuration multiserver ISPConfig 3 avec des serveurs dédiés pour le panneau, le web, DNS, mail et webmail. Le serveur DNS aura un serveur miroir pour la redondance. Vous pouvez facilement ajouter plus de serveurs d’un certain type par la suite.
L’autoinstalleur officiel d’ISPConfig sera utilisé pour configurer les serveurs. Debian 12 sera utilisé comme système d’exploitation. Le guide a également été testé avec Ubuntu 24.04.
L’autoinstalleur a diverses options en ligne de commande pour affiner la configuration.
Vous pouvez voir tous les arguments avec :
wget -O - https://get.ispconfig.org | sh -s -- --helpVous pouvez en savoir plus sur l’autoinstalleur ici.
1. Remarque préliminaire
Voici les hôtes que nous allons installer :
hôte FQDN IP
panel panel.example.com 10.0.64.12
web01 web01.example.com 10.0.64.13
mx1 mx1.example.com 10.0.64.14
ns1 ns1.example.com 10.0.64.15
ns2 ns2.example.com 10.0.64.16
webmail webmail.example.com 10.0.64.17Nous utiliserons des noms d’hôtes, des adresses IP et des plages IP d’exemple. Assurez-vous de les changer en conséquence dans vos commandes/configurations.
Tous les serveurs sont sur le même réseau privé mais ont leur propre IP publique. Si vos serveurs n’ont pas de réseau local partagé, utilisez leurs adresses IPv4 publiques.
Avant de commencer l’installation d’un serveur, configurez un enregistrement A et éventuellement un enregistrement AAAA qui pointe vers l’adresse IP publique de votre serveur. Par exemple, si le nom d’hôte est panel.example.com et que l’IP publique est 11.22.33.44, vous devez configurer un enregistrement A pour panel.example.com pointant vers 11.22.33.44. Chaque serveur doit avoir sa propre IP publique et son nom d’hôte. **
2. Installation du serveur maître
Connectez-vous en tant que root ou exécutez
su -pour devenir l’utilisateur root sur votre serveur avant de continuer. IMPORTANT : Vous devez utiliser ‘su -‘ et non juste ‘su’, sinon votre variable PATH est mal définie par Debian.
2.1 Configurer le nom d’hôte et les hôtes
Le nom d’hôte de votre serveur doit être un sous-domaine comme “panel.example.com”. N’utilisez pas un nom de domaine sans partie sous-domaine comme “example.com” comme nom d’hôte car cela causera des problèmes plus tard avec votre configuration de mail. Tout d’abord, vous devez vérifier le nom d’hôte dans /etc/hosts et le changer si nécessaire. La ligne doit être : “Adresse IP - espace - nom d’hôte complet incluant le domaine - espace - partie sous-domaine”. Pour notre nom d’hôte panel.example.com, le fichier doit ressembler à ceci (certaines lignes peuvent être différentes, cela peut varier selon le fournisseur d’hébergement) :
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
# Cette ligne doit être changée sur chaque nœud au nom de serveur correct :
127.0.1.1 panel.example.com panel
# Ces lignes sont les mêmes sur chaque nœud :
10.0.64.12 panel.example.com panel
10.0.64.13 web01.example.com web01
10.0.64.14 mx1.example.com mx1
10.0.64.15 ns1.example.com ns1
10.0.64.16 ns2.example.com ns2
10.0.64.17 webmail.example.com webmail
# Les lignes suivantes sont souhaitables pour les hôtes compatibles IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allroutersComme vous pouvez le voir, nous avons ajouté les noms d’hôtes de nos autres serveurs également, afin qu’ils puissent communiquer sur le réseau interne plus tard.
Ensuite, éditez le fichier /etc/hostname :
nano /etc/hostnameIl doit contenir uniquement la partie sous-domaine, dans notre cas :
panelEnfin, redémarrez le serveur pour appliquer le changement :
systemctl rebootReconnectez-vous et vérifiez si le nom d’hôte est maintenant correct avec ces commandes :
hostname
hostname -fLa sortie doit être comme ceci :
root@panel:~$ hostname
panel
root@panel:~$ hostname -f
panel.example.comMaintenant, nous pouvons exécuter l’autoinstalleur pour installer tous les paquets nécessaires et ISPConfig :
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=systemAprès un certain temps, vous verrez :
WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type 'yes' if you really want to continue:Répondez “oui” et appuyez sur Entrée. L’installateur va maintenant commencer.
Lorsque l’installateur est terminé, il vous montrera le mot de passe administrateur d’ISPConfig et le mot de passe root MySQL comme ceci :
[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC
[INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYsAssurez-vous de noter ces informations, ainsi que le serveur pour lequel elles sont destinées, car vous en aurez besoin plus tard.
2.2 Configuration des utilisateurs MySQL distants pour nos serveurs esclaves
Nous allons nous connecter à MySQL pour permettre aux autres serveurs de se connecter à la base de données ISPConfig sur ce nœud pendant l’installation, en ajoutant 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.
Dans le terminal, exécutez
mysql -u root -pEntrez votre mot de passe MySQL, puis exécutez les commandes suivantes :
CREATE USER 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.13' 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'@'10.0.64.14' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.14' 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'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' 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'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' 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'@'10.0.64.16' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.16' 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'@'web01.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'web01.example.com' 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'@'mx1.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mx1.example.com' 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.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns1.example.com' 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.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns2.example.com' 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'@'webmail.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'webmail.example.com' 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 (10.0.64.12 - 10.0.64.16) par les adresses IP de vos serveurs, web01.example.com, mx1.example.com, ns1.example.com, ns2.example.com et webmail.example.com par les noms d’hôtes de vos serveurs et myrootpassword par le mot de passe root souhaité (il est bon de pratiquer d’utiliser un mot de passe différent pour chaque hôte. Notez-les, car vous en aurez besoin plus tard lors de l’installation ou de la mise à jour de vos serveurs esclaves).
Lorsque cela est fait, vous pouvez quitter MySQL avec :
EXIT;Vous pouvez maintenant vous connecter à ISPConfig sur https://panel.example.com:8080 avec le nom d’utilisateur admin et le mot de passe que l’installateur vous a montré.
2.3 Configuration du pare-feu
La dernière chose à faire est de configurer notre pare-feu.
Connectez-vous à l’interface utilisateur d’ISPConfig, et allez à Système -> Pare-feu. Ensuite, cliquez sur “Ajouter un nouvel enregistrement de pare-feu”.
Pour le serveur de panneau, nous devons ouvrir les ports suivants :
TCP :
22,80,443,8080,8081Aucun port UDP ne doit être ouvert via l’interface.
Nous allons également ouvrir le port 3306, qui est utilisé pour MySQL, mais uniquement depuis notre réseau local pour des raisons de sécurité. Pour ce faire, exécutez la commande suivante depuis la CLI, après que le changement du panneau ISPConfig soit propagé (lorsque le point rouge a disparu) :
ufw allow from 10.0.64.0/24 to any port 3306 proto tcpVotre panneau est maintenant configuré et prêt à être utilisé.
Dans l’étape suivante, nous allons installer le serveur web.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.