GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

ISPConfig Perfect Multiserver-Setup auf Ubuntu 20.04 und Debian 10

Dieses Tutorial führt Sie durch die Installation Ihres eigenen ISPConfig 3-Multiserver-Setups mit dedizierten Servern für Panel, Web, DNS, Mail und Webmail. Sowohl der DNS- als auch der Mailserver verfügen über einen Spiegelserver für Redundanz. Sie können später problemlos weitere Server eines bestimmten Typs hinzufügen.

Der offizielle Auto-Installer von ISPConfig wird verwendet, um die Server einzurichten. Als Betriebssystem kommt Debian 10 zum Einsatz. Die Anleitung wurde auch mit Ubuntu 20.04.2 getestet.

Weitere Informationen zum Auto-Installer finden Sie hier.

1. Vorbemerkung

Dies sind die Hosts, die wir installieren:

host     FQDN                IP
panel     panel.example.com    10.0.64.12
web01     web01.example.com    10.0.64.13
mx1        mx1.example.com       2. 6,1 m> mx2.beispiel.com        10.0.64.15
ns1        ns1.beispiel.com        10.0.64.16
ns2        ns2.beispiel.com        10.0.64.17
webmail 

Wir werden Beispiel-Hostnamen, IP-Adressen und IP-Bereiche verwenden. Stellen Sie sicher, dass Sie sie in Ihren Befehlen/Konfigurationen entsprechend ändern.

Alle Server befinden sich im selben privaten Netzwerk, haben aber ihre eigene öffentliche IP. Wenn Ihre Server kein gemeinsames lokales Netzwerk haben, verwenden Sie ihre öffentlichen IPv4-Adressen.

Bevor Sie mit der Installation eines Servers beginnen, richten Sie einen A- und eventuell einen AAAA-Eintrag ein, der auf die Öffentlichkeit verweist IP-Adresse Ihres Servers. Wenn der Hostname beispielsweise panel.example.com und die öffentliche IP 11.22.33.44 lautet, sollten Sie einen A-Eintrag für panel.example.com einrichten, der auf 11.22.33.44 verweist. Jeder Server sollte seine eigene öffentliche IP und seinen eigenen Hostnamen haben.

2. Installation des Masterservers

Melden Sie sich als root an oder führen Sie

aus
su -

um Root-Benutzer auf Ihrem Server zu werden, bevor Sie fortfahren. WICHTIG Hinweis:Sie müssen 'su -' und nicht nur 'su' verwenden, sonst wird Ihre PATH-Variable von Debian falsch gesetzt.

2.1 Konfigurieren Sie den Hostnamen und die Hosts

Der Hostname Ihres Servers sollte eine Subdomain wie "panel.example.com" sein. Verwenden Sie als Hostnamen keinen Domainnamen ohne Subdomain-Anteil wie "example.com", da dies später zu Problemen mit Ihrer E-Mail-Einrichtung führt. Zuerst sollten Sie den Hostnamen in /etc/hosts überprüfen und bei Bedarf ändern. Die Zeile sollte lauten:"IP Address - space - full hostname incl. domain - space - subdomain part". Für unseren Hostnamen panel.example.com sollte die Datei wie folgt aussehen (einige Zeilen können unterschiedlich sein, sie können je nach Hosting-Provider unterschiedlich sein):

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
# Diese Zeile sollte auf jedem Knoten auf den korrekten Servernamen geändert werden:
127.0.1.1 panel.example.com panel
# Diese Zeilen sind die auf jedem Knoten gleich: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# Die folgenden Zeilen sind für IPv6 wünschenswert fähige hosts::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allrouters

Wie Sie sehen können, haben wir auch die Hostnamen unserer anderen Server hinzugefügt, damit sie später über das interne Netzwerk kommunizieren können.

Bearbeiten Sie dann die Datei /etc/hostname:

nano /etc/hostname

Sie soll nur den Teil der Subdomain enthalten, in unserem Fall:

Panel

Starten Sie abschließend den Server neu, um die Änderung zu übernehmen:

Systemctl-Neustart

Melden Sie sich erneut an und überprüfen Sie jetzt mit diesen Befehlen, ob der Hostname korrekt ist:

Hostname
Hostname -f

Die Ausgabe soll wie folgt aussehen:

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

Jetzt können wir den Autoinstaller ausführen, um alle notwendigen Pakete und ISPConfig zu installieren:

wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=system

Nach einiger Zeit sehen Sie:

WARNUNG! Dieses Skript wird Ihren kompletten Server neu konfigurieren!
Es sollte auf einem frisch installierten Server ausgeführt werden und alle aktuellen Konfigurationen, die Sie vorgenommen haben, werden höchstwahrscheinlich verloren gehen!
Geben Sie „yes“ ein, wenn Sie wirklich fortfahren möchten:

Antworten Sie mit „Ja“ und drücken Sie die Eingabetaste. Das Installationsprogramm wird nun gestartet.

Wenn das Installationsprogramm fertig ist, zeigt es Ihnen das ISPConfig-Administrator- und MySQL-Root-Passwort wie folgt:

[INFO] Ihr ISPConfig-Admin-Passwort lautet:5GvfSSSYsdfdYC
[INFO] Ihr MySQL-Root-Passwort lautet:kkAkft82d!kafMwqxdtYs

Notieren Sie sich diese Informationen zusammen mit dem Server, für den sie bestimmt sind, da Sie sie später benötigen werden.

2.2 Einrichten der entfernten MySQL-Benutzer für unsere Slave-Server

Wir melden uns bei MySQL an, damit sich die anderen Server während der Installation mit der ISPConfig-Datenbank auf diesem Knoten verbinden können, indem wir MySQL-Root-Benutzereinträge in der Master-Datenbank für jeden Hostnamen und jede IP-Adresse des Slave-Servers hinzufügen.

Führen Sie auf dem Terminal

aus
mysql -u root -p

Geben Sie Ihr MySQL-Passwort ein und führen Sie dann die folgenden Befehle aus:

ERSTELLEN SIE BENUTZER 'root'@'10.0.64.13' IDENTIFIZIERT DURCH 'myrootpassword';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'10.0.64.13' IDENTIFIZIERT DURCH 'myrootpassword' MIT GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
ERSTELLEN SIE BENUTZER 'root'@'10.0.64.14' IDENTIFIZIERT DURCH 'myrootpassword';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'10.0.64.14' IDENTIFIZIERT DURCH 'myrootpassword' MIT GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
ERSTELLEN SIE BENUTZER 'root'@'10.0.64.15' IDENTIFIZIERT DURCH 'myrootpassword';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'10.0.64.15' IDENTIFIZIERT DURCH 'myrootpassword' MIT GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
ERSTELLEN SIE BENUTZER 'root'@'10.0.64.16' IDENTIFIZIERT DURCH 'myrootpassword';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'10.0.64.16' IDENTIFIZIERT DURCH 'myrootpassword' MIT GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
ERSTELLEN SIE BENUTZER 'root'@'10.0.64.17' IDENTIFIZIERT DURCH 'myrootpassword';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'10.0.64.17' IDENTIFIZIERT DURCH 'myrootpassword' MIT GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
ERSTELLEN SIE BENUTZER 'root'@'10.0.64.18' IDENTIFIZIERT DURCH 'myrootpassword';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'10.0.64.18' IDENTIFIZIERT DURCH 'myrootpassword' MIT 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';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'web01.example.com' IDENTIFIZIERT DURCH 'myrootpassword' MIT 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';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'mx1.example.com' IDENTIFIZIERT DURCH 'myrootpassword' MIT GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE USER 'root'@'mx2.example.com' IDENTIFIED BY 'myrootpassword';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * TO 'root'@'mx2.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';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'ns1.example.com' IDENTIFIZIERT DURCH 'myrootpassword' MIT 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';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * AN 'root'@'ns2.example.com' IDENTIFIZIERT DURCH 'myrootpassword' MIT 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';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF * . * 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;

Ersetzen Sie in den obigen SQL-Befehlen die IP-Adressen (10.0.64.12 - 10.0.64.18) durch die IP-Adressen Ihrer Server, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com , ns2.example.com und webmail.example.com mit den Hostnamen Ihrer Server und myrootpassword mit dem gewünschten Root-Passwort (es empfiehlt sich, für jeden Host ein anderes Passwort zu verwenden. Notieren Sie sich diese, da Sie sie später benötigen bei der Installation oder Aktualisierung Ihrer Slave-Server).

Wenn dies erledigt ist, können Sie MySQL beenden mit:

BEENDEN;

Sie können sich jetzt bei ISPConfig auf https://panel.example.com:8080 mit dem Benutzernamen admin und dem Passwort, das Ihnen der Installer gezeigt hat, anmelden.

2.3 Einrichten der Firewall

Als letztes müssen Sie unsere Firewall einrichten.

Melden Sie sich bei der ISPConfig-Benutzeroberfläche an und gehen Sie zu System -> Firewall. Klicken Sie dann auf "Neuen Firewall-Eintrag hinzufügen".

Für den Panel-Server müssen wir folgende Ports öffnen:

TCP:

22,80,443,8080,8081

Über die Benutzeroberfläche müssen keine UDP-Ports geöffnet werden.

Wir werden auch Port 3306 öffnen, der für MySQL verwendet wird, aber aus Sicherheitsgründen nur von unserem lokalen Netzwerk aus. Führen Sie dazu den folgenden Befehl von der CLI aus, nachdem die Änderung vom ISPConfig-Panel weitergegeben wurde (wenn der rote Punkt verschwunden ist):

ufw erlaubt von 10.0.64.0/24 zu jedem Port 3306 proto tcp

Ihr Panel ist jetzt eingerichtet und einsatzbereit.

Im nächsten Schritt installieren wir den Webserver.


Ubuntu
  1. Perfect Server Automated ISPConfig 3 Installation auf Debian 10 - 11 und Ubuntu 20.04

  2. Der perfekte Server – Ubuntu 15.04 (nginx, BIND, Dovecot und ISPConfig 3)

  3. Perfect Server Automated ISPConfig 3 Installation auf Debian 10 - 11 und Ubuntu 20.04

  4. So richten Sie IP-Failover mit KeepAlived unter Ubuntu und Debian ein

  5. Richten Sie Apache und Php mit mod_fcgid auf Ubuntu/Debian ein

Der perfekte Server – Ubuntu 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot und ISPConfig 3)

Ersetzen von Amavisd durch Rspamd in ISPConfig 3.1 auf Debian und Ubuntu

So installieren und konfigurieren Sie RabbitMQ unter Ubuntu 16.04

So installieren und konfigurieren Sie Apache Spark unter Ubuntu 21.04

Installieren und konfigurieren Sie OwnCloud auf Ubuntu 21 / Debian 11

So installieren und konfigurieren Sie Apache Spark unter Ubuntu/Debian