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-Control Panel, mit dem Sie die folgenden Dienste über einen Webbrowser konfigurieren können: Apache oder nginx Webserver, Postfix Mailserver, Kurier- oder Dovecot IMAP/POP3-Server, MySQL, BIND oder MyDNS Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr. Dieses Setup umfasst nginx (anstelle von 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.1. Bevor Sie fortfahren können, benötigen Sie eine minimale Installation von Debian 8, z.B. ein Debian-Minimal-Image von Ihrem Hosting-Provider oder Sie verwenden das Tutorial Minimal Debian Server, um das Basissystem einzurichten.

2 Installieren des SSH-Servers

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 Ihrer Workstation aus mit Ihrem Debian 8-Server verbinden und die restlichen Schritte dieses Tutorials ausführen.

3 Installieren Sie einen Shell-Texteditor (Optional).

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

apt-get -y install nano vim-nox

(Du musst das nicht tun, wenn du einen anderen Texteditor wie joe verwendest.)

4 Konfigurieren des Hostnamens

Der Hostname Ihres Servers sollte eine Subdomain wie „server1.example.com“ sein. Verwenden Sie keinen Domainnamen ohne Subdomainteil wie „example.com“ als Hostnamen, da dies später zu Problemen bei der Einrichtung Ihrer Mail führen wird. Zuerst solltest du den Hostnamen in /etc/hosts überprüfen und bei Bedarf ändern. Die Linie sollte so sein: „IP-Adresse – Space – voller Hostname inkl. Domain – Space – Subdomainteil“. Bearbeiten Sie /etc/hosts. Lass es so aussehen:

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

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Bearbeiten Sie dann die Datei /etc/hostname:

nano /etc/hostname

Sie enthält in unserem Fall nur den Teil der Subdomain:

server1

Starten Sie schließlich den Server neu, um die Änderung zu übernehmen:

reboot

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

hostname
hostname -f

Die Ausgabe soll so erfolgen:

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

5 Aktualisieren Sie Ihre Debian-Installation

Stellen Sie zunächst sicher, dass Ihre /etc/apt/sources.list das Wheezy-updates-Repository enthält (so erhalten Sie immer die neuesten Updates für den ClamAV-Virenscanner – dieses Projekt veröffentlicht sehr oft Releases, 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).

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 – Required for Letsencrypt
deb http://ftp.debian.org/debian jessie-backports main

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

Laufen

apt-get update

um die apt-Paketdatenbank zu aktualisieren und

apt-get upgrade

um die neuesten Updates zu installieren (falls vorhanden).

6 Ändern der Standardshell

/bin/sh ist ein Symlink zu /bin/dash, aber wir brauchen /bin/bash, nicht /bin/dash. Deshalb tun wir das:

dpkg-reconfigure dash

Dash als Standardsystem-Shell verwenden (/bin/sh)? <– Nein

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

7 Synchronisieren der Systemuhr

Es ist eine gute Idee, die Systemuhr mit einem NTP-Server (Network Time Protocol) über das Internet zu synchronisieren. Einfach ausführen

apt-get install ntp

und Ihre Systemzeit wird immer synchron sein.

8 Postfix, Dovecot, MySQL, rkhunter, binutils installieren

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

Die folgenden Fragen werden Ihnen gestellt:

Allgemeine Art der E-Mail-Konfiguration: <– Internet-Seite
Name der System-Mail: <– 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 bei der Installation nur ein neues setzen. Beantworten Sie die Fragen wie folgt:

Change the root password? [Y/n] <-- n
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

Als nächstes öffnen Sie die TLS/SSL und die Submission-Ports in Postfix:

nano /etc/postfix/master.cf

Entkommentiere die Abschnitte submission und smtps wie folgt (lass -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 wollen, dass MySQL auf alle Interfaces hört, nicht nur auf localhost, deshalb bearbeiten wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address = 127.0.0.0.0.1 aus:

nano /etc/mysql/my.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1
[...]

Dann starten wir MySQL neu:

service mysql restart

Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Laufen

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 Amavisd-neu, SpamAssassin und Clamav installieren

Um amavisd-neue, 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 eine Länderkennung, die die SpamAssassin-Filterbibliothek intern lädt, so dass wir SpamAssassin stoppen können, um etwas RAM freizugeben:

service spamassassin stop
systemctl disable spamassassin

 

9.1 Metronom XMPP Server installieren (optional)

In diesem Schritt wird der Metronom XMPP-Server installiert, der einen Chat-Server bereitstellt, der mit dem XMPP-Protokoll kompatibel ist. Dieser Schritt ist optional, wenn Sie keinen Chatserver benötigen, dann können Sie diesen Schritt überspringen. Keine weiteren ISPConfig-Funktionen sind von dieser Software abhängig.

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üge einen Shell-Benutzer für Metronom hinzu.

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

Laden Sie Metronom 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

Das Metronom ist nun in /opt/metronome installiert.

Das könnte Dich auch interessieren …