Server Setup · 10 min read · Dec 17, 2025
Virtuelle Multiserver-Umgebung Mit Dedizierten Web- & MySQL-, E-Mail- & DNS-Servern Auf Debian Squeeze Mit ISPConfig 3 - Seite 2
5 Erstellen Der Virtuellen Server
Wir werden jetzt das OVZ-Webpanel verwenden, um unsere virtuellen Server zu erstellen. Melden Sie sich im Panel an und fügen Sie Ihre IPs unter IP-Adressen hinzu. Klicken Sie dann auf localhost und OS-Vorlagen.
Wir müssen jetzt eine Vorlage für unsere virtuellen Server herunterladen. Das tun wir, indem wir auf Install New OS Template -> Contributed klicken und debian-6.0-amd64-minimal auswählen.
Gehen Sie jetzt zurück zu localhost und klicken Sie auf Virtuellen Server erstellen. Füllen Sie die Felder wie folgt aus:
- Server-ID (VEID): eine Zahl (ich würde den letzten Teil Ihrer IP wählen, also 2 für den ersten)
- OS-Vorlage: bereits die richtige ausgewählt
- Server-Vorlage: unbegrenzt
- IP-Adresse: 192.168.1.2
- Hostname: web.example.tld
- DNS-Server: 8.8.4.4 8.8.8.8 (das sind Googles DNS)
- Lassen Sie den Rest wie er ist und weisen Sie Speicherplatz, RAM und CPU nach Wunsch zu…
Wiederholen Sie diesen Schritt für alle Ihre virtuellen Server (insgesamt 4 Mal: Web, Mail, 2x DNS).
5.1 Vorbereiten Der Virtuellen Server
Sie sollten sich jetzt bei jedem einzelnen virtuellen Server anmelden und diese Befehle ausführen:
apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
apt-get -y install nano wget ntp ntpdate
was sie auf die neueste Version aktualisiert und einige fehlende Pakete installiert.
6 Installation Der Dedizierten Server
6.1 Installation Des Web/DB-Servers
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 an Ihr Setup angepasst werden.
nano /etc/hosts
127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 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
Installieren Sie den MySQL-Server. Eine MySQL-Serverinstanz ist auf jedem Server erforderlich, da ISPConfig ihn verwendet, um die Konfiguration zwischen den Servern zu synchronisieren.
apt-get -y install mysql-client mysql-server
Geben Sie das neue Passwort für MySQL ein, wenn der Installer danach fragt.
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:
nano /etc/mysql/my.cnf
[...]
# Anstelle von skip-networking ist die Standardkonfiguration jetzt, nur auf
# localhost zu hören, was kompatibler ist und nicht weniger sicher.
#bind-address = 127.0.0.1
[...]```
Dann starten Sie MySQL neu:
/etc/init.d/mysql restart
Jetzt 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 zip wget
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, headers, expires und include zu aktivieren:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest headers expires
PureFTPd kann mit dem folgenden Befehl installiert werden:
apt-get -y install pure-ftpd-common pure-ftpd-mysql
Bearbeiten Sie die Datei /etc/default/pure-ftpd-common...
vi /etc/default/pure-ftpd-common
... und stellen Sie sicher, dass virtualchroot auf VIRTUALCHROOT=true gesetzt ist:
[…] VIRTUALCHROOT=true […]Jetzt konfigurieren wir PureFTPd, um FTP- und TLS-Sitzungen zuzulassen. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und Daten im Klartext übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird. Wenn Sie FTP- und TLS-Sitzungen zulassen möchten, führen Sie aus: echo 1 > /etc/pure-ftpd/conf/TLS Um TLS zu verwenden, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, daher erstelle ich zuerst dieses Verzeichnis: mkdir -p /etc/ssl/private/ Danach können wir das SSL-Zertifikat wie folgt generieren: openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem Landname (2-Buchstaben-Code) [AU]: <-- Geben Sie Ihren Ländernamen ein (z.B. "DE"). Bundesland oder Provinzname (vollständiger Name) [Some-State]: <-- Geben Sie Ihren Bundesland- oder Provinznamen ein. Ortsname (z.B. Stadt) []: <-- Geben Sie Ihre Stadt ein. Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Organisationsnamen ein (z.B. den Namen Ihrer Firma). Organisationsbereich (z.B. Abteilung) []: <-- Geben Sie Ihren Organisationsbereich ein (z.B. "IT-Abteilung"). Allgemeiner Name (z.B. IHR Name) []: <-- Geben Sie den vollqualifizierten Domainnamen des Systems ein (z.B. "web.example.tld"). E-Mail-Adresse []: <-- Geben Sie Ihre E-Mail-Adresse ein. Ändern Sie die Berechtigungen des SSL-Zertifikats: chmod 600 /etc/ssl/private/pure-ftpd.pem Installieren Sie vlogger, webalizer und awstats: apt-get -y install vlogger webalizer awstats Öffnen Sie danach /etc/cron.d/awstats... vi /etc/cron.d/awstats ... und kommentieren Sie beide Cron-Jobs in dieser Datei aus: #/10 * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
#10 03 * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
Installieren Sie Jailkit: Jailkit wird nur benötigt, 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 bison debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*
Installieren Sie fail2ban: Dies ist optional, aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
apt-get install fail2ban
Um fail2ban zu ermöglichen, PureFTPd zu überwachen, erstellen Sie die Datei /etc/fail2ban/jail.local:
vi /etc/fail2ban/jail.local
[pureftpd]
enabled = true port = ftp filter = pureftpd logpath = /var/log/syslog maxretry = 3
Erstellen Sie dann die folgende Filterdatei:
vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition] failregex = .pure-ftpd: (.@
Starten Sie fail2ban danach neu:
/etc/init.d/fail2ban restart
Als Nächstes werden wir ISPConfig 3 installieren. 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-Steuerfeldoberfläche ausführt. Um den anderen MySQL-Instanzen während der Installation die Verbindung zur MySQL-Datenbank auf diesem Knoten zu ermöglichen, 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.1.2/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.1.3' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.3' 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.1.4' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.4' 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.1.5' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.5' 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'@'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.1.3 - 192.168.1.5) durch die IP-Adressen Ihrer Server und ersetzen Sie mail.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 web.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.php
Wählen Sie 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]: <--n
ISPConfig-Weboberfläche installieren (y,n) [y]: <--y
ISPConfig-Port [8080]: <-- 8080
SSL für die ISPConfig-Weboberfläche aktivieren (y,n) [y]: <-- y
Landname (2-Buchstaben-Code) [AU]: <-- ENTER
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <-- ENTER
Ortsname (z.B. Stadt) []: <-- ENTER
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- ENTER
Organisationsbereich (z.B. Abteilung) []: <-- ENTER
Allgemeiner Name (z.B. IHR Name) []: <-- ENTER
E-Mail-Adresse []: <-- ENTER
Ein Herausforderungs-Passwort []: <-- ENTER
Ein optionaler Firmenname []: <-- ENTER
Bereinigen Sie die Installationsverzeichnisse:
cd /tmp
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
#### 6.2 Installation Des Mailservers
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 an Ihr Setup angepasst werden.
nano /etc/hosts
127.0.0.1 localhost 192.168.1.2 web.example.tld 192.168.1.3 mail.example.tld 192.168.1.4 ns1.example.tld 192.168.1.5 ns2.example.tld
::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-allhosts
Setzen Sie den Hostnamen des Servers:
echo mail.example.tld > /etc/hostname
echo mail.example.tld > /etc/mailname
/etc/init.d/hostname.sh start
Installieren Sie Postfix, Dovecot und MySQL mit einem einzigen Befehl:
apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d
Geben Sie das neue Passwort für MySQL ein, wenn der Installer danach fragt, und beantworten Sie die nächsten Fragen wie unten beschrieben:
Allgemeiner Konfigurationstyp? <-- Internetseite
Mailname? <-- mail.example.tld
Um amavisd-new, SpamAssassin und ClamAV zu installieren, führen wir aus:
apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
Wenn Sie Mailinglisten auf Ihrem Server verwenden möchten, installieren Sie mailman. Dieser Schritt ist optional. Mailman benötigt einen Apache-Webserver, also wenn Sie keine Apache-Instanz auf Ihrem Mailserver ausführen möchten, installieren Sie mailman nicht.
apt-get -y install mailman
Der apt-Installer für mailman wird Sie dann auffordern, die Sprachen für die Mailingliste auszuwählen. Aktivieren Sie alle Sprachen, die Sie für mailman verwenden möchten. Erstellen Sie dann die Mailingliste "mailman".
newlist mailman
und geben Sie die E-Mail-Adresse und das neue Passwort für den Mailinglisten-Administrator ein. Das ist der letzte Schritt der Mailman-Installation. Der nächste Befehl zur Installation von PHP muss auf jedem Server ausgeführt werden, unabhängig davon, ob Sie mailman installiert haben oder nicht.
Installieren Sie dann die Befehlszeilenversion von PHP, um PHP-basierte Shell-Skripte für ISPConfig ausführen zu können:
apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt
Installieren Sie fail2ban: Dies ist optional, aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
apt-get install fail2ban
Um fail2ban zu ermöglichen, PureFTPd und Dovecot zu überwachen, erstellen Sie die Datei /etc/fail2ban/jail.local:
vi /etc/fail2ban/jail.local
[dovecot-pop3imap]
enabled = true filter = dovecot-pop3imap action = iptables-multiport[name=dovecot-pop3imap, port=”pop3,pop3s,imap,imaps”, protocol=tcp] logpath = /var/log/mail.log maxretry = 5
Erstellen Sie dann die folgende Filterdatei:
vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition] failregex = (?: pop3-login|imap-login): .(?:Authentifizierungsfehler|Abgebrochene Anmeldung (auth fehlgeschlagen|Abgebrochene Anmeldung (versucht, deaktiviert zu verwenden|Getrennt (auth fehlgeschlagen|Abgebrochene Anmeldung (\d+ Authentifizierungsversuche).rip=(?P
Starten Sie fail2ban danach neu:
/etc/init.d/fail2ban restart
Jetzt werde ich ISPConfig 3 auf diesem Server installieren. 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/
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.php
Wählen Sie Sprache (en,de) [en]: <-- en
Installationsmodus (standard,experte) [standard]: <-- experte
Vollqualifizierter Hostname (FQDN) des Servers, z.B. server1.domain.tld [mail.example.tld]: <-- mail.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]: <-- y
MySQL-Master-Server-Hostname []: <-- web.example.tld
MySQL-Master-Server-Root-Benutzername [root]: <-- root
MySQL-Master-Server-Root-Passwort []: <-- Geben Sie hier das Root-Passwort des Master-Servers ein
MySQL-Master-Server-Datenbankname [dbispconfig]: <-- dbispconfig
E-Mail konfigurieren (y,n) [y]: <-- y
Landname (2-Buchstaben-Code) [AU]: <-- DE (Geben Sie hier den ISO-Ländercode ein, in dem Sie leben)
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <-- Niedersachsen (Geben Sie hier den Bundeslandnamen ein)
Ortsname (z.B. Stadt) []: <-- Lueneburg (Geben Sie hier den Stadtnamen ein)
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- ENTER
Organisationsbereich (z.B. Abteilung) []: <-- ENTER
Allgemeiner Name (z.B. IHR Name) []: <-- ENTER
E-Mail-Adresse []: <-- ENTER
Jailkit konfigurieren (y,n) [y]: <-- n
FTP-Server konfigurieren (y,n) [y]: <-- n
DNS-Server konfigurieren (y,n) [y]: <-- n
Apache-Server konfigurieren (y,n) [y]: <-- n
Firewall-Server konfigurieren (y,n) [y]: <--n
ISPConfig-Weboberfläche installieren (y,n) [y]: <--n
Führen Sie...
rm -f /var/www/ispconfig
... aus, um den ISPConfig-Oberflächenlink im Verzeichnis /var/www zu entfernen.
Bereinigen Sie die Installationsverzeichnisse:
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gzErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.