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-allhosts

Setzen 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: (.@) [WARNING] Authentifizierung fehlgeschlagen für Benutzer.* ignoreregex =


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\S),. ignoreregex =


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.gz
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.