Multiserver Installation eines Debian 5.0 Server mit ISPConfig 3

Autor: Till Brehm Till Brehm <t [dot] brehm [at] projektfarm [dot] com

Co-Autor: Alexander Fox <howtoforge [at] planetfox[dot] de

Created: 27/08/10

Version: 1.0

Last edited 31/08/2010

Folge uns auf Twitter | Folge uns auf Facebook
In dieser Installationsanleitung werde ich beschreiben die Installation eines ISPConfig3 Servers im Multiserver Setup Betrieb.Der Multiserver Betrieb von ISPConfig 3 ist eine Funktion gegenüber der ISPConfig2 Version , mit der es möglich ist über eine einzige Oberfläche mehrere Server zu verwalten ohne sich bei jeder Maschine seperat ein zu loggen. ISPConfig 3 Synchronisiert die Daten mittels einem Datenbank Abgleich.

Folgende Dienste werden am Schluss dieses Howtos dediziert zur Verfügung,
  • Webserver ( Apache2 )
  • Email-Server ( Postfix )
  • Datenbank ( MySql )
  • DNS Server ( MyDNS )
In diesem Setup werden 5 Server verwaltet über eine einzige ISPConfig 3 Oberfläche. Es ist ganz einfach und es können auch eine größere Anzahl an Servern verwendet werden, die Anzahl der Server ist nicht auf 5 Stück beschränkt. Möchtest du zwei Mailserver verwalten, beginne beim Schritt 2. Möchtest du mehr Webserver, installiere ISPConfig3 auf allen Webservern im Experten Modus von ISPConfig3

1. Installation der Fünf Debian Basis Systeme.
In diesem Setup werden wir einen master Server verwenden ( über diesen Server Verwalten wir später alle Server über ISPConfig3, dort ist auch der Webserver ) und 4 slave Server für die Datenbank, E-mail und DNS-Server.

Um das Cluster Setup durch zu führen, benötigen wir 5 Server (es können auch virtuelle Systeme sein) mit Debian 5.0 minimal Installiert. Die Basis Installation ist in folgendem Howto beschrieben Punkte 1-6

Der Perfekte Server - Debian Lenny (Debian 5.0) [ISPConfig 3]
Befolge die Installationsschritte nur von 1-6 und nicht die anderen Schritte darüber hinaus da wir sonst das Clustering Setup nicht durchführen können.

In meinem Beispiel benutze ich folgende Hostnamen und IP Adressen. für die 5 Server

Web Server
Hostname: web.example.tld

IP address: 192.168.0.105

Mail Server
Hostname: mail.example.tld

IP address: 192.168.0.106

DB Server
Hostname: db.example.tld

IP address: 192.168.0.107

DNS Server (primary)
Hostname: ns1.example.tld

IP address: 192.168.0.108

DNS Server (secondary)
Hostname: ns2.example.tld

IP address: 192.168.0.109

Solltest du Veränderungen an den Hostnames und IP Adressen vornehmen für dein Netzwerk beachte das du diese Adressen im laufe dieses Howtos auch verwenden musst.Ansonsten ist ein Erfolgreiches beenden der Installation nicht möglich.

2. Installation des Webservers
Editiere die hosts Konfigurationsdatei und füge die IP adresse und den hostname für alle Server hinzu. Die Hostnamen und die IP adressen müssen an deine Umgebung 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
Setze die Hostnamen der Server
echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
Editiere die sources.list Konfiguration
vi /etc/apt/sources.list
Füge folgende Zeile hinzu, um das volatile repository vorhanden ist
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
Führe ein update der Sourcelisten durch folgendermaßen
apt-get update
Prüfe dein System auf Updates und installiere diese
apt-get upgrade
Es ist eine gute Sache die System Zeit zu Synchronisieren mit NTP (network time protocol) über das Internet. Einfach folgendes installieren.
apt-get -y install ntp ntpdate
Deine System Zeit wird nun automatisch synchron gehalten.

Installiere den MySql Server . Der Datenbank Server MySql ist auf jedem Server erforderlich. da ISPConfig3 verwendet Datenbanken für die Synchronisation zwischen den Servern.
apt-get -y install mysql-client mysql-server
Vergebe bei der Installation ein Passwort

Wir möchten den Mysql Server auf allen Schnittstellen auf dem Master Server verfügbar haben, nicht nur intern über localhost. daher editieren wir die Konfiguration des Mysql Servers /etc/mysql/my.cnf

und kommentieren folgende Zeile aus bind-address = 127.0.0.1:
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 [...]
Nun starten wir den Mysql Server neu
/etc/init.d/mysql restart
Wir installieren nun folgende Dienste und Programme l Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, und mcrypt folgendermaßen
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
Es wird folgende fragen kommen

Web server to reconfigure automatically: <-- apache2

Nun werden wir folgende Apache module aktivieren suexec, rewrite, ssl, actions und einbinden.
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest
Den FTP Server PureFTPd und quota werden mit folgenden Kommandos installiert
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
Passe deine etc/fstab. ein wenig an nach dem Beispiel unten ( Ich füge folgendes hinzu usrquota,grpquota zu den partionen mit dem mount punkt / ):
# /etc/fstab: static file system information.
# # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Um quota zu aktivieren, gib folgendes in die Kommandozeile ein
touch /quota.user /quota.group
chmod 600 /quota.* mount -o remount /
quotacheck -avugm
quotaon -avug
Installiere vlogger, webalizer und awstats
apt-get -y install vlogger webalizer awstats
Installiere Jailkit: Jailkit wird nur benötigt für chroot SSH user. Jailkit muss installiert werden bevor ISPCOnfig installiert wird, es ist nciht möglich dies später zu machen.
apt-get -y install build-essential autoconf automake1.9 libtool flex bison
cd /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*
Installiere fail2ban: Dies ist nur eine option, aber empfohlen da der ISPConfig-Monitor versucht die Logs an zu zeigen.
apt-get install fail2ban
Nun werden wir ISPConfig 3 installieren. Verwende die Aktuelle Stabile Version von ISPConfig3 die du auf der ISpconfig Seite finden kannst

http://www.ispconfig.org/ispconfig-3/download/
Dieser Server ist der Master-Server in unserem Setup auf dem dem die ISPConfig3 Oberfläche läuft. Um die anderen MySQL-Instanzen auf die MySQL-Datenbank auf diesem Knoten zu verbinden während der Installation müssen wir die MySQL-Benutzer root Datensätze in der Master-Datenbank für jeden Slave-Server den Hostnamen und IP-Adresse hinzufügen. Der einfachste Weg dies zu tun ist, das Web-basierte Administrations-Tool phpMyAdmin, dass wir bereits installiert haben nutzen. Öffnen Sie die URL http://192.168.0.105/phpmyadmin in einem Web-Browser, melden Sie sich als MySQL-Benutzer root und führen 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 ;
bei den obigen SQL-befehlen ersetze die IP Adressen (192.168.0.106 - 192.168.0.109) mit den IP-Adressen von den Servern und ersetze mail.example.tld, db.example.tld, ns1.example.tld und ns2.example. TLD mit dem Hostnamen deiner Server und myrootpassword mit dem gewünschten root-Passwort.

klicke auf reload der benutzerrechte oder starte den MySql Server neu. Schließe phpmyadmin.

Gehe zurück zur Shell des Servers server1.example.tld und lade dir die letzte stabile Version von ISPconfig3 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/
Nun starte den installer folgendermaßen
php -q install.php
Verwende folgende antworten bei den kommenden fragen
Select language (en,de) [en]: <-- de
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 []: <-- Enter your MySQL root password here 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
lösche das Installationsverzeichniss
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

0 Kommentar(e)

Zum Posten von Kommentaren bitte