Server Setup · 6 min read · Oct 29, 2025

Der perfekte Server - Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)

Dieses Tutorial zeigt, wie man einen Debian Jessie Server (mit nginx, BIND, Dovecot) für die Installation von ISPConfig 3.1 vorbereitet und wie man ISPConfig 3.1 installiert. 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. Diese Einrichtung umfasst nginx (anstatt Apache), BIND als DNS-Server und Dovecot als IMAP / POP3 Server.

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 minimale Installation von Debian 8. Dies könnte ein minimales Debian-Image von Ihrem Hosting-Anbieter sein oder Sie verwenden das Minimal Debian Server Tutorial, um das Basissystem einzurichten.

2 SSH-Server installieren

Wenn Sie den OpenSSH-Server während der Systeminstallation nicht installiert haben, können Sie dies jetzt tun:

apt-get -y install ssh openssh-server

Von nun an können Sie einen SSH-Client wie PuTTY verwenden und sich von Ihrem Arbeitsplatz mit Ihrem Debian 8 Server verbinden und die verbleibenden Schritte dieses Tutorials befolgen.

3 Einen Shell-Texteditor installieren (Optional)

Ich werde in diesem Tutorial den nano Texteditor verwenden. Einige Benutzer bevorzugen den klassischen vi-Editor, daher werde ich hier beide Editoren installieren. Das Standardprogramm vi hat auf Debian und Ubuntu ein seltsames Verhalten; um dies zu beheben, installieren wir vim-nox:

apt-get -y install nano vim-nox

(Sie müssen dies nicht tun, wenn Sie einen anderen Texteditor wie joe verwenden.)

4 Den Hostnamen konfigurieren

Der Hostname Ihres Servers sollte ein Subdomain wie “server1.example.com” sein. Verwenden Sie keinen Domainnamen ohne Subdomain-Teil wie “example.com” als Hostnamen, da dies später Probleme mit Ihrer Mailkonfiguration verursachen wird. Zuerst sollten Sie den Hostnamen in /etc/hosts überprüfen und ihn gegebenenfalls ändern. Die Zeile sollte sein: “IP-Adresse - Leerzeichen - vollständiger Hostname inkl. Domain - Leerzeichen - Subdomain-Teil”. Bearbeiten Sie /etc/hosts. Lassen Sie es so aussehen:

nano /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.1.100   server1.example.com     server1

# Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Dann bearbeiten Sie die Datei /etc/hostname:

nano /etc/hostname

Sie sollte nur den Subdomain-Teil enthalten, in unserem Fall:

server1

Starten Sie schließlich den Server neu, um die Änderung anzuwenden:

reboot

Melden Sie sich erneut an und überprüfen Sie, ob der Hostname jetzt mit diesen Befehlen korrekt ist:

hostname  
hostname -f

Die Ausgabe sollte so aussehen:

root@server1:/tmp# hostname  
server1  
root@server1:/tmp# hostname -f  
server1.example.com

5 Aktualisieren Sie Ihre Debian-Installation

Stellen Sie zuerst sicher, dass Ihre /etc/apt/sources.list das wheezy-updates-Repository enthält (dies stellt sicher, dass Sie immer die neuesten Updates für den ClamAV-Virenscanner erhalten - dieses Projekt veröffentlicht sehr oft neue Versionen, und manchmal hören alte Versionen auf zu funktionieren), und dass die contrib- und non-free-Repositories aktiviert sind (einige Pakete wie libapache2-mod-fastcgi sind nicht im Hauptrepository enthalten).

nano /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ jessie main contrib non-free  
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free  
  
deb http://security.debian.org/ jessie/updates main contrib non-free  
deb-src http://security.debian.org/ jessie/updates main contrib non-free  
  
# Debian Backports - Erforderlich für Letsencrypt  
deb http://ftp.debian.org/debian jessie-backports main

WICHTIG: Fügen Sie das Debian Backports-Repository wie oben gezeigt hinzu.

Führen Sie

apt-get update

aus, um die apt-Paketdatenbank zu aktualisieren und

apt-get upgrade

um die neuesten Updates zu installieren (falls vorhanden).

6 Ä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 die Standard-System-Shell (/bin/sh)? <– Nein

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

7 Synchronisieren Sie die Systemuhr

Es ist eine gute Idee, die Systemuhr mit einem NTP ( n etwork t ime p rotokoll) Server über das Internet zu synchronisieren. Führen Sie einfach aus

apt-get install ntp

und Ihre Systemzeit wird immer synchronisiert sein.

8 Installieren Sie Postfix, Dovecot, MySQL, rkhunter, binutils

Wir können Postfix, Dovecot, MySQL, 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-Mailname: <– server1.example.com
Neues Passwort für den MariaDB “root” Benutzer: <– yourrootsqlpassword
Wiederholen Sie das Passwort für den MariaDB “root” Benutzer: <– yourrootsqlpassword

Um die MariaDB / MySQL-Installation zu sichern und die Testdatenbank zu deaktivieren, führen Sie diesen Befehl aus:

mysql_secure_installation

Wir müssen das MySQL-Root-Passwort nicht ändern, da wir gerade während der Installation ein neues festgelegt haben. Beantworten Sie die Fragen wie folgt:

Ändern Sie das Root-Passwort? [Y/n] <-- n  
Anonyme Benutzer entfernen? [Y/n] <-- y  
Root-Login aus der Ferne verbieten? [Y/n] <-- y  
Testdatenbank und Zugriff darauf entfernen? [Y/n] <-- y  
Privilegientabellen jetzt neu laden? [Y/n] <-- y

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

nano /etc/postfix/master.cf

Kommentieren Sie die Abschnitte submission und smtps wie folgt aus (lassen Sie -o milter_macro_daemon_name=ORIGINATING, da wir es nicht benötigen):

[...]  
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=  
# -o smtpd_relay_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=  
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject  
# -o milter_macro_daemon_name=ORIGINATING  
[...]  

Starten Sie Postfix anschließend neu:

service postfix restart

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

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

Dann starten wir MySQL neu:

service mysql restart

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

netstat -tap | grep mysql

Die Ausgabe sollte so aussehen:

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      218123/mysqld  
root@server1:~#

9 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

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

service spamassassin stop  
systemctl disable spamassassin

9.1 Installieren Sie den Metronome XMPP-Server (optional)

Dieser Schritt installiert den Metronome XMPP-Server, der einen Chat-Server bereitstellt, der mit dem XMPP-Protokoll kompatibel ist. 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.

Fügen Sie das Prosody-Paket-Repository in Debian hinzu.

echo "deb http://packages.prosody.im/debian jessie main" > /etc/apt/sources.list.d/metronome.list  
wget http://prosody.im/files/prosody-debian-packages.key -O - | sudo apt-key add -

Aktualisieren Sie die Paketliste:

apt-get update

Installieren Sie die Programme, die für den Build-Prozess erforderlich sind

apt-get install build-essential

und installieren Sie die 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 nun in /opt/metronome installiert.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.