GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configuration ISPConfig Perfect Multiserver sur Ubuntu 20.04 et Debian 10

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

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/hosts
127.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-allrouters

Comme 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/hostname

Il ne contiendra que la partie sous-domaine, dans notre cas :

panneau

Enfin, redémarrez le serveur pour appliquer la modification :

redémarrage de systemctl

Connectez-vous à nouveau et vérifiez si le nom d'hôte est correct maintenant avec ces commandes :

nomhôte
nomhôte -f

La sortie doit ressembler à ceci :

[email protected] :~$ hostname
panel
[email protected] :~$ hostname -f
panel.example.com

Nous 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=system

Aprè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!kafMwqxdtYs

Assurez-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 -p

Saisissez 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,8081

Aucun 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 tcp

Votre panneau est maintenant configuré et prêt à être utilisé.

À l'étape suivante, nous installerons le serveur Web.


Ubuntu
  1. Installation automatisée de Perfect Server ISPConfig 3 sur Debian 10 - 11 et Ubuntu 20.04

  2. Le serveur parfait - Ubuntu 15.04 (nginx, BIND, Dovecot et ISPConfig 3)

  3. Installation automatisée de Perfect Server ISPConfig 3 sur Debian 10 - 11 et Ubuntu 20.04

  4. Installation automatisée de Perfect Server ISPConfig 3 sur Debian 10 - 11 et Ubuntu 20.04

  5. Comment configurer le basculement IP avec KeepAlived sur Ubuntu et Debian

Le serveur parfait - Ubuntu 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot et ISPConfig 3)

Remplacement d'Amavisd par Rspamd dans ISPConfig 3.1 sur Debian et Ubuntu

Comment installer et configurer RabbitMQ sur Ubuntu 16.04

Comment installer et configurer Apache Spark sur Ubuntu 21.04

Installer et configurer OwnCloud sur Ubuntu 21 / Debian 11

Comment installer et configurer Apache Spark sur Ubuntu/Debian