Server Setup · 21 min read · Sep 11, 2025

Der perfekte Server - Debian 12 (Bookworm) mit Apache, BIND, Dovecot, PureFTPD und ISPConfig 3.2

Dieses Tutorial zeigt, wie man einen Debian 12 Server (mit Apache2, BIND, Dovecot) für die Installation von ISPConfig 3.2 vorbereitet und wie man ISPConfig installiert. Das Webhosting-Kontrollpanel ISPConfig 3 ermöglicht es Ihnen, die folgenden Dienste über einen Webbrowser zu konfigurieren: Apache oder nginx Webserver, Postfix Mailserver, Dovecot IMAP/POP3 Server, MySQL, BIND Nameserver, PureFTPd, Rspamd oder Amavis, ClamAV und viele mehr. Diese Konfiguration umfasst Apache (anstatt nginx), BIND und Dovecot mit dem Rspamd-Spamscanner.

Dieses Tutorial zeigt das manuelle Installationsverfahren für ISPConfig, das einige Zeit in Anspruch nimmt, Ihnen jedoch die volle Kontrolle über alle Installationsschritte gibt. Die schnelle und einfache Installationsmethode (die wir dringend empfehlen!) ist die Verwendung des ISPConfig-Auto-Installers. Sie finden das ISPConfig-Installations-Tutorial für den Auto-Installer hier: https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/

1 Vorbemerkung

In diesem Tutorial werde ich den Hostnamen server1.example.com mit den IP-Adressen 192.168.0.100 und Gateway 192.168.0.1 verwenden. 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 12. Dies könnte ein minimales Debian-Image von Ihrem Hosting-Anbieter sein, oder Sie können das Minimal Debian Server Tutorial verwenden, um das Basissystem einzurichten.

Alle untenstehenden Befehle müssen vom Root-Benutzer ausgeführt werden. Melden Sie sich entweder direkt als Root-Benutzer an oder melden Sie sich als regulärer Benutzer an und verwenden Sie dann den Befehl

su --login

um Root-Benutzer auf Ihrem Server zu werden, bevor Sie fortfahren. WICHTIG: Sie müssen ‘su -login’ oder ‘su -‘ verwenden und nicht nur ‘su’. Andernfalls wird Ihre PATH-Variable von su falsch gesetzt.

Stellen Sie sicher, dass Ihre /etc/apt/sources.list das Buchworm-Updates-Repository enthält (dies stellt sicher, dass Sie immer die neuesten Updates erhalten) und dass die contrib-, non-free- und non-free-firmware-Repositories aktiviert sind.

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 12.1.0 _Bookworm_ - Official amd64 NETINST with firmware 20230722-10:48]/ bookworm main non-free-firmware

deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

# bookworm-updates, um Updates vor einem Punkt-Release zu erhalten;
# siehe https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware

# Dieses System wurde mit kleinen, entfernbaren Medien installiert
# (z.B. netinst, live oder einzelne CD). Die entsprechenden "deb cdrom"
# Einträge wurden am Ende des Installationsprozesses deaktiviert.
# Für Informationen zur Konfiguration von apt-Paketquellen,
# siehe das sources.list(5) Handbuch.

Speichern Sie die Datei.

2 Installieren Sie den SSH-Server (Optional)

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

apt install ssh openssh-server

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

3 Installieren Sie einen Shell-Texteditor (Optional)

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

apt install nano vim-nox

Wenn vi Ihr bevorzugter Editor ist, ersetzen Sie nano in den folgenden Befehlen durch vi, um Dateien zu bearbeiten.

4 Konfigurieren Sie den Hostnamen

Der Hostname Ihres Servers sollte ein Subdomain wie “server1.example.com” sein. Verwenden Sie keinen Domainnamen ohne einen 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 bei Bedarf ändern. Die Zeile sollte sein: “IP-Adresse - Leerzeichen - vollständiger Hostname inkl. Domain - Leerzeichen - Subdomain-Teil”. Für unseren Hostnamen server1.example.com sollte die Datei wie folgt aussehen:

nano /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.0.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

Bearbeiten Sie dann 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:

systemctl reboot

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

hostname  
hostname -f

Die Ausgabe sollte wie folgt 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 Buchworm/Updates-Repository enthält (dies stellt sicher, dass Sie immer die neuesten Sicherheitsupdates erhalten) und dass die contrib-, non-free- und non-free-firmware-Repositories aktiviert sind, da einige erforderliche Pakete nicht im Hauptrepository enthalten sind.

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 12.1.0 _Bookworm_ - Official amd64 NETINST with firmware 20230722-10:48]/ bookworm main non-free-firmware

deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

# bookworm-updates, um Updates vor einem Punkt-Release zu erhalten;
# siehe https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware

# Dieses System wurde mit kleinen, entfernbaren Medien installiert
# (z.B. netinst, live oder einzelne CD). Die entsprechenden "deb cdrom"
# Einträge wurden am Ende des Installationsprozesses deaktiviert.
# Für Informationen zur Konfiguration von apt-Paketquellen,
# siehe das sources.list(5) Handbuch.

Führen Sie aus:

apt update

Um die apt-Paketdatenbank zu aktualisieren

apt upgrade

und um die neuesten Updates zu installieren (falls vorhanden).

6 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. Führen Sie aus

apt -y install ntp

und Ihre Systemzeit wird immer synchronisiert sein.

7 Installieren Sie Postfix, Dovecot, MariaDB, rkhunter und Binutils

Wir können Postfix, Dovecot, MariaDB als MySQL-Alternative, rkhunter und Binutils mit einem einzigen Befehl installieren:

apt -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail6 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo curl rsyslog wget gnupg2 lsb-release ufw rsyslog

Sie werden nach den folgenden Fragen gefragt:

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

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

mysql_secure_installation

Beantworten Sie die Fragen wie folgt:

Wechseln Sie zur unix_socket-Authentifizierung [Y/n] <-- n  
Ändern Sie das Root-Passwort? [Y/n] <-- y  
Neues Passwort: <-- Geben Sie ein neues Passwort ein  
Neues Passwort erneut eingeben: <-- Wiederholen Sie das neue Passwort  
Anonyme Benutzer entfernen? [Y/n] <-- y  
Root-Login remote 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 Submission-Ports in Postfix:

nano /etc/postfix/master.cf

Kommentieren Sie die Submission- und Submissions-Abschnitte wie folgt aus und fügen Sie Zeilen hinzu, wo nötig, damit dieser Abschnitt der master.cf-Datei genau wie der unten aussieht.
WICHTIG: Entfernen Sie das # vor den Zeilen, die mit submissions und submission beginnen, und nicht nur von den -o-Zeilen nach diesen Zeilen!

[...]
#127.0.0.1:submission inet n -   y       -       -       smtpd
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#     Anstatt komplexe smtpd__restrictions hier anzugeben,
#     geben Sie "smtpd__restrictions=$mua__restrictions"
#     hier an und geben Sie mua__restrictions in main.cf an (wo
#     "" ist "client", "helo", "sender", "relay" oder "recipient").
#  -o smtpd_client_restrictions=
#  -o smtpd_helo_restrictions=
#  -o smtpd_sender_restrictions=
#  -o smtpd_relay_restrictions=
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
# Wählen Sie eines: Aktivieren Sie die Einreichungen nur für Loopback-Clients oder für jeden Client.
#127.0.0.1:submissions inet n  -       y       -       -       smtpd
submissions     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/submissions
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#     Anstatt komplexe smtpd__restrictions hier anzugeben,
#     geben Sie "smtpd__restrictions=$mua__restrictions"
#     hier an und geben Sie mua__restrictions in main.cf an (wo
#     "" ist "client", "helo", "sender", "relay" oder "recipient").
#  -o smtpd_client_restrictions=
#  -o smtpd_helo_restrictions=
#  -o smtpd_sender_restrictions=
#  -o smtpd_relay_restrictions=
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       y       -       -       qmqpd
[...]

Starten Sie Postfix anschließend neu:

systemctl restart postfix

Wenn Sie möchten, dass MySQL auf allen Schnittstellen und nicht nur auf localhost hört, um den Zugriff auf MySQL von Desktop-Tools zu ermöglichen, bearbeiten Sie /etc/mysql/mariadb.conf.d/50-server.cnf und kommentieren Sie die Zeile bind-address = 127.0.0.1 aus, indem Sie ein # davor setzen.

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

Bearbeiten Sie die Datei /etc/mysql/debian.cnf und setzen Sie dort das MYSQL / MariaDB Root-Passwort zweimal in den Zeilen, die mit dem Wort Passwort beginnen.

nano /etc/mysql/debian.cnf

Das MySQL-Root-Passwort, das hinzugefügt werden muss, ist rot angezeigt. In diesem Beispiel ist das Passwort “howtoforge”.

# Automatisch für Debian-Skripte generiert. NICHT ANFASSEN!  
[client]  
host = localhost  
user = root  
password = "howtoforge"  
[mysql_upgrade]  
host = localhost  
user = root  
password = "howtoforge"

Um den Fehler ‘ Fehler bei der Annahme: Zu viele offene Dateien ‘ zu verhindern, setzen wir jetzt höhere offene Dateigrenzen für MariaDB.

Öffnen Sie die Datei /etc/security/limits.conf mit einem Editor:

nano /etc/security/limits.conf

und fügen Sie diese Zeilen am Ende der Datei hinzu.

mysql soft nofile 65535  
mysql hard nofile 65535

Erstellen Sie als Nächstes ein neues Verzeichnis /etc/systemd/system/mysql.service.d/ mit dem mkdir-Befehl.

mkdir -p /etc/systemd/system/mysql.service.d/

und fügen Sie eine neue Datei darin hinzu:

nano /etc/systemd/system/mysql.service.d/limits.conf

Fügen Sie die folgenden Zeilen in diese Datei ein:

[Service]  
LimitNOFILE=infinity

Speichern Sie die Datei und schließen Sie den Nano-Editor.

Dann laden wir systemd neu und starten MariaDB neu:

systemctl daemon-reload  
systemctl restart mariadb

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

netstat -tap | grep mysql

Die Ausgabe sollte wie folgt aussehen:

root@server1:/home/administrator# netstat -tap | grep mysql  
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld

8 Installieren Sie E-Mail-Filter- und Signierungssoftware Rspamd und ClamAV

Fügen Sie das Rspamd-Repository hinzu:

CODENAME=`lsb_release -c -s`  
wget -qO- https://rspamd.com/apt-stable/gpg.key | tee /etc/apt/trusted.gpg.d/rspamd.asc > /dev/null  
echo "deb [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" > /etc/apt/sources.list.d/rspamd.list   
echo "deb-src [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" >> /etc/apt/sources.list.d/rspamd.list

Um Rspamd und ClamAV zu installieren, führen wir aus

apt install rspamd redis clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip 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 libdbd-mysql-perl postgrey -y

Aktivieren Sie Redis in der Rspamd-Konfiguration.

echo 'servers = "127.0.0.1";' > /etc/rspamd/local.d/redis.conf

Erhöhen Sie die Rspamd-Historie, aktivieren Sie die Kompression und zeigen Sie das Betreff in der Historie an. Dieser Schritt ist optional.

echo "nrows = 2500;" > /etc/rspamd/local.d/history_redis.conf   
echo "compress = true;" >> /etc/rspamd/local.d/history_redis.conf  
echo "subject_privacy = true;" >> /etc/rspamd/local.d/history_redis.conf

Starten Sie dann Rspamd neu.

systemctl restart rspamd

9 Installieren Sie den Apache Webserver und PHP

Apache2, PHP, FCGI, suExec, Pear und mcrypt können wie folgt installiert werden:

apt -y install apache2 apache2-utils php8.2 php8.2-fpm php8.2-common php8.2-gd php8.2-mysql php8.2-imap php8.2-cli php8.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php8.2-curl php8.2-intl php8.2-pspell php8.2-sqlite3 php8.2-tidy php8.2-xmlrpc php8.2-xsl memcached php-memcache php-imagick php8.2-zip php8.2-mbstring memcached libapache2-mod-passenger php8.2-soap php8.2-opcache php-apcu libapache2-reload-perl php8.2-mcrypt

Aktivieren Sie jetzt php-fpm in Apache:

a2enmod proxy_fcgi setenvif  
a2enconf php8.2-fpm

Führen Sie dann den folgenden Befehl aus, um die zusätzlichen 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 actions alias

Um sicherzustellen, dass der Server nicht durch die HTTPOXY-Sicherheitsanfälligkeit angegriffen werden kann, werden wir den HTTP_PROXY-Header global deaktivieren, indem wir die Konfigurationsdatei /etc/apache2/conf-available/httpoxy.conf hinzufügen.

*Hinweis: Die Sicherheitsanfälligkeit heißt httpoxy (ohne ‘r’), und daher heißt die Datei, in die wir die Konfiguration hinzufügen, um sie zu verhindern, httpoxy.conf und nicht httproxy.conf, sodass im Dateinamen kein ‘r’ fehlt.*

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 ausführen:

a2enconf httpoxy  
systemctl restart apache2

10 Installieren Sie Let’s Encrypt

ISPConfig verwendet jetzt acme.sh als Let’s Encrypt-Client. Installieren Sie acme.sh mit folgendem Befehl:

curl https://get.acme.sh | sh -s

Setzen Sie dann die SSL-Ausstellungsbehörde auf Let’s Encrypt:

acme.sh --set-default-ca --server letsencrypt

11 Installieren Sie PureFTPd und Quota

PureFTPd und Quota können mit folgendem Befehl installiert werden:

apt 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/

Danach 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 Ländernamen 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. Unternehmen) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Organisationsnamen ein (z.B. den Namen Ihres Unternehmens).  
Organisatorische Einheit (z.B. Abteilung) []: <-- Geben Sie Ihren organisatorischen Einheit ein (z.B. "IT-Abteilung").  
Allgemeiner Name (z.B. IHR Name) []: <-- Geben Sie den vollständig qualifizierten 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:

systemctl restart pure-ftpd-mysql

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 zu drucken; dies kann mit UUID= als robustere Möglichkeit verwendet werden, um Geräte zu benennen,  
# die auch dann funktionieren, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).  
#  
#        
# / war auf /dev/sda1 während der Installation  
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# Swap war auf /dev/sda5 während der Installation  
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 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 /  
systemctl daemon-reload
quotacheck -avugm  
quotaon -avug

Sie werden die Nachricht “ quotaon: Ihr Kernel unterstützt wahrscheinlich die ext4-Quota-Funktion, aber Sie verwenden externe Quota-Dateien. Bitte wechseln Sie Ihr Dateisystem, um die ext4-Quota-Funktion zu verwenden, da externe Quota-Dateien auf ext4 veraltet sind. “ erhalten, was in Ordnung ist und ignoriert werden kann.

12 Installieren Sie den BIND DNS-Server

BIND kann wie folgt installiert werden:

apt 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 install haveged

Eine Erklärung zu diesem Thema finden Sie hier.

13 Installieren Sie den Webalizer-Ersatz awffull, AWStats und GoAccess

Webalizer und AWStats können wie folgt installiert werden:

apt install awffull awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

Erstellen Sie das Webalizer-Verzeichnis und den Symlink, damit awffull als Webalizer erkannt wird:

mkdir /etc/webalizer  
chmod 0755 /etc/webalizer  
ln -s /etc/awffull/awffull.conf /etc/webalizer/webalizer.conf  
ln -s /usr/bin/awffull /usr/bin/webalizer

Ö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

Installieren Sie die neueste GoAccess-Version direkt aus dem GoAccess-Repository:

echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/goaccess.list  
wget -O - https://deb.goaccess.io/gnugpg.key | tee /etc/apt/trusted.gpg.d/goaccess.asc >/dev/null  
apt update  
apt install goaccess

14 Installieren Sie Jailkit

Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden:

apt install jailkit

15 Installieren Sie fail2ban und die UFW-Firewall

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

apt 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[mode=auth]  
logpath = /var/log/mail.log  
maxretry = 3

Starten Sie fail2ban anschließend neu:

systemctl restart fail2ban

Um die UFW-Firewall zu installieren, führen Sie diesen apt-Befehl aus:

apt install ufw

16 Installieren Sie das PHPMyAdmin-Datenbankverwaltungstool

Installieren Sie phpMyAdmin mit apt:

apt install phpmyadmin

Wählen Sie aus, phpMyAdmin in Apache zu aktivieren: PHPMyAdmin Apache

Konfigurieren Sie PHPMyAdmin mit dbconfig common. DBConfig common

Lassen Sie das Anwendungs-Passwortfeld leer und drücken Sie die Eingabetaste. Apt erstellt automatisch ein sicheres zufälliges Passwort, und Sie müssen dieses Passwort nicht kennen, um später auf PHPMyAdmin zuzugreifen. phpmyadmin password

17 Installieren Sie RoundCube Webmail (optional)

In diesem Kapitel werden wir den RoundCube-Webmail-Client installieren.

Installieren Sie dann RoundCube mit diesem Befehl:

apt install roundcube roundcube-core roundcube-mysql roundcube-plugins

Der Installer wird nach den folgenden Fragen fragen:

Datenbank für Roundcube mit dbconfig.common konfigurieren? <-- ja  
MySQL-Anwendungspasswort für Roundcube: <-- drücken Sie die Eingabetaste

Bearbeiten Sie die Apache RoundCube-Konfigurationsdatei /etc/apache2/conf-enabled/roundcube.conf:

nano /etc/apache2/conf-enabled/roundcube.conf

Und fügen Sie eine Aliaszeile für den Apache /webmail-Alias und eine für /roundcube hinzu, Sie können die Zeile ganz oben in der Datei hinzufügen. HINWEIS: Verwenden Sie nicht /mail als Alias, da das ISPConfig-E-Mail-Modul sonst nicht mehr funktioniert!

Alias /roundcube /var/lib/roundcube/public_html  
Alias /webmail /var/lib/roundcube/public_html

Laden Sie dann Apache neu:

systemctl reload apache2

Jetzt bearbeiten Sie die RoundCube-Konfigurationsdatei:

nano /etc/roundcube/config.inc.php

Und ändern Sie die Zeile:

$config['smtp_host'] = 'localhost:587';

zu:

$config['smtp_host'] = 'localhost:25';

Jetzt können Sie auf RoundCube wie folgt zugreifen: https://192.168.0.100:8081/webmail
https://www.example.com:8081/webmail

Nachdem Sie ISPConfig installiert haben, siehe das nächste Kapitel. RoundCube Webmail

Einige Plugins existieren, um RoundCube Webmail mit ISPConfig zu integrieren, schauen Sie hier für die Installationsanweisungen des ISPConfig RoundCube-Plugins.

18 Laden Sie ISPConfig 3.2 herunter

Um ISPConfig 3 aus der neuesten veröffentlichten Version zu installieren, tun Sie dies:

cd /tmp  
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz  
tar xfz ISPConfig-3-stable.tar.gz  
cd ispconfig3_install/install/

19 Installieren Sie ISPConfig

Der nächste Schritt besteht darin, den ISPConfig-Installer auszuführen.

php -q install.php

Dies startet den ISPConfig 3-Installer. Der Installer konfiguriert alle Dienste, wie Postfix, Dovecot usw., für Sie.

php -q install.php
--------------------------------------------------------------------------------  
 _____ ___________   _____              __ _         ____  
|_   _/  ___| ___ \/  __ \            / _(_)       /__  \  
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /  
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |  
 _| |_\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \  
 \___/\____/\_|      \____/\___/|_| |_|_| |_\__, | \____/  
                                              __/ |  
                                             |___/  
--------------------------------------------------------------------------------
>> Erste Konfiguration
Betriebssystem: Debian 12.0 (Bookworm) oder kompatibel

    Es folgen einige Fragen zur primären Konfiguration, seien Sie also vorsichtig.
    Standardwerte stehen in [Klammern] und können mit akzeptiert werden.
    Tippen Sie “quit” (ohne Anführungszeichen), um den Installer zu stoppen.

Wählen Sie die Sprache (en,de) [en]: <– drücken Sie die Eingabetaste

Installationsmodus (standard,experte) [standard]: <– drücken Sie die Eingabetaste

Vollqualifizierter Hostname (FQDN) des Servers, z.B. server1.domain.tld  [server1.example.com]: <– drücken Sie die Eingabetaste

MySQL-Server-Hostname [localhost]: <– drücken Sie die Eingabetaste

MySQL-Server-Port [3306]: <– drücken Sie die Eingabetaste

MySQL-Root-Benutzername [root]: <– drücken Sie die Eingabetaste

MySQL-Root-Passwort []: <– geben Sie das MySQL-Root-Passwort ein

MySQL-Datenbank zu erstellen [dbispconfig]: <– drücken Sie die Eingabetaste

MySQL-Zeichensatz [utf8]:

Überprüfen der MariaDB-Version 10.11.3 .. OK
Konfigurieren von Postgrey
Konfigurieren von Postfix
[….]

—–
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden.
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.
Es gibt viele Felder, aber Sie können einige leer lassen
Für einige Felder gibt es einen Standardwert,
Wenn Sie ‘.’ eingeben, wird das Feld leer gelassen.

—–
Landesname (2-Buchstaben-Code) [AU]: <– Geben Sie den Ländercode ein
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <– Geben Sie das Bundesland ein
Ortsname (z.B. Stadt) []: <– Geben Sie die Stadt ein
Organisationsname (z.B. Unternehmen) [Internet Widgits Pty Ltd]: <– Geben Sie den Unternehmensnamen ein
Organisatorische Einheit (z.B. Abteilung) []: <– drücken Sie die Eingabetaste
Allgemeiner Name (z.B. Server-FQDN oder IHR Name) []: <– Geben Sie den Server-Hostname ein
E-Mail-Adresse []: <– Geben Sie die E-Mail-Adresse ein
[INFO] Dienst Mailman nicht erkannt
Konfigurieren von Dovecot
Erstellen einer neuen DHParams-Datei, dies dauert mehrere Minuten. Unterbrechen Sie das Skript nicht.
Generieren von DH-Parametern, 2048-Bit-lange sichere Primzahl
[…..]
[INFO] Dienst Spamassassin nicht erkannt
[INFO] Dienst Amavisd nicht erkannt
Konfigurieren von Rspamd
Konfigurieren von Getmail
Konfigurieren von Jailkit
Konfigurieren von Pureftpd
Konfigurieren von BIND
Konfigurieren von Apache
Konfigurieren von vlogger
[INFO] Dienst OpenVZ nicht erkannt
Konfigurieren von AppArmor
Konfigurieren der Ubuntu-Firewall
[INFO] Dienst Metronome XMPP-Server nicht erkannt
Konfigurieren von Fail2ban
Installieren von ISPConfig
ISPConfig-Port [8080]: <– drücken Sie die Eingabetaste

Admin-Passwort [8563a921]: <– Geben Sie Ihr ISPConfig-Admin-Passwort ein oder drücken Sie die Eingabetaste, um das angezeigte zu akzeptieren

Möchten Sie eine sichere (SSL) Verbindung zur ISPConfig-Weboberfläche (y,n) [y]: <– drücken Sie die Eingabetaste

Überprüfen / Erstellen des Zertifikats für server1.example.com
Verwenden des Zertifikatspfads /etc/letsencrypt/live/server1.example.com
Öffentliche IP(s) des Servers (91.38.138.191, 2003:e1:bf42:2500:20c:29ff:fe32:617f) nicht in A/AAAA-Datensätzen für server1.example.com gefunden:
DNS-Überprüfung ignorieren und fortfahren, um das Zertifikat anzufordern? (y,n) [n]: <– drücken Sie die Eingabetaste

Konnte das Let’s Encrypt-Zertifikat nicht ausstellen, wechselt zu selbstsigniert.
[….]

—–
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden.
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.
Es gibt viele Felder, aber Sie können einige leer lassen
Für einige Felder gibt es einen Standardwert,
Wenn Sie ‘.’ eingeben, wird das Feld leer gelassen.

—–
Landesname (2-Buchstaben-Code) [AU]: <– Geben Sie den Ländercode ein
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <– Geben Sie das Bundesland ein
Ortsname (z.B. Stadt) []: <– Geben Sie die Stadt ein
Organisationsname (z.B. Unternehmen) [Internet Widgits Pty Ltd]: <– Geben Sie den Unternehmensnamen ein
Organisatorische Einheit (z.B. Abteilung) []: <– drücken Sie die Eingabetaste
Allgemeiner Name (z.B. Server-FQDN oder IHR Name) []: <– Geben Sie den Server-Hostname ein
E-Mail-Adresse []: <– Geben Sie die E-Mail-Adresse ein
Symlink ISPConfig-SSL-Zertifikate zu Postfix? (y,n) [y]: <– drücken Sie die Eingabetaste

Symlink ISPConfig-SSL-Zertifikate zu Pure-FTPd? Das Erstellen der dhparam-Datei kann einige Zeit in Anspruch nehmen. (y,n) [y]: <– drücken Sie die Eingabetaste

Konfigurieren von Apps vhost
Konfigurieren von DBServer
Installieren von ISPConfig crontab
keine crontab für getmail
IP-Adressen erkennen
Dienste neu starten …
Installation abgeschlossen.


Der Installer konfiguriert automatisch alle zugrunde liegenden Dienste, sodass keine manuelle Konfiguration erforderlich ist.

Danach können Sie auf ISPConfig 3 unter http(s)://server1.example.com:8080/ oder http(s)://192.168.0.100:8080/ zugreifen (http oder https hängt davon ab, was Sie während der Installation gewählt haben). Melden Sie sich mit dem Benutzernamen admin und dem Passwort admin an (Sie sollten das Standardpasswort nach Ihrem ersten Login ändern):
![ISPConfig Login](/files/9f70f0c7-a1e8-46ad-a7e7-a4d943c510c6.png)

![ISPConfig Dashboard](/files/589b96c2-6ca1-4831-84aa-e853edcfa738.png)

Das System ist jetzt bereit zur Verwendung.

## 20 ISPConfig 3 Handbuch

Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3 Handbuch herunterzuladen.

Auf mehr als 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Kunden), erklärt, wie man ISPConfig 3 installiert und aktualisiert, enthält ein Referenzhandbuch für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es umreißt auch, wie man Ihren Server sicherer macht und hat einen Abschnitt zur Fehlersuche.

## 21 Download des virtuellen Maschinenimages dieses Tutorials

Dieses Tutorial ist als sofort einsatzbereites virtuelles Maschinenimage im ovf/ova-Format verfügbar, das mit VMWare und Virtualbox kompatibel ist. Das virtuelle Maschinenimage verwendet die folgenden Anmeldedaten:

SSH / Shell-Anmeldung

Benutzername: administrator  
Passwort: howtoforge

Benutzername: root  
Passwort: howtoforge

ISPConfig-Anmeldung

Benutzername: admin  
Passwort: howtoforge

MySQL-Anmeldung

Benutzername: root  
Passwort: I7DFg3!cpHfw3bxZj6Fg

Die IP der VM ist 192.168.0.100. Sie kann in der Datei /etc/network/interfaces geändert werden. Bitte ändern Sie alle oben genannten Passwörter, um die virtuelle Maschine zu sichern.

## 23 Links

- Debian: http://www.debian.org/
- ISPConfig: http://www.ispconfig.org/
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.