Server Setup · 9 min read · Nov 29, 2025

Der perfekte Server - Ubuntu 16.10 (Yakkety Yak) mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3.1 - Seite 2

8. Installieren Sie Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear und mcrypt

Apache2, PHP 7, 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

Sie werden die folgende Frage sehen:

Webserver, der automatisch neu konfiguriert werden soll: <-- apache2   
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <-- Ja  
MySQL-Anwendungspasswort für phpmyadmin: <-- Drücken Sie die Eingabetaste  

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

a2enmod suexec rewrite ssl actions include cgi
a2enmod dav_fs dav auth_digest headers

Um sicherzustellen, dass der Server nicht durch die HTTPOXY-Sicherheitsanfälligkeit angegriffen werden kann, werde ich den HTTP_PROXY-Header in Apache global deaktivieren.

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

Fügen Sie diesen Inhalt in die Datei ein:


    RequestHeader unset Proxy early

Aktivieren Sie die Konfigurationsdatei, indem Sie Folgendes ausführen:

a2enconf httpoxy

Starten Sie Apache anschließend neu:

service apache2 restart

Wenn Sie Ruby-Dateien mit der Erweiterung .rb auf Ihren über ISPConfig erstellten Websites hosten möchten, müssen Sie die Zeile application/x-ruby rb in /etc/mime.types auskommentieren:

nano /etc/mime.types
[...]
#application/x-ruby                             rb
[...]

(Dies ist nur für .rb-Dateien erforderlich; Ruby-Dateien mit der Erweiterung .rbx funktionieren sofort.)

Starten Sie Apache anschließend neu:

service apache2 restart

8.1 PHP Opcode-Cache (optional)

Opcache ist ein kostenloser PHP Opcode-Cacher 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

Jetzt starten Sie Apache neu:

service apache2 restart

8.2 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 -y install libapache2-mod-fastcgi php7.0-fpm

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

a2enmod actions fastcgi alias   
service apache2 restart

8.3 Zusätzliche PHP-Versionen

Es ist möglich, mehrere PHP-Versionen auf einem Server zu haben (wählbar über ISPConfig), die über FastCGI und PHP-FPM ausgeführt werden können. Um zu erfahren, wie man zusätzliche PHP-Versionen (PHP-FPM und FastCGI) erstellt und wie man ISPConfig konfiguriert, überprüfen Sie bitte dieses Tutorial: https://www.howtoforge.com/tutorial/how-to-install-php-5-6-on-ubuntu-16-04/ (funktioniert auch für Ubuntu 16.10).

10.1 Installieren Sie HHVM (HipHop Virtual Machine), optional

Es gibt kein HHVM-Paket für Ubuntu 16.10. Wenn Sie HHVM benötigen, verwenden Sie bitte Ubuntu 16.04 LTS als Betriebssystem mit diesem Tutorial: https://www.howtoforge.com/tutorial/perfect-server-ubuntu-16-04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/

9. Installieren Sie Let’s Encrypt

ISPConfig 3.1 hat integrierte Unterstützung für die kostenlose SSL-Zertifizierungsstelle Let’s Encrypt. Die Let’s Encrypt-Funktion ermöglicht es Ihnen, kostenlose SSL-Zertifikate für Ihre Website in ISPConfig zu erstellen.

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

apt-get -y install certbot

10. 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]
Anfängliches 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 Programm newaliases 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

newaliases

anschließend aus 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-available/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:///cgi-bin/mailman/admin/ zugreifen können, und die Webseite für Benutzer einer Mailingliste finden Sie unter http:///cgi-bin/mailman/listinfo/.

Unter http:///pipermail finden Sie die Mailinglistenarchive.

Starten Sie Apache anschließend neu:

service apache2 restart

Starten Sie dann den Mailman-Daemon:

service mailman start

11. Installieren Sie PureFTPd und Quota

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

apt-get -y 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 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

Ländercode (2 Buchstaben) [AU]: <– Geben Sie Ihren Ländercode ein (z.B. “DE”).
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <– Geben Sie Ihren Bundesland- oder Provinzname 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).
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. Meins 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 funktionieren, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).  
#  
#        
/dev/mapper/server1--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# /boot war während der Installation auf /dev/sda1  
UUID=39762f15-3a49-4982-add3-139d5040b48a /boot ext2 defaults 0 2  
/dev/mapper/server1--vg-swap_1 none swap sw 0 0  
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

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

mount -o remount /
quotacheck -avugm  
quotaon -avug

Was die folgende Ausgabe zeigt:

root@server1:/# quotacheck -avugm  
quotacheck: Scanning /dev/mapper/server1--vg-root [/] done  
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.  
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.  
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.  
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.  
quotacheck: Checked 12563 directories and 89343 files  
quotacheck: Old file not found.  
quotacheck: Old file not found.  
root@server1:/opt/metronome# quotaon -avug  
/dev/mapper/server1--vg-root [/]: group quotas turned on  
/dev/mapper/server1--vg-root [/]: user quotas turned on  
root@server1:/#

12. Installieren Sie den BIND DNS-Server

BIND kann wie folgt installiert werden:

apt-get -y install bind9 dnsutils haveged

13. Installieren Sie Vlogger, Webalizer und AWstats

Vlogger, Webalizer und AWstats können wie folgt installiert werden:

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-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

14. 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 mehr installiert werden!):

apt-get -y install build-essential autoconf automake1.11 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  
echo 5 > debian/compat

Die aktuelle Version 2.19 von Jailkit hat einen Syntaxfehler, der ihre Kompilierung verhindert. Um dies zu beheben, öffnen Sie die Datei debian/changelog mit nano:

nano debian/changelog

Und fügen Sie die folgende Zeile in Zeile 5 sowie eine leere Zeile danach hinzu:

 -- Olivier   Wed, 18 Nov 2015 20:38:44 +0100

So dass der resultierende erste Teil der Datei so aussieht (die eingefügte Zeile in rot):

jailkit (2.19-1) UNRELEASED; urgency=medium
* irgendwie wurde eine Fehler-URL in die ini-Datei-Standort im Quellcode für jk_chrootsh in der 2.18-Version eingefügt. Behoben.
-- Olivier  Wed, 18 Nov 2015 20:38:44 +0100
jailkit (2.18-1) UNRELEASED; urgency=medium
* Wartungsfreigabe, behebt uid_t-Druck für sehr hohe uid-Nummern  
* geringfügige Verbesserungen an jk_init.ini  
* Möglichkeit hinzufügen, --login in jk_chrootsh zu erzwingen
-- Olivier  Wed, 18 Nov 2015 20:38:44 +0100

Dann erstellen Sie das Jailkit-Paket, indem Sie diesen Befehl ausführen:

./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*

15. Installieren Sie fail2ban und UFW

Dies ist optional, aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:

apt-get -y 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 die fehlende ignoreregex-Zeile in die postfix-sasl-Datei 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.