Server Setup · 7 min read · Sep 11, 2025

Der perfekte Server - Ubuntu 16.04 (Xenial Xerus) mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3.1

Dieses Tutorial zeigt die Installation eines Ubuntu 16.04 (Xenial Xerus) Webhosting-Servers mit Apache2, Postfix, Dovecot, Bind und PureFTPD, um ihn für die Installation von ISPConfig 3.1 vorzubereiten. Das resultierende System wird einen Web-, Mail-, Mailinglisten-, DNS- und FTP-Server bereitstellen.

ISPConfig 3 ist ein Webhosting-Kontrollpanel, das es Ihnen ermöglicht, die folgenden Dienste über einen Webbrowser zu konfigurieren: Apache oder nginx Webserver, Postfix Mailserver, Courier oder Dovecot IMAP/POP3-Server, MySQL, BIND oder MyDNS Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr. Dieses Setup umfasst die Installation von Apache (anstatt Nginx), BIND (anstatt MyDNS) und Dovecot (anstatt Courier).

Hinweis: Die in diesem Tutorial verwendete ISPConfig 3.1-Version befindet sich derzeit im Beta-Stadium. Die alte stabile ISPConfig 3.0.5p9-Version kann nicht auf Ubuntu 16.04 verwendet werden, da sie nicht mit PHP 7 kompatibel ist.

1. Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100 und dem Gateway 192.168.1.1. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen. Bevor Sie fortfahren, benötigen Sie eine grundlegende Minimalinstallation von Ubuntu 16.04, wie im Tutorial beschrieben.

2. Bearbeiten Sie /etc/apt/sources.list und aktualisieren Sie Ihre Linux-Installation

Bearbeiten Sie /etc/apt/sources.list. Kommentieren Sie die Installations-CD in der Datei aus oder entfernen Sie sie und stellen Sie sicher, dass die Universe- und Multiverse-Repositories aktiviert sind. Es sollte danach so aussehen:

nano /etc/apt/sources.list
#  
# deb cdrom:[Ubuntu-Server 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial main restricted  
#deb cdrom:[Ubuntu-Server 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial main restricted  
# Siehe http://help.ubuntu.com/community/UpgradeNotes, wie man auf  
# neuere Versionen der Distribution aktualisiert.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial main restricted  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial main restricted  

## Wichtige Fehlerbehebungsupdates, die nach der endgültigen Veröffentlichung der  
## Distribution erstellt wurden.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted  

## N.B. Software aus diesem Repository wird VOLLSTÄNDIG VON DER Ubuntu  
## Gruppe UNTERSTÜTZT und ist möglicherweise nicht unter einer freien Lizenz. Bitte überzeugen Sie sich selbst von  
## Ihren Rechten zur Nutzung der Software. Beachten Sie auch, dass Software in  
## Universe KEINE Überprüfung oder Updates von der Ubuntu-Sicherheitsgruppe erhält.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial universe  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial universe  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe  

## N.B. Software aus diesem Repository wird VOLLSTÄNDIG VON DER Ubuntu  
## Gruppe UNTERSTÜTZT und ist möglicherweise nicht unter einer freien Lizenz. Bitte überzeugen Sie sich selbst von  
## Ihren Rechten zur Nutzung der Software. Beachten Sie auch, dass Software in  
## Multiverse KEINE Überprüfung oder Updates von der Ubuntu-Sicherheitsgruppe erhält.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial multiverse  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse  

## N.B. Software aus diesem Repository wurde möglicherweise nicht so  
## umfangreich getestet wie die in der Hauptversion enthaltene, obwohl sie  
## neuere Versionen einiger Anwendungen enthält, die nützliche Funktionen bieten können.  
## Beachten Sie auch, dass Software in Backports KEINE Überprüfung  
## oder Updates von der Ubuntu-Sicherheitsgruppe erhält.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse  
## Kommentieren Sie die folgenden beiden Zeilen aus, um Software aus Canonicals  
## 'Partner'-Repository hinzuzufügen.  
## Diese Software ist kein Teil von Ubuntu, wird aber von Canonical und den  
## jeweiligen Anbietern als Dienst für Ubuntu-Nutzer angeboten.  
# deb http://archive.canonical.com/ubuntu xenial partner  
# deb-src http://archive.canonical.com/ubuntu xenial partner  
  
deb http://security.ubuntu.com/ubuntu xenial-security main restricted  
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted  
deb http://security.ubuntu.com/ubuntu xenial-security universe  
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe  
deb http://security.ubuntu.com/ubuntu xenial-security multiverse  
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

Führen Sie dann aus

apt-get update

um die apt-Paketdatenbank zu aktualisieren und

apt-get upgrade

um die neuesten Updates zu installieren (falls vorhanden). Wenn Sie sehen, dass ein neuer Kernel als Teil der Updates installiert wird, sollten Sie das System danach neu starten:

reboot

3. Ändern Sie die Standard-Shell

/bin/sh ist ein Symlink zu /bin/dash, wir benötigen jedoch /bin/bash, nicht /bin/dash. Daher tun wir dies:

dpkg-reconfigure dash

Verwenden Sie dash als Standard-System-Shell (/bin/sh)? <– Nein

Wenn Sie dies nicht tun, schlägt die Installation von ISPConfig fehl.

4. Deaktivieren Sie AppArmor

AppArmor ist eine Sicherheitserweiterung (ähnlich wie SELinux), die erweiterte Sicherheit bieten soll. Meiner Meinung nach benötigen Sie es nicht, um ein sicheres System zu konfigurieren, und es verursacht normalerweise mehr Probleme als Vorteile (denken Sie daran, nachdem Sie eine Woche mit der Fehlersuche verbracht haben, weil ein Dienst nicht wie erwartet funktionierte, und dann stellen Sie fest, dass alles in Ordnung war, nur AppArmor das Problem verursacht hat). Daher deaktiviere ich es (das ist ein Muss, wenn Sie später ISPConfig installieren möchten).

Wir können es wie folgt deaktivieren:

service apparmor stop  
update-rc.d -f apparmor remove   
apt-get remove apparmor apparmor-utils

5. Synchronisieren Sie die Systemuhr

Es ist eine gute Idee, die Systemuhr mit einem NTP ( n etwork t ime p rotocol) Server über das Internet zu synchronisieren, wenn Sie einen physischen Server betreiben. Falls Sie einen virtuellen Server betreiben, sollten Sie diesen Schritt überspringen. Führen Sie einfach aus

apt-get -y install ntp ntpdate

und Ihre Systemzeit wird immer synchronisiert sein.

6. Installieren Sie Postfix, Dovecot, MariaDB, rkhunter und binutils

Um Postfix zu installieren, müssen wir sicherstellen, dass sendmail nicht installiert und aktiv ist. Um sendmail zu stoppen und zu entfernen, führen Sie diesen Befehl aus:

service sendmail stop; update-rc.d -f sendmail remove

Die Fehlermeldung:

Failed to stop sendmail.service: Unit sendmail.service not loaded.

ist in Ordnung, es bedeutet nur, dass sendmail nicht installiert war, also gab es nichts zu entfernen.

Jetzt können wir Postfix, Dovecot, MariaDB (als MySQL-Ersatz), rkhunter und binutils mit einem einzigen Befehl installieren:

apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo

Sie werden nach den folgenden Fragen gefragt:

Allgemeiner Typ der Mailkonfiguration: <-- Internet Site  
System-Mail-Name: <-- server1.example.com  

Es ist wichtig, dass Sie einen Subdomainnamen als “System-Mail-Name” wie server1.example.com oder server1.ihredomain.com verwenden und nicht eine Domain, die Sie später als E-Mail-Domain verwenden möchten (z.B. ihredomain.tld).

Öffnen Sie als Nächstes die TLS/SSL- und Übermittlungsports in Postfix:

nano /etc/postfix/master.cf

Kommentieren Sie die Abschnitte für die Übermittlung und smtps wie folgt aus - fügen Sie die Zeile -o smtpd_client_restrictions=permit_sasl_authenticated,reject zu beiden Abschnitten hinzu und lassen Sie alles danach auskommentiert:

[...]  
submission inet n       -       -       -       -       smtpd  
  -o syslog_name=postfix/submission  
  -o smtpd_tls_security_level=encrypt  
  -o smtpd_sasl_auth_enable=yes  
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
#  -o smtpd_reject_unlisted_recipient=no  
#  -o smtpd_client_restrictions=$mua_client_restrictions  
#  -o smtpd_helo_restrictions=$mua_helo_restrictions  
#  -o smtpd_sender_restrictions=$mua_sender_restrictions  
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject  
#  -o milter_macro_daemon_name=ORIGINATING  
smtps     inet  n       -       -       -       -       smtpd  
  -o syslog_name=postfix/smtps  
  -o smtpd_tls_wrappermode=yes  
  -o smtpd_sasl_auth_enable=yes  
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
#  -o smtpd_reject_unlisted_recipient=no  
#  -o smtpd_client_restrictions=$mua_client_restrictions  
#  -o smtpd_helo_restrictions=$mua_helo_restrictions  
#  -o smtpd_sender_restrictions=$mua_sender_restrictions  
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject  
#  -o milter_macro_daemon_name=ORIGINATING  
[...]  

HINWEIS: Die Leerzeichen vor den “-o …. “-Zeilen sind wichtig!

Starten Sie Postfix danach neu:

service postfix restart

Wir möchten, dass MySQL auf allen Schnittstellen hört, nicht nur auf localhost. Daher bearbeiten wir /etc/mysql/mariadb.conf.d/50-server.cnf und kommentieren die Zeile bind-address = 127.0.0.1 aus:

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]  
# Anstelle von skip-networking hört die Standardkonfiguration jetzt nur auf  
# localhost, was kompatibler ist und nicht weniger sicher ist.  
#bind-address           = 127.0.0.1  
[...]  

Jetzt setzen wir ein Root-Passwort in MariaDB. Führen Sie aus:

mysql_secure_installation

Sie werden nach diesen Fragen gefragt:

Geben Sie das aktuelle Passwort für root ein (drücken Sie Enter für keines): <-- drücken Sie Enter  
Root-Passwort setzen? [Y/n] <-- y  
Neues Passwort: <-- Geben Sie hier das neue MariaDB-Root-Passwort ein  
Neues Passwort erneut eingeben: <-- Passwort wiederholen  
Anonyme Benutzer entfernen? [Y/n] <-- y  
Root-Login aus der Ferne verbieten? [Y/n] <-- y  
Privilegientabellen jetzt neu laden? [Y/n] <-- y

Dann starten wir MariaDB neu:

service mysql restart

Überprüfen Sie jetzt, ob das Networking aktiviert ist. Führen Sie aus

netstat -tap | grep mysql

Die Ausgabe sollte so aussehen:

root@server1:~# netstat -tap | grep mysql  
tcp6 0 0 [::]:mysql [::]:* LISTEN 5230/mysqld  
root@server1:~#  

7. Installieren Sie Amavisd-new, SpamAssassin und Clamav

Um amavisd-new, SpamAssassin und ClamAV zu installieren, führen wir aus

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

Das ISPConfig 3-Setup verwendet amavisd, das die SpamAssassin-Filterbibliothek intern lädt, sodass wir SpamAssassin stoppen können, um etwas RAM freizugeben:

service spamassassin stop   
update-rc.d -f spamassassin remove

Bearbeiten Sie die Konfigurationsdatei von clamd:

nano /etc/clamav/clamd.conf

und ändern Sie die Zeile:

AllowSupplementaryGroups false

in:

AllowSupplementaryGroups true  

Und speichern Sie die Datei. Um ClamAV zu starten, verwenden Sie:

freshclam  
service clamav-daemon start

Die folgende Warnung kann beim ersten Ausführen von freshclam ignoriert werden, da wir den ClamAV-Daemon starten, nachdem wir die Datenbank aktualisiert haben.

WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: No such file or directory  

7.1 Installieren Sie den Metronome XMPP-Server (optional)

Der Metronome XMPP-Server bietet einen XMPP-Chat-Server. Dieser Schritt ist optional; wenn Sie keinen Chat-Server benötigen, können Sie diesen Schritt überspringen. Keine anderen ISPConfig-Funktionen hängen von dieser Software ab.

Installieren Sie die folgenden Pakete mit apt.

apt-get install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks
luarocks install lpc

Fügen Sie einen Shell-Benutzer für Metronome hinzu.

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

Laden Sie Metronome in das Verzeichnis /opt herunter und kompilieren Sie es.

cd /opt; git clone https://github.com/maranda/metronome.git metronome  
cd ./metronome; ./configure --ostype=debian --prefix=/usr  
make  
make install

Metronome wurde jetzt in /opt/metronome installiert.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.