Server Setup · 7 min read · Dec 18, 2025

Der perfekte Server - Debian 9 (Stretch) mit Apache, BIND, Dovecot, PureFTPD und 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 -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap phpmyadmin php7.0-cli php7.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring memcached libapache2-mod-passenger php7.0-soap

Sie werden die folgenden Fragen sehen:

Webserver automatisch neu konfigurieren: <- apache2  
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <- ja  
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-Sicherheitsanfälligkeit 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.

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)

Es sind noch keine HHVM-Pakete für Debian 9 verfügbar. HHVM ist ein optionaler PHP-Modus, sodass Ihr Server auch ohne ihn funktioniert, Sie können jedoch den PHP-Modus HHVM für Websites nicht verwenden.

10.2 SuPHP

SuPHP ist für Debian 9 nicht mehr verfügbar, die SuPHP-Funktionen sind veraltet und werden auch aus ISPConfig entfernt. Verwenden Sie die verfügbaren PHP-Modi PHP-FPM oder PHP-FCGI zusammen mit suexec anstelle von SuPHP.

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 direkt aus ISPConfig zu erstellen.

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

cd /usr/local/bin  
wget https://dl.eff.org/certbot-auto  
chmod a+x certbot-auto  
./certbot-auto --install-only

Es sind keine weiteren Schritte erforderlich, als LE zu installieren. Die SSL-Zertifikate für die Website werden von ISPConfig erstellt, wenn Sie die Websites hinzufügen.

12 Installieren Sie PHP-FPM

Um PHP-FPM mit Apache zu verwenden, benötigen wir das Apache-Modul mod_proxy_fcgi, das standardmäßig installiert ist und nur aktiviert werden muss. Wir können PHP-FPM wie folgt installieren:

apt-get -y install php7.0-fpm

Stellen Sie sicher, dass Sie die Module aktivieren und Apache neu starten:

a2enmod actions proxy_fcgi alias  
service apache2 restart

12.2 Installieren Sie PHP Opcode Cache (optional)

Opcache ist ein kostenloser PHP-Opcode-Cache zum Cachen und Optimieren von PHP-Zwischencode. APCu ist ein Kompatibilitätsmodul, das APC-kompatible Funktionen für Opcache bereitstellt, das von vielen CMS-Caching-Systemen verwendet wird. Es wird empfohlen, diese PHP-Erweiterungen zu installieren, um Ihre PHP-Seite zu beschleunigen.

APCu kann wie folgt installiert werden:

apt-get -y install php7.0-opcache php-apcu

Starten Sie jetzt Apache 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-Adresse der Person ein, die die Liste verwaltet: <-- 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  
equivalente) 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 danach /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 danach 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

Erstellen Sie die dhparam-Datei für pure-ftpd:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

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 alle 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 Landesnamen 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. Unternehmen) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Organisationsnamen ein (z.B. den Namen Ihres Unternehmens).  
Organisatorische Einheit (z.B. Abteilung) []: <-- Geben Sie den Namen Ihrer organisatorischen Einheit 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 anzuzeigen; dies kann mit UUID= als robustere Methode verwendet werden, um Geräte zu benennen,  
# die auch funktionieren, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).  
#  
#        
# / war auf /dev/sda1 während der Installation  
UUID=f539c5cb-624f-4c27-a149-1446a251a453 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# Swap war auf /dev/sda5 während der Installation  
UUID=8d3194e7-edb5-4492-937d-d066b4994baf 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 danach /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:

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp  
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz  
tar xvfz jailkit-2.20.tar.gz  
cd jailkit-2.20  
echo 5 > debian/compat  
./debian/rules binary

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

cd ..  
dpkg -i jailkit_2.20-1_*.deb  
rm -rf jailkit-2.20*

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

Und fügen Sie die folgende Konfiguration hinzu:

[pure-ftpd]  
enabled = true  
port = ftp  
filter = pure-ftpd  
logpath = /var/log/syslog  
maxretry = 3  
  
[dovecot]  
enabled = true  
filter = dovecot  
logpath = /var/log/mail.log  
maxretry = 5  
  
[postfix-sasl]  
enabled = true  
port = smtp  
filter = postfix-sasl  
logpath = /var/log/mail.log  
maxretry = 3

Starten Sie fail2ban danach 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.