Server Setup · 7 min read · Jan 05, 2026
Installation eines Multiserver-Setups mit dedizierten Web-, E-Mail-, DNS- und MySQL-Datenbankservern auf Debian 5.0 mit ISPConfig 3
Installation eines Multiserver-Setups mit dedizierten Web-, E-Mail-, DNS- und MySQL-Datenbankservern auf Debian 5.0 mit ISPConfig 3
Version 1.0
Autor: Till Brehm
Dieses Tutorial beschreibt die Installation eines ISPConfig 3 Multiserver-Setups mit dedizierten Web-, E-Mail-, Datenbank- und zwei DNS-Servern, die alle über ein einzelnes ISPConfig 3 Steuerfeld verwaltet werden. Das unten beschriebene Setup verwendet fünf Server und kann leicht auf eine höhere Anzahl von Servern erweitert werden, indem einfach weitere Server hinzugefügt werden. Wenn Sie beispielsweise zwei Mailserver haben möchten, führen Sie die Setup-Schritte aus Kapitel 2 auf beiden Servern durch. Wenn Sie weitere Webserver einrichten möchten, installieren Sie ISPConfig im Expertenmodus auf allen anderen Webservern, außer auf dem ersten.
Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3 Handbuch herunterzuladen.
Auf fast 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Kunden), erklärt, wie man ISPConfig 3 installiert und aktualisiert, enthält ein Referenzdokument für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es beschreibt auch, wie man seinen Server sicherer macht und enthält am Ende einen Abschnitt zur Fehlersuche.
1 Installation der fünf Debian-Basissysteme
In diesem Setup wird es einen Master-Server geben (der den Webserver und die ISPConfig-Steuerfeldschnittstelle ausführt) und vier Slave-Server für Datenbank, E-Mail und DNS.
Um das Cluster-Setup zu installieren, benötigen wir fünf Server (oder virtuelle Server) mit einer minimalen Debian 5.0-Installation. Das Basissetup wird im folgenden Tutorial in den Schritten 1 - 6 beschrieben:
https://www.howtoforge.com/perfect-server-debian-lenny-ispconfig3
Installieren Sie nur die Schritte 1 - 6 des perfekten Server-Tutorials und nicht die anderen Schritte, da sie sich für ein Cluster-Setup unterscheiden!
In meinem Beispiel verwende ich die folgenden Hostnamen und IP-Adressen für die fünf Server:
Webserver
Hostname: web.example.tld
IP-Adresse: 192.168.0.105
Mailserver
Hostname: mail.example.tld
IP-Adresse: 192.168.0.106
DB-Server
Hostname: db.example.tld
IP-Adresse: 192.168.0.107
DNS-Server (primär)
Hostname: ns1.example.tld
IP-Adresse: 192.168.0.108
DNS-Server (sekundär)
Hostname: ns2.example.tld
IP-Adresse: 192.168.0.109
Wo auch immer diese Hostnamen oder IP-Adressen in den nächsten Installationsschritten vorkommen, müssen Sie sie an die IPs und Hostnamen Ihrer Server anpassen.
2 Installation des Webservers
Bearbeiten Sie die Hosts-Datei und fügen Sie die IP-Adressen und Hostnamen für alle Server hinzu. Die Hostnamen und IP-Adressen müssen angepasst werden, um Ihrem Setup zu entsprechen.
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
# Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts
::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-allhostsSetzen Sie den Hostnamen des Servers:
echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
Bearbeiten Sie die sources.list-Datei…
vi /etc/apt/sources.list … und stellen Sie sicher, dass sie die folgende Zeile enthält, um das volatile Repository zu aktivieren.
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-freeFühren Sie…
apt-get update… aus, um die apt-Paketdatenbank zu aktualisieren; führen Sie dann…
apt-get upgrade… aus, um die neuesten Updates zu installieren (falls vorhanden).
Es ist eine gute Idee, die Systemuhr mit einem NTP ( n etwork t ime p rotocol) Server über das Internet zu synchronisieren. Führen Sie einfach aus…
apt-get -y install ntp ntpdate… und Ihre Systemzeit wird immer synchronisiert sein.
Installieren Sie den MySQL-Server. Eine MySQL-Serverinstanz ist auf jedem Server erforderlich, da ISPConfig sie verwendet, um die Konfiguration zwischen den Servern zu synchronisieren.
apt-get -y install mysql-client mysql-serverGeben Sie das neue Passwort für MySQL ein, wenn Sie vom Installer dazu aufgefordert werden.
Wir möchten, dass MySQL auf allen Schnittstellen auf dem Master-Server hört, nicht nur auf localhost, daher bearbeiten wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address = 127.0.0.1 aus:
vi /etc/mysql/my.cnf[...]
# Anstelle von skip-networking ist die Standardeinstellung jetzt, nur auf
# localhost zu hören, was kompatibler ist und nicht weniger sicher ist.
#bind-address = 127.0.0.1
[...] Dann starten Sie MySQL neu:
/etc/init.d/mysql restartJetzt installieren Sie Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt wie folgt:
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 Sie werden die folgende Frage sehen:
Webserver automatisch neu konfigurieren: <– apache2
Führen Sie dann den folgenden Befehl aus, um die Apache-Module suexec, rewrite, ssl, actions und include zu aktivieren:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digestPureFTPd und Quota können mit dem folgenden Befehl installiert werden:
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatoolBearbeiten Sie /etc/fstab. Mein sieht so aus (ich habe ,usrquota,grpquota zu der Partition mit dem Einhängepunkt / hinzugefügt):
vi /etc/fstab| # /etc/fstab: statische Dateisysteminformationen. # # |
Um Quota zu aktivieren, führen Sie diese Befehle aus:
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
Installieren Sie vlogger, webalizer und awstats:
apt-get -y install vlogger webalizer awstats Installieren Sie Jailkit: Jailkit ist nur erforderlich, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden (wichtig: Jailkit muss vor ISPConfig installiert werden - es kann danach nicht installiert werden!):
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*
Installieren Sie fail2ban: Dies ist optional, aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
apt-get install fail2banAls nächstes installieren wir ISPConfig 3. Um die Download-URL der neuesten stabilen Version von ISPConfig 3 zu erhalten, besuchen Sie bitte die ISPConfig-Website: http://www.ispconfig.org/ispconfig-3/download/
Dieser Server ist der Master-Server in unserem Setup, der die ISPConfig-Steuerfeldschnittstelle ausführt. Um den anderen MySQL-Instanzen zu ermöglichen, während der Installation eine Verbindung zur MySQL-Datenbank auf diesem Knoten herzustellen, müssen wir MySQL-Root-Benutzerdatensätze in der Master-Datenbank für jeden Slave-Server-Hostname und jede IP-Adresse hinzufügen. Der einfachste Weg, dies zu tun, ist die Verwendung des webbasierten phpmyadmin-Verwaltungstools, das wir bereits installiert haben. Öffnen Sie die URL http://192.168.0.105/phpmyadmin in einem Webbrowser, melden Sie sich als MySQL-Root-Benutzer an und führen Sie diese MySQL-Abfragen aus:
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 ;
In den obigen SQL-Befehlen ersetzen Sie die IP-Adressen (192.168.0.106 - 192.168.0.109) durch die IP-Adressen Ihrer Server und ersetzen Sie mail.example.tld, db.example.tld, ns1.example.tld und ns2.example.tld durch die Hostnamen Ihrer Server und myrootpassword durch das gewünschte Root-Passwort.
Klicken Sie auf die Schaltfläche Berechtigungen neu laden oder starten Sie MySQL neu. Schließen Sie dann phpmyadmin.
Gehen Sie zurück zur Shell von server1.example.tld und laden Sie die neueste stabile Version von ISPConfig 3 herunter:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
Starten Sie dann das Installationsskript:
php -q install.phpWählen Sie die Sprache (en,de) [en]: <– en
Installationsmodus (standard,experte) [standard]: <– experte
Vollqualifizierter Hostname (FQDN) des Servers, z. B. server2.domain.tld [web.example.tld]: <– web.example.tld
MySQL-Server-Hostname [localhost]: <– localhost
MySQL-Root-Benutzername [root]: <– root
MySQL-Root-Passwort []: <– Geben Sie hier Ihr MySQL-Root-Passwort ein
MySQL-Datenbank zu erstellen [dbispconfig]: <– dbispconfig
MySQL-Zeichensatz [utf8]: <– utf8
Soll dieser Server einem bestehenden ISPConfig-Multiserver-Setup beitreten (y,n) [n]: <– n
E-Mail konfigurieren (y,n) [y]: <– n
Jailkit konfigurieren (y,n) [y]: <– y
FTP-Server konfigurieren (y,n) [y]: <– y
DNS-Server konfigurieren (y,n) [y]: <– n
Apache-Server konfigurieren (y,n) [y]: <– y
Firewall-Server konfigurieren (y,n) [y]: <–y
ISPConfig-Weboberfläche installieren (y,n) [y]: <–y
ISPConfig-Port [8080]: <– 8080
Bereinigen Sie die Installationsverzeichnisse:
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.