Ce didacticiel vous guidera dans l'installation de votre propre configuration multiserveur ISPConfig 3 avec des serveurs dédiés pour le panneau, le Web, le DNS, la messagerie et la messagerie Web. Le DNS et le serveur de messagerie auront tous deux un serveur miroir pour la redondance. Vous pouvez facilement ajouter plus de serveurs d'un certain type par la suite.
Le programme d'installation automatique officiel d'ISPConfig sera utilisé pour configurer les serveurs. Debian 10 sera utilisé comme système d'exploitation. Le guide a également été testé avec Ubuntu 20.04.2.
Vous pouvez en savoir plus sur le programme d'installation automatique ici.
1. Remarque préliminaire
Voici les hôtes que nous allons installer :
host FQDN IP
panel panel.example.com 10.0.64.12
web01 web01.example.com 10.0.64.13
mx1 mx1.example.com 10. 4 mx2.example.com 10.0.64.15
ns1 ns1.example.com 10.0.64.16
ns2 ns2.example.com 10.0.64.17
webmail webmail.example.com 0. 6 410.com 0. 6 410.com 0.>Nous utiliserons des exemples de noms d'hôte, d'adresses IP et de plages IP. Assurez-vous de les modifier en conséquence dans vos commandes/configuration.
Tous les serveurs sont sur le même réseau privé mais ont leur propre adresse 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 AAAA qui pointe vers le public Adresse IP de votre serveur. Par exemple, si le nom d'hôte est panel.example.com et que l'adresse 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 adresse 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 pas seulement '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 tel que "panel.example.com". N'utilisez pas un nom de domaine sans une partie de sous-domaine comme "example.com" comme nom d'hôte car cela causera des problèmes plus tard avec votre configuration de messagerie. Tout d'abord, vous devez vérifier le nom d'hôte dans /etc/hosts et le modifier si nécessaire. La ligne doit être :"Adresse IP - espace - nom d'hôte complet, y compris 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 différer selon le fournisseur d'hébergement) :
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
# Cette ligne doit être remplacée sur chaque nœud par le nom de serveur correct :
127.0.1.1 panel.example.com panel
# Ces lignes sont les identique 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 mx2.example .com mx2
10.0.64.16 ns1.example.com ns1
10.0.64.17 ns2.example.com ns2
10.0.64.18 webmail.example.com webmail# Les lignes suivantes sont souhaitables pour IPv6 hôtes compatibles ::1 localhost ip6-localhost ip6-loopbackff02 ::1 ip6-allnodesff02 ::2 ip6-allroutersComme vous pouvez le constater, nous avons également ajouté les noms d'hôte de nos autres serveurs, afin qu'ils puissent communiquer ultérieurement sur le réseau interne.
Modifiez ensuite le fichier /etc/hostname :
nano /etc/hostnameIl ne contiendra que la partie sous-domaine, dans notre cas :
panneauEnfin, redémarrez le serveur pour appliquer la modification :
redémarrage de systemctlConnectez-vous à nouveau et vérifiez si le nom d'hôte est correct maintenant avec ces commandes :
nomhôte
nomhôte -fLa sortie doit ressembler à ceci :
[email protected] :~$ hostname
panel
[email protected] :~$ hostname -f
panel.example.comNous pouvons maintenant exécuter le programme d'installation automatique pour installer tous les packages 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 :
ATTENTION ! Ce script va reconfigurer votre serveur complet !
Il doit être exécuté sur un serveur fraîchement installé et toute la configuration actuelle que vous avez effectuée sera probablement perdue !
Tapez "oui" si vous voulez vraiment continuer :Répondez "oui" et appuyez sur Entrée. Le programme d'installation va maintenant démarrer.
Lorsque le programme d'installation est terminé, il vous montrera le mot de passe administrateur ISPConfig et MySQL root comme ceci :
[INFO] Votre mot de passe administrateur ISPConfig est :5GvfSSSYsdfdYC
[INFO] Votre mot de passe root MySQL est :kkAkft82d!kafMwqxdtYsAssurez-vous de noter ces informations, ainsi que le serveur auquel elles sont destinées, car vous en aurez besoin plus tard.
2.2 Configuration des utilisateurs MySQL distants pour nos serveurs esclaves
Nous nous connecterons à MySQL pour permettre aux autres serveurs de se connecter à la base de données ISPConfig sur ce nœud lors de l'installation, en ajoutant des enregistrements d'utilisateur racine MySQL dans la base de données principale pour chaque nom d'hôte et adresse IP du serveur esclave.
Sur le terminal, lancez
mysql -u root -pSaisissez votre mot de passe MySQL puis exécutez les commandes suivantes :
CRÉER UN UTILISATEUR 'root'@'10.0.64.13' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'10.0.64.13' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'10.0.64.14' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'10.0.64.14' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'10.0.64.15' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'10.0.64.15' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'10.0.64.16' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'10.0.64.16' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'10.0.64.17' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'10.0.64.17' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'10.0.64.18' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'10.0.64.18' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'web01.example.com' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'web01.example.com' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'mx1.example.com' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * TO 'root'@'mx1.example.com' IDENTIFIÉ PAR 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'mx2.example.com' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * TO 'root'@'mx2.example.com' IDENTIFIÉ PAR 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'ns1.example.com' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'ns1.example.com' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'ns2.example.com' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'ns2.example.com' IDENTIFIÉ PAR 'myrootpassword' AVEC GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CRÉER UN UTILISATEUR 'root'@'webmail.example.com' IDENTIFIÉ PAR 'myrootpassword' ;
ACCORDER TOUS LES PRIVILÈGES SUR * . * À 'root'@'webmail.example.com' IDENTIFIÉ PAR 'myrootpassword' AVEC 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.18) par les adresses IP de vos serveurs, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com , ns2.example.com et webmail.example.com avec les noms d'hôte de vos serveurs et myrootpassword avec le mot de passe root souhaité (il est recommandé 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 :
QUITTER ;Vous pouvez maintenant vous connecter à ISPConfig sur https://panel.example.com:8080 avec le nom d'utilisateur admin et le mot de passe que le programme d'installation vous a indiqué.
2.3 Configurer le pare-feu
La dernière chose à faire est de configurer notre pare-feu.
Connectez-vous à l'interface utilisateur ISPConfig et accédez à Système -> Pare-feu. Cliquez ensuite sur "Ajouter un nouvel enregistrement de pare-feu".
Pour le serveur du panel, nous devons ouvrir les ports suivants :
TCP :
22,80,443,8080,8081Aucun port UDP ne doit être ouvert via l'interface utilisateur.
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 à partir de la CLI, une fois la modification du panneau ISPConfig propagée (lorsque le point rouge a disparu) :
ufw autorise de 10.0.64.0/24 à n'importe quel port 3306 proto tcpVotre panneau est maintenant configuré et prêt à être utilisé.
À l'étape suivante, nous installerons le serveur Web.