Multiserver Setup mit dedizierten Web, E-Mail, DNS & MySQL Datenbank Servern unter Debian Squeeze mit ISPConfig 3

Version 1.0
Author: Till Brehm <t [dot] brehm [at] projektfarm [dot] com>


Dieses Tutorial beschreibt die Installation eines ISPConfig 3 Multiserver Setups mit dedizierten Web, E-Mail, Datenbank und zwei DNS Servern, welche alle durch eine einzelne ISPConfig 3 Kontrolloberfläche verwaltet werden. Das unten beschriebene Setup benutzt fünf Server und kann einfach durch Hinzufügen von weiteren Servern erweitert werden. Wollen Sie beispielsweise zwei Mailserver haben, führen Sie die Schritte aus Kapitel 2 einfach auf beiden Servern durch. Wollen Sie mehrere Webserver haben, dann installieren Sie ISPConfig im expert-Modus auf allen anderen außer dem ersten.

1 Installation der fünf Debian Basissysteme

Dieses Setup wird einen Master Server (auf welchem der Webserver und die ISPConfig Kontrolloberfläche laufen) und vier Slave Server beinhalten, welche für Datenbank, E-Mail und primären und sekundären DNS Server bestimmt sind.

Um das Clustersetup zu installieren, brauchen Sie fünf Server (oder virtuelle Server) mit einer Debian 5.0 Minimalinstallation. Das Basissetup wird in den Schritten 1 - 6 des folgenden Tutorials beschreiben:

http://www.howtoforge.de/anleitung/der-perfekte-server-debian-squeeze-debian-6-0-mit-bind-dovecot-ispconfig-3/

Befolgen Sie nur die Schritte 1 - 6 des Tutorials; alle weiteren Schritte unterscheiden sich von denen eines Clustersetups!

In meinem Beispiel benutze 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
Datenbankserver
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
An jeder Stelle, an der diese Namen oder IP Adressen im Folgenden auftauchen, müssen Sie sie durch die Hostnamen und Adressen Ihrer Server ersetzen.

2 Installation des Webservers

Editieren Sie die hosts Datei und fügen Sie alle IP Adressen und Hostnamen Ihrer Server hinzu. Diese müssen beide an Ihr Setup angepasst werden.

vi /etc/hosts


127.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 # The following lines are desirable for IPv6 capable 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
Legen Sie den Hostnamen des Servers fest:

echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Benutzen Sie...

apt-get update

... um die apt Paketdatenbank zu aktualisieren; und dann...

apt-get upgrade

... um die neusten Programmupdates zu installieren (falls es welche gibt).

Es ist immer gut die Systemzeit über das Internet mit einem NTP (network time protocol) Server zu synchronisieren. Benutzen Sie einfach...

apt-get -y install ntp ntpdate

... und Ihre Systemuhrzeit wird immer automatisch synchronisiert werden.

Installieren Sie den MySQL Server. Ein Exemplar eines MySQL Servers ist auf jedem Server notwendig, da ISPConfig diese benutzt um die Konfiguration zwischen den Servern zu synchronisieren.

apt-get -y install mysql-client mysql-server

Enter the new password for MySQL when requested by the installer.

Geben Sie das neue Passwort für MySQL ein, sobald Sie der Installer dazu auffordert.

MySQL soll alle Netzwerkschnittstellen des Master Servers benutzen, nicht nur localhost, deshalb editieren Sie die /etc/mysql/my.cnf Datei und kommentieren die Zeile bind-address = 127.0.0.1 aus:

vi /etc/mysql/my.cnf


[...]
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Starten Sie MySQL dann neu:

/etc/init.d/mysql restart

Installieren Sie als nächstes Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt:

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

Antworten Sie folgendermaßen auf die folgende Frage:

Web server to reconfigure automatically: <-- apache2
Benutzen Sie folgenden Befehl um die Apache Module suexecrewritesslactions und include zu aktivieren:

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

PureFTPd und Quota können wie folgt installiert werden:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

Editieren Sie /etc/default/pure-ftpd-common...

vi /etc/default/pure-ftpd-common

... und stellen Sie sicher, dass VIRTUALCHROOT=true gesetzt ist:
[...]
VIRTUALCHROOT=true [...]

Konfigurieren Sie nun PureFTPd, sodass es FTP und TLS Sitzungen erlaubt. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und Daten in klarem Text übertragen werden. Durch Benutzung von TLS wird jegliche Kommunikation verschlüsselt, wodurch FTP sehr viel sicherer gemacht wird.

Wollen Sie FTP und TLS Sitzungen erlauben, benutzen Sie:

echo 1 > /etc/pure-ftpd/conf/TLS

Um TLS zu benutzen, müssen Sie ein SSL Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, deshalb muss ich dieses Verzeichnis erst erstellen:

mkdir -p /etc/ssl/private/

Danach können Sie das SSL Zertifikat generieren:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Country Name (2 letter code) [AU]: <-- Geben Sie Ihr Land an (z.B., "DE"). State or Province Name (full name) [Some-State]: <-- Geben Sie Ihr Bundesland an (z.B. Niedersachsen). Locality Name (eg, city) []: <-- Geben Sie Ihre Stadt an (z.B. Lueneburg). Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Geben Sie den Namen Ihrer Firma an. Organizational Unit Name (eg, section) []: <-- Geben Sie den Namen Ihrer Abteilung an (z.B. "IT Department"). Common Name (eg, YOUR name) []: <-- Geben Sie den qualifiezierten Domainnamen Ihres Systems an (z.B. "server1.example.com"). Email Address []: <-- Geben Sie Ihre E-Mail Adresse an.
Ändern Sie die Zugriffsrechte auf das SSL Zertifikat:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Starten Sie dann PureFTPd neu:

/etc/init.d/pure-ftpd-mysql restart

Editieren Sie die /etc/fstab Datei. Meine sieht folgendermaßen aus (ich habe ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 zur Partition mit dem Mountpunkt / hinzugefügt): :

vi /etc/fstab

# /etc/fstab: static file system information.
# # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1 # swap was on /dev/sda5 during installation UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Um Quota zu aktivieren, benutzen Sie folgende Befehle:

mount -o remount /

quotacheck -avugm
quotaon -avug

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 beide Cron Jobs in der Datei aus:
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
Installieren Sie Jailkit: Jailkit wird nur gebraucht, wenn Sie SSH Benutzer und Cron Jobs chrooten wollen. Es kann wie folgt installiert werden (Wichtig: Jailkit muss vor ISPConfig installiert werden - dies kann nicht nachträglich geschehen!):

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 zwar optional, wird aber empfohlen, da der ISPConfig Monitor versucht, dessen Log anzuzeigen:

apt-get install fail2ban

Um fail2ban PureFTPd überwachen zu lassen, 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
Danach erstellen Sie die folgende Filterdatei:

vi /etc/fail2ban/filter.d/pureftpd.conf

[Definition]
failregex = .*pure-ftpd: (.*@<HOST>) [WARNING] Authentication failed for user.* ignoreregex =
Starten Sie fail2ban danach neu:

/etc/init.d/fail2ban restart


Als nächstes installieren Sie ISPConfig. Um zum Downloadlink der aktuellsten Version zu kommen, besuchen Sie bitte die ISPConfig Webseite: http://www.ispconfig.org/ispconfig-3/download/
Dies ist in unserem Setup der Master Server, auf dem die ISPConfig Kontrolloberfläche laufen wird. Um den anderen MySQL Exemplaren zu erlauben, sich während der Installation mit der MySQL Datenbank auf diesem Knoten zu verbinden, müssen Sie der Master Datenbank MySQL root Benutzerrecords für jeden Slave Server Hostnamen und deren IP Adressen hinzufügen. Der einfachste Weg dies zu erledigen ist das webbasierte phpMyAdmin Administrationswerkzeug zu benutzen, welches Sie zuvor installiert haben. Öffnen Sie die URL http://192.168.0.105/phpmyadmin in einem Internetbrowser, melden Sie sich als MySQL root Benutzer an und führen Sie diese MySQL Befehle 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 ;

Ersetzen Sie in den obigen Befehlen die IP Adressen (192.168.0.106 - 192.168.0.109) mit den IP Adressen Ihrer Server,  mail.example.tld, db.example.tld, ns1.example.tld und ns2.example.tld mit den Hostnamen Ihrer Server und myrootpassword mit dem gewünschten root Passwort.

Klicken Sie auf den reload permissions Button oder starten Sie MySQL neu. Schließen Sie danach phpMyAdmin.

Kehren Sie zur Shell von server1.example.tld zurück und laden Sie die aktuelle 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

Select language (en,de) [en]: <-- en Installation mode (standard,expert) [standard]: <-- expert Full qualified hostname (FQDN) of the server, eg server2.domain.tld [web.example.tld]: <-- web.example.tld MySQL server hostname [localhost]: <-- localhost MySQL root username [root]: <-- root MySQL root password []: <-- Geben Sie hier Ihr SQL root Passwort ein MySQL database to create [dbispconfig]: <-- dbispconfig MySQL charset [utf8]: <-- utf8 Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: <-- n Configure Mail (y,n) [y]: <-- n Configure Jailkit (y,n) [y]: <-- y Configure FTP Server (y,n) [y]: <-- y Configure DNS Server (y,n) [y]: <-- n Configure Apache Server (y,n) [y]: <-- y Configure Firewall Server (y,n) [y]: <--y Install ISPConfig Web-Interface (y,n) [y]: <--y ISPConfig Port [8080]: <-- 8080 Enable SSL for the ISPConfig web interface (y,n) [y]: <-- y
Country Name (2 letter code) [AU]: <-- ENTER State or Province Name (full name) [Some-State]: <-- ENTER Locality Name (eg, city) []: <-- ENTER Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- ENTER Organizational Unit Name (eg, section) []: <-- ENTER Common Name (eg, YOUR name) []: <-- ENTER Email Address []: <-- ENTER A challenge password []: <-- ENTER An optional company name []: <-- ENTER
Räumen Sie anschließend im Installationsverzeichnis auf:

cd /tmp
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz


3 Installation des Mailservers

Editieren Sie die hosts Datei und fügen Sie die IP Adressen und Hostnamen aller Server hinzu. Achten Sie dabei darauf, dass Sie sie mit denen Ihres Setups ersetzen:

vi /etc/hosts


127.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 # The following lines are desirable for IPv6 capable 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
Geben Sie dem Server seinen Hostnamen:

echo mail.example.tld > /etc/hostname
echo mail.example.tld > /etc/mailname
/etc/init.d/hostname.sh start

Benutzen Sie...

apt-get update

... um die apt Paketdatenbank zu aktualisieren; und danach...

apt-get upgrade

... um die neusten Updates der bereits installierten Pakete einzuspielen (falls welche vorhanden sind).

Es ist außerdem immer gut die Systemzeit mit einem NTP (network time protocol) Server über das Internet zu synchronisieren. Benutzen Sie dazu:

apt-get -y install ntp ntpdate

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, sobald Sie vom Installer dazu aufgefordert werden, das neue MySQL Passwort ein und beantworten Sie die anderen Fragen folgendermaßen:

General type of configuration? <-- Internet site Mail name? <-- mail.mydomain.tld
Um amavisd-new, SpamAssassin und ClamAV zu installieren benutzen Sie:

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

Wollen Sie Mailinglisten auf Ihrem Server benutzen, so installieren Sie Mailman. Dieser Schritt ist optional. Mailman ist auf einen Apache Webserver angewiesen, wollen Sie also kein Apache auf Ihrem Mailserver laufen haben, sollten Sie Mailman nicht installieren.

apt-get -y install mailman

Der apt Installer von Mailman wird Sie auffordern, Sprachen für die Mailingliste auszuwählen. Erlauben Sie alle Sprachen, die in Mailman benutzen möchten. Erstellen Sie als nächstes die "mailman" Mailingliste

newlist mailman

und geben die E-Mail Adresse und das neue Passwort des Mailinglisten Administrators ein. Dies ist der letzte Schritt der Mailman Installation. Der nächste Befehl, welcher PHP installiert, muss auf jedem Server ausgeführt werden, ganz gleich ob Sie Mailman installiert haben oder nicht.

Installieren Sie dann die Kommandozeilenversion von PHP um PHP-basierte Skripts für ISPConfig ausführen zu können:

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

Installieren Sie fail2ban: Dies ist zwar optional, wird aber empfohlen, da der ISPConfig Monitor versucht, dessen Log anzuzeigen:

apt-get install fail2ban

Um fail2ban PureFTPd und Dovecot überwachen zu lassen, 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): .*(?:Authentication failure|Aborted login (auth failed|Aborted login (tried to use disabled|Disconnected (auth failed|Aborted login (d+ authentication attempts).*rip=(?P<host>S*),.* ignoreregex =
Starten Sie fail2ban danach neu:

/etc/init.d/fail2ban restart

Installieren Sie nun ISPConfig 3 auf diesem Server. Für den Downloadlink der aktuellen stabilen ISPConfig 3 Version, besuchen Sie bitte die ISPConfig Webseite: http://www.ispconfig.org/ispconfig-3/download/
Laden Sie die aktuelle stabile ISPConfig 3 Version 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

Select language (en,de) [en]: <-- en Installation mode (standard,expert) [standard]: <-- expert Full qualified hostname (FQDN) of the server, eg server1.domain.tld [mail.example.tld]: <-- mail.example.tld MySQL server hostname [localhost]: <-- localhost MySQL root username [root]: <-- root MySQL root password []: <-- Geben Sie hier Ihr MySQL root Passwort an MySQL database to create [dbispconfig]: <-- dbispconfig MySQL charset [utf8]: <-- utf8 Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: <-- y MySQL master server hostname []: <-- web.example.tld MySQL master server root username [root]: <-- root MySQL master server root password []: <-- Geben Sie hier das root Passwort des Master Servers an MySQL master server database name [dbispconfig]: <-- dbispconfig Configure Mail (y,n) [y]: <-- y
Country Name (2 letter code) [AU]: <-- DE (Geben Sie hier den ISO Ländercode Ihres landes an) State or Province Name (full name) [Some-State]: <-- Niedersachsen (Geben Sie Ihr Bundesland an) Locality Name (eg, city) []: <-- Lueneburg (Geben Sie Ihre Stadt an) Organization Name (eg, company) [Internet Widgits Pty Ltd]: <- ENTER Organizational Unit Name (eg, section) []: <- ENTER Common Name (eg, YOUR name) []: <- ENTER Email Address []: <-- ENTER
Configure Jailkit (y,n) [y]: <-- n Configure FTP Server (y,n) [y]: <-- n Configure DNS Server (y,n) [y]: <-- n Configure Apache Server (y,n) [y]: <-- n Configure Firewall Server (y,n) [y]: <--y Install ISPConfig Web-Interface (y,n) [y]: <--n
Benutzen Sie...

rm -f /var/www/ispconfig

... um den ISPConfig Oberflächenlink im /var/www Verzeichnis zu entfernen.

Räumen Sie anschließend im Installationsverzeichnis auf:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz


4 Installation des MySQL Datenbankservers

Editieren Sie die hosts Datei und fügen die IP Adressen und Hostnamen aller Server hinzu. Denken Sie daran, diese an Ihr Setup anzupassen:

vi /etc/hosts


127.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 # The following lines are desirable for IPv6 capable 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
Tragen Sie den Hostnamen des Servers ein:

echo db.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Benutzen Sie...

apt-get update

... um die apt Paketdatenbank zu aktualisieren; und danach...

apt-get upgrade

... um die neusten Updates zu installieren (falls es welche gibt).

Es ist außerdem immer gut die Systemzeit mit einem NTP (network time protocol) Server über das Internet zu synchronisieren. Benutzen Sie dazu:

apt-get -y install ntp ntpdate

Installieren Sie den MySQL Client und Server:

apt-get -y install mysql-client mysql-server

Geben Sie das neue Passwort für MySQL ein, sobald Sie der Installer dazu auffordert.

MySQL soll alle Netzwerkschnittstellen benutzen, nicht nur localhost, deshalb müssen Sie die /etc/mysql/my.cnf Datei editieren und die Zeile bind-address = 127.0.0.1 auskommentieren:

vi /etc/mysql/my.cnf


[...]
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Starten Sie MySQL dann neu:

/etc/init.d/mysql restart

Installieren Sie dann die Kommandozeilenversion von PHP um PHP-basierte Skripts für ISPConfig ausführen zu können:

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

Installation von fail2ban: diese ist optional, wird aber empfohlen, da der ISPConfig Monitor dessen Log anzuzeigen versucht:

apt-get install fail2ban

Nun installieren Sie ISPConfig 3 auf dem Server. Für den Downloadlink der aktuellen stabilen ISPConfig 3 Version, besuchen Sie bitte die ISPConfig Webseite: http://www.ispconfig.org/ispconfig-3/download/
Laden Sie die aktuelle stabile ISPConfig 3 Version 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

Select language (en,de) [en]: <-- en Installation mode (standard,expert) [standard]: <-- expert Full qualified hostname (FQDN) of the server, eg server1.domain.tld [db.example.tld]: <-- db.example.tld MySQL server hostname [localhost]: <-- localhost MySQL root username [root]: <-- root MySQL root password []: <-- Geben Sie hier Ihr MySQL root Passwort an MySQL database to create [dbispconfig]: <-- dbispconfig MySQL charset [utf8]: <-- utf8 Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: <-- y MySQL master server hostname []: <-- web.example.tld MySQL master server root username [root]: <-- root MySQL master server root password []: <-- Geben Sie hier das root Passwort des Master Servers an MySQL master server database name [dbispconfig]: <-- dbispconfig Configure Mail (y,n) [y]: <-- n Configure Jailkit (y,n) [y]: <-- n Configure FTP Server (y,n) [y]: <-- n Configure DNS Server (y,n) [y]: <-- n Configure Apache Server (y,n) [y]: <-- n Configure Firewall Server (y,n) [y]: <--y
Install ISPConfig Web-Interface (y,n) [y]: <--n
Benutzen Sie...

rm -f /var/www/ispconfig

... um den ISPConfig Oberflächenlink im /var/www Verzeichnis zu entfernen.

Räumen Sie anschließend im Installationsverzeichnis auf:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz


5 Installation des primären DNS Servers

Editieren Sie die hosts Datei und fügen Sie die IP Adressen und Hostnamen aller Server hinzu. Achten Sie dabei darauf, dass Sie sie mit denen Ihres Setups ersetzen:

vi /etc/hosts


127.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 # The following lines are desirable for IPv6 capable 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
Tragen Sie den Hostnamen des Servers ein:

echo ns1.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Führen Sie...

apt-get update

... aus um die apt Paketdatenbank zu aktualisieren; und danach...

apt-get upgrade

... um die neusten Updates der bereits installierten Pakete einzuspielen (falls welche vorhanden sind).

Es ist außerdem immer gut die Systemzeit mit einem NTP (network time protocol) Server über das Internet zu synchronisieren. Benutzen Sie dazu:

apt-get -y install ntp ntpdate

Installieren Sie den MySQL Client und Server:

apt-get -y install mysql-client mysql-server

Geben Sie, sobald Sie vom Installer dazu aufgefordert werden, das neue MySQL Passwort ein.

Installieren Sie dann die Kommandozeilenversion von PHP um PHP-basierte Skripts für ISPConfig ausführen zu können:

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

Installation von fail2ban: Diese ist optional aber empfohlen, da der ISPConfig Monitor versucht, dessen Log anzuzeigen:

apt-get install fail2ban

Installieren Sie den BIND DNS Server:

apt-get -y install bind9 dnsutils

Nun installieren Sie ISPConfig 3 auf dem DNS Server. Für den Downloadlink der aktuellen stabilen ISPConfig 3 Version, besuchen Sie bitte die ISPConfig Webseite: http://www.ispconfig.org/ispconfig-3/download/
Laden Sie die aktuelle stabile ISPConfig 3 Version 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

Select language (en,de) [en]: <-- en Installation mode (standard,expert) [standard]: <-- expert Full qualified hostname (FQDN) of the server, eg server2.domain.tld [ns1.example.tld]: <-- ns1.example.tld MySQL server hostname [localhost]: <-- localhost MySQL root username [root]: <-- root MySQL root password []: <-- Geben Sie hier Ihr MySQL root Passwort an MySQL database to create [dbispconfig]: <-- dbispconfig MySQL charset [utf8]: <-- utf8 Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: <-- y MySQL master server hostname []: <-- web.example.tld MySQL master server root username [root]: <-- root MySQL master server root password []: <-- Geben Sie hier das root Passwort des Master Servers an MySQL master server database name [dbispconfig]: <-- dbispconfig Configure Mail (y,n) [y]: <-- n Configure Jailkit (y,n) [y]: <-- n Configure FTP Server (y,n) [y]: <-- n Configure DNS Server (y,n) [y]: <-- y Configure Apache Server (y,n) [y]: <-- n Configure Firewall Server (y,n) [y]: <--y
Install ISPConfig Web-Interface (y,n) [y]: <--n
Benutzen Sie...

rm -f /var/www/ispconfig

... um den ISPConfig Oberflächenlink im /var/www Verzeichnis zu entfernen.

Räumen Sie anschließend im Installationsverzeichnis auf:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz


6 Installation des sekundären DNS Servers

Editieren Sie die hosts Datei und fügen Sie die IP Adressen und Hostnamen aller Server hinzu. Achten Sie dabei darauf, dass Sie sie mit denen Ihres Setups ersetzen:

vi /etc/hosts


127.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 # The following lines are desirable for IPv6 capable 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
Tragen Sie den Hostnamen des Servers ein:

echo ns2.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Führen Sie...

apt-get update

... aus um die apt Paketdatenbank zu aktualisieren; und danach...

apt-get upgrade

... um die neusten Updates der bereits installierten Pakete einzuspielen (falls welche vorhanden sind).

Es ist außerdem immer gut die Systemzeit mit einem NTP (network time protocol) Server über das Internet zu synchronisieren. Benutzen Sie dazu:

apt-get -y install ntp ntpdate

Installieren Sie den MySQL Client und Server:

apt-get -y install mysql-client mysql-server

Geben Sie, sobald Sie vom Installer dazu aufgefordert werden, das neue MySQL Passwort ein.

Installieren Sie dann die Kommandozeilenversion von PHP um PHP-basierte Skripts für ISPConfig ausführen zu können:

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

Installation von fail2ban: Diese ist optional aber empfohlen, da der ISPConfig Monitor versucht, dessen Log anzuzeigen:

apt-get install fail2ban

Installieren Sie den BIND DNS Server:

apt-get -y install bind9 dnsutils

Nun installieren Sie ISPConfig 3 auf dem DNS Server. Für den Downloadlink der aktuellen stabilen ISPConfig 3 Version, besuchen Sie bitte die ISPConfig Webseite: http://www.ispconfig.org/ispconfig-3/download/
Laden Sie die aktuelle stabile ISPConfig 3 Version 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

Select language (en,de) [en]: <-- en Installation mode (standard,expert) [standard]: <-- expert Full qualified hostname (FQDN) of the server, eg server2.domain.tld [ns2.example.tld]: <-- ns2.example.tld MySQL server hostname [localhost]: <-- localhost MySQL root username [root]: <-- root MySQL root password []: <-- Geben Sie hier Ihr MySQL root Passwort an MySQL database to create [dbispconfig]: <-- dbispconfig MySQL charset [utf8]: <-- utf8 Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: <-- y MySQL master server hostname []: <-- web.example.tld MySQL master server root username [root]: <-- root MySQL master server root password []: <-- Geben Sie hier das root Passwort des Master Servers an MySQL master server database name [dbispconfig]: <-- dbispconfig Configure Mail (y,n) [y]: <-- n Configure Jailkit (y,n) [y]: <-- n Configure FTP Server (y,n) [y]: <-- n Configure DNS Server (y,n) [y]: <-- y Configure Apache Server (y,n) [y]: <-- n Configure Firewall Server (y,n) [y]: <--y
Install ISPConfig Web-Interface (y,n) [y]: <--n
Benutzen Sie...

rm -f /var/www/ispconfig

... um den ISPConfig Oberflächenlink im /var/www Verzeichnis zu entfernen.

Räumen Sie anschließend im Installationsverzeichnis auf:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz


7 Anpassen der Servereinstellungen in ISPConfig

Melden Sie sich auf dem Master Server mit einem Internetbrowser in
ISPConfig an:

http://192.168.0.105:8080

Klicken Sie auf System > Server Services > web.example.tld, deaktivieren alle Kontrollkästchen außer den Webserver und Fileserver Kästchen und klicken auf Speichern.


Klicken Sie auf System > Server Services > mail.example.tld, deaktivieren alle Kontrollkästchen außer dem Mailserver Kästchen und klicken auf Speichern.


Klicken Sie auf System > Server Services > db.example.tld, deaktivieren alle Kontrollkästchen außer dem DB-Server Kästchen und klicken auf Speichern.


Klicken Sie auf System > Server Services > ns1.example.tld , deaktivieren alle Kontrollkästchen außer dem DNS-Server Kästchen und klicken auf Speichern.


Klicken Sie auf System > Server Services > ns2.example.tld , deaktivieren alle Kontrollkästchen außer dem DNS-Server Kästchen, wählen ns1.example.com in der Ist Mirror von Server Auswahlbox aus und klicken auf Speichern.

8 Links