Server Installation · 10 min read · Jan 25, 2026

Der perfekte Server - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1) - Seite 2

10 Installieren Sie Apache2, PHP, FCGI, suExec, Pear, phpMyAdmin und mcrypt

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt können wie folgt installiert werden:

apt-get 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 libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger

Sie werden die folgenden Fragen sehen:

Webserver automatisch neu konfigurieren: <- apache2  
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <- ja  
Geben Sie das Passwort des Administrators ein? <- yourrootmysqlpassword  
Geben Sie das Passwort der phpmyadmin-Anwendung ein? <-  Drücken Sie einfach die Eingabetaste

Führen Sie dann den folgenden Befehl aus, um die Apache-Module suexec, rewrite, ssl, actions und include (plus dav, dav_fs und auth_digest, wenn Sie WebDAV verwenden möchten) zu aktivieren:

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers

Um sicherzustellen, dass der Server nicht durch die HTTPOXY-Schwachstelle angegriffen werden kann, werden wir den HTTP_PROXY-Header in Apache global deaktivieren, indem wir die Konfigurationsdatei /etc/apache2/conf-available/httpoxy.conf hinzufügen.

sudo nano /etc/apache2/conf-available/httpoxy.conf

Fügen Sie den folgenden Inhalt in die Datei ein:


    RequestHeader unset Proxy early

Und aktivieren Sie das Modul, indem Sie Folgendes ausführen:

a2enconf httpoxy  
service apache2 restart

10.1 Installieren Sie HHVM (HipHop Virtual Machine)

In diesem Schritt werden wir HHVM aus dem offiziellen Debian-Repository installieren. Fügen Sie das HHVM-Repo hinzu und importieren Sie den Schlüssel.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449  
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.list

Aktualisieren Sie die Paketliste:

sudo apt-get update

und installieren Sie HHVM:

sudo apt-get install hhvm

10.2 Installieren Sie SuPHP (optional, aber nicht empfohlen)

AKTUALISIERTE HINWEIS: SuPHP sollte nicht mehr installiert werden, fahren Sie mit Schritt 11 fort.

SuPHP ist für Debian Jessie nicht mehr verfügbar. Der suphp-Modus sollte in ISPConfig nicht mehr verwendet werden, da es bessere PHP-Modi wie php-fpm und php-fcgi gibt. Wenn Sie suphp aus Legacy-Gründen wirklich benötigen, folgen Sie den Schritten in diesem Kapitel, um es manuell zu kompilieren. Aber wir empfehlen die Installation nicht.

apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutils
cd /usr/local/src  
wget http://suphp.org/download/suphp-0.7.2.tar.gz  
tar zxvf suphp-0.7.2.tar.gz  
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch  
patch -Np1 -d suphp-0.7.2 < suphp.patch  
cd suphp-0.7.2  
autoreconf -if  
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin/apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log  
make  
make install  

Erstellen Sie das suphp-Konfigurationsverzeichnis und die suphp.conf-Datei:

mkdir /var/log/suphp  
mkdir /etc/suphp  
nano /etc/suphp/suphp.conf
[global]  
;Pfad zur Protokolldatei  
logfile=/var/log/suphp/suphp.log  
  
;Protokollebene  
loglevel=info  
  
;Benutzer, unter dem Apache läuft  
webserver_user=www-data  
  
;Pfad, in dem sich alle Skripte befinden müssen  
docroot=/var/www  
  
;Pfad zu chroot(), bevor das Skript ausgeführt wird  
;chroot=/mychroot  
  
; Sicherheitsoptionen  
allow_file_group_writeable=false  
allow_file_others_writeable=false  
allow_directory_group_writeable=false  
allow_directory_others_writeable=false  
  
;Überprüfen, ob das Skript innerhalb von DOCUMENT_ROOT ist  
check_vhost_docroot=true  
  
;Senden Sie kleinere Fehlermeldungen an den Browser  
errors_to_browser=false  
  
;PATH-Umgebungsvariable  
env_path=/bin:/usr/bin  
  
;Umask, die festgelegt werden soll, in oktaler Notation angeben  
umask=0022  
  
; Mindest-UID  
min_uid=100  
  
; Mindest-GID  
min_gid=100  
  
[handlers]  
;Handler für PHP-Skripte  
x-httpd-suphp="php:/usr/bin/php-cgi"  
  
;Handler für CGI-Skripte  
x-suphp-cgi=execute:!self  
umask=0022

Als nächstes fügen wir eine Konfigurationsdatei hinzu, um das suphp-Modul in Apache zu laden:

echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so" > /etc/apache2/mods-available/suphp.load

Öffnen Sie dann /etc/apache2/mods-available/suphp.conf…

nano /etc/apache2/mods-available/suphp.conf

… und fügen Sie den folgenden Inhalt hinzu:


        AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler application/x-httpd-suphp

    
        suPHP_Engine on
    

    # Standardmäßig suPHP für Debian-paketierte Webanwendungen deaktivieren, da Dateien
    # im Besitz von root sind und nicht von suPHP ausgeführt werden können, aufgrund von min_uid.
    
        suPHP_Engine off
    

# # Verwenden Sie eine spezifische PHP-Konfigurationsdatei (ein Verzeichnis, das eine php.ini-Datei enthält)
#       suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Sagt mod_suphp, dass es ANFRAGEN mit dem Typ  NICHT bearbeiten soll.
#       suPHP_RemoveHandler 

Aktivieren Sie das suphp-Modul in Apache:

a2enmod suphp

Starten Sie Apache anschließend neu:

service apache2 restart

11 Installieren Sie Let’s Encrypt

ISPConfig 3.1 unterstützt die kostenlose SSL-Zertifizierungsstelle Let’s Encrypt. Die Let’s Encrypt-Funktion ermöglicht es Ihnen, kostenlose SSL-Zertifikate für Ihre Website innerhalb von ISPConfig zu erstellen.

Jetzt fügen wir die Unterstützung für Let’s Encrypt hinzu.

mkdir /opt/certbot  
cd /opt/certbot  
wget https://dl.eff.org/certbot-auto  
chmod a+x ./certbot-auto

Führen Sie jetzt den certboot-auto-Befehl aus, der die Software und ihre Abhängigkeiten herunterlädt und installiert.

./certbot-auto

Der Befehl wird Ihnen dann mitteilen, dass “keine Namen in Ihren Konfigurationsdateien gefunden wurden” und fragt, ob er fortfahren soll. Bitte wählen Sie hier “nein”, da die Zertifikate von ISPConfig erstellt werden.

12 Installieren Sie PHP-FPM und XCache

XCache ist ein kostenloser und offener PHP-Opcode-Cache zum Cachen und Optimieren von PHP-Zwischencode. Es ist ähnlich wie andere PHP-Opcode-Caches, wie eAccelerator und APC. Es wird dringend empfohlen, eines dieser Tools zu installieren, um Ihre PHP-Seite zu beschleunigen.

12.1 PHP-FPM (empfohlen)

Beginnend mit ISPConfig 3.0.5 gibt es einen zusätzlichen PHP-Modus, den Sie für die Verwendung mit Apache auswählen können: PHP-FPM.

Um PHP-FPM mit Apache zu verwenden, benötigen wir das mod_fastcgi-Apache-Modul (bitte verwechseln Sie dies nicht mit mod_fcgid - sie sind sehr ähnlich, aber Sie können PHP-FPM nicht mit mod_fcgid verwenden). Wir können PHP-FPM und mod_fastcgi wie folgt installieren:

apt-get install libapache2-mod-fastcgi php5-fpm

Stellen Sie sicher, dass Sie das Modul aktivieren und Apache neu starten:

a2enmod actions fastcgi alias  
service apache2 restart

12.2 Installieren Sie XCache

XCache kann wie folgt installiert werden:

apt-get install php5-xcache

Starten Sie Apache jetzt neu:

service apache2 restart

13 Installieren Sie Mailman

ISPConfig ermöglicht es Ihnen, Mailman-Mailinglisten zu verwalten (zu erstellen/zu ändern/zu löschen). Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:

apt-get install mailman

Wählen Sie mindestens eine Sprache, z.B.:

Sprachen zur Unterstützung: <-- en (Englisch)  
 Fehlende Site-Liste <-- Ok

Bevor wir Mailman starten können, muss eine erste Mailingliste namens mailman erstellt werden:

newlist mailman
root@server1:~# newlist mailman  
Geben Sie die E-Mail des für die Liste Verantwortlichen ein: <-- admin E-Mail-Adresse, z.B. [email protected]  
Initiales Mailman-Passwort: <-- admin Passwort für die Mailman-Liste  
Um die Erstellung Ihrer Mailingliste abzuschließen, müssen Sie Ihre /etc/aliases (oder  
entsprechende) Datei bearbeiten, indem Sie die folgenden Zeilen hinzufügen und möglicherweise das  
`newaliases`-Programm ausführen:  
   
## mailman Mailingliste  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"  
   
Drücken Sie die Eingabetaste, um den Mailman-Besitzer zu benachrichtigen... <-- EINGABETASTE  
   
root@server1:~#

Öffnen Sie anschließend /etc/aliases…

nano /etc/aliases

… und fügen Sie die folgenden Zeilen hinzu:

[...]  
## mailman Mailingliste  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Führen Sie aus:

newaliases

und starten Sie Postfix neu:

service postfix restart

Schließlich müssen wir die Mailman-Apache-Konfiguration aktivieren:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf

Dies definiert das Alias /cgi-bin/mailman/ für alle Apache-VHosts, was bedeutet, dass Sie auf die Mailman-Admin-Oberfläche für eine Liste unter http://server1.example.com/cgi-bin/mailman/admin/ zugreifen können, und die Webseite für Benutzer einer Mailingliste finden Sie unter http://server1.example.com/cgi-bin/mailman/listinfo/.

Unter http://server1.example.com/pipermail finden Sie die Mailinglistenarchive.

Starten Sie anschließend Apache neu:

service apache2 restart

Starten Sie dann den Mailman-Daemon:

service mailman start

14 Installieren Sie PureFTPd und Quota

PureFTPd und Quota können mit dem folgenden Befehl installiert werden:

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

Bearbeiten Sie die Datei /etc/default/pure-ftpd-common…

nano /etc/default/pure-ftpd-common

… und stellen Sie sicher, dass der Startmodus auf standalone gesetzt ist und VIRTUALCHROOT=true gesetzt ist:

[...]  
STANDALONE_OR_INETD=standalone  
[...]  
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/

Anschließend 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
Landesname (2-Buchstaben-Code) [AU]: <-- Geben Sie Ihren Ländernamen ein (z.B. "DE").  
Bundesland oder Provinzname (voller Name) [Some-State]: <-- Geben Sie Ihren Bundesland- oder Provinznamen ein.  
Ort (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 Ihres Unternehmens).  
Abteilung (z.B. Bereich) []: <-- Geben Sie Ihren Abteilungsnamen ein (z.B. "IT-Abteilung").  
Allgemeiner Name (z.B. IHR Name) []: <-- Geben Sie den vollqualifizierten Domainnamen des Systems ein (z.B. "server1.example.com").  
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

Starten Sie dann PureFTPd neu:

service pure-ftpd-mysql restart

Bearbeiten Sie /etc/fstab. Meine sieht so aus (ich habe usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 zur Partition mit dem Einhängepunkt / hinzugefügt):

nano /etc/fstab
# /etc/fstab: statische Dateisysteminformationen.  
#  
# Verwenden Sie 'blkid', um die universell eindeutige Kennung für ein  
# Gerät zu drucken; dies kann mit UUID= als robustere Methode verwendet werden, um Geräte zu benennen,  
# die auch dann funktioniert, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).  
#  
#        
# / war auf /dev/sda1 während der Installation  
UUID=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# Swap war auf /dev/sda5 während der Installation  
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 none swap sw 0 0  
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Um Quota zu aktivieren, führen Sie diese Befehle aus:

mount -o remount /
quotacheck -avugm  
quotaon -avug

15 Installieren Sie den BIND DNS-Server

BIND kann wie folgt installiert werden:

apt-get install bind9 dnsutils

Wenn Ihr Server eine virtuelle Maschine ist, wird dringend empfohlen, den haveged-Daemon zu installieren, um eine höhere Entropie für die DNSSEC-Signierung zu erhalten. Sie können haveged auch auf nicht-virtuellen Servern installieren, es sollte nicht schaden.

apt-get install haveged

Eine Erklärung zu diesem Thema finden Sie hier.

16 Installieren Sie Webalizer und AWStats

Webalizer und AWStats können wie folgt installiert werden:

apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

Öffnen Sie anschließend /etc/cron.d/awstats…

nano /etc/cron.d/awstats

… und kommentieren Sie alles in dieser Datei aus:

#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generieren Sie statische Berichte:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

17 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 install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp  
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz  
tar xvfz jailkit-2.19.tar.gz  
cd jailkit-2.19  
./debian/rules binary

Sie können jetzt das Jailkit.deb-Paket wie folgt installieren:

cd ..  
dpkg -i jailkit_2.19-1_*.deb  
rm -rf jailkit-2.19*

18 Installieren Sie fail2ban und die UFW-Firewall

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:

nano /etc/fail2ban/jail.local
[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[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

[postfix-sasl]
enabled  = true
port     = smtp
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 3

Erstellen Sie dann die folgenden beiden Filterdateien:

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =
nano /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\S*),.*
ignoreregex =

Fügen Sie dann die ignoreregex-Zeile in die postfix-sasl-Filterdatei ein:

echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf

Starten Sie fail2ban anschließend neu:

service fail2ban restart

Um die UFW-Firewall zu installieren, führen Sie diesen apt-Befehl aus:

apt-get install ufw
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.