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 --loginum 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-serverVon 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-noxWenn 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/hosts127.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-allroutersBearbeiten Sie dann die Datei /etc/hostname:
nano /etc/hostnameSie sollte nur den Subdomain-Teil enthalten, in unserem Fall:
server1Starten Sie schließlich den Server neu, um die Änderung anzuwenden:
systemctl rebootMelden Sie sich erneut an und überprüfen Sie, ob der Hostname jetzt korrekt ist, mit diesen Befehlen:
hostname
hostname -fDie Ausgabe sollte wie folgt aussehen:
root@server1:/tmp# hostname
server1
root@server1:/tmp# hostname -f
server1.example.com5 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 updateUm die apt-Paketdatenbank zu aktualisieren
apt upgradeund 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 ntpund 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 rsyslogSie 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_installationBeantworten 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.cfKommentieren 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 postfixWenn 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.cnfDas 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.confund fügen Sie diese Zeilen am Ende der Datei hinzu.
mysql soft nofile 65535
mysql hard nofile 65535Erstellen 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.confFügen Sie die folgenden Zeilen in diese Datei ein:
[Service]
LimitNOFILE=infinitySpeichern 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 mysqlDie Ausgabe sollte wie folgt aussehen:
root@server1:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld8 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.listUm 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 -yAktivieren Sie Redis in der Rspamd-Konfiguration.
echo 'servers = "127.0.0.1";' > /etc/rspamd/local.d/redis.confErhö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.confStarten Sie dann Rspamd neu.
systemctl restart rspamd9 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-mcryptAktivieren Sie jetzt php-fpm in Apache:
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpmFü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 aliasUm 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.confFü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 apache210 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 -sSetzen Sie dann die SSL-Ausstellungsbehörde auf Let’s Encrypt:
acme.sh --set-default-ca --server letsencrypt11 Installieren Sie PureFTPd und Quota
PureFTPd und Quota können mit folgendem Befehl installiert werden:
apt install pure-ftpd-common pure-ftpd-mysql quota quotatoolErstellen Sie die dhparam-Datei für pure-ftpd:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048Bearbeiten 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/TLSUm 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.pemLandesname (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.pemStarten Sie dann PureFTPd neu:
systemctl restart pure-ftpd-mysqlBearbeiten 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-reloadquotacheck -avugm
quotaon -avugSie 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 dnsutilsWenn 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 havegedEine 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-perlErstellen 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.shInstallieren 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 goaccess14 Installieren Sie Jailkit
Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden:
apt install jailkit15 Installieren Sie fail2ban und die UFW-Firewall
Dies ist optional, wird jedoch empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
apt install fail2banUm fail2ban zu ermöglichen, PureFTPd und Dovecot zu überwachen, erstellen Sie die Datei /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.localUnd 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 = 3Starten Sie fail2ban anschließend neu:
systemctl restart fail2banUm die UFW-Firewall zu installieren, führen Sie diesen apt-Befehl aus:
apt install ufw16 Installieren Sie das PHPMyAdmin-Datenbankverwaltungstool
Installieren Sie phpMyAdmin mit apt:
apt install phpmyadminWählen Sie aus, phpMyAdmin in Apache zu aktivieren: 
Konfigurieren Sie PHPMyAdmin mit 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. 
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-pluginsDer 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 EingabetasteBearbeiten Sie die Apache RoundCube-Konfigurationsdatei /etc/apache2/conf-enabled/roundcube.conf:
nano /etc/apache2/conf-enabled/roundcube.confUnd 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_htmlLaden Sie dann Apache neu:
systemctl reload apache2Jetzt bearbeiten Sie die RoundCube-Konfigurationsdatei:
nano /etc/roundcube/config.inc.phpUnd ä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. 
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.phpDies startet den ISPConfig 3-Installer. Der Installer konfiguriert alle Dienste, wie Postfix, Dovecot usw., für Sie.
php -q install.php--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \/ __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/
__/ |
|___/
-------------------------------------------------------------------------------->> Erste KonfigurationBetriebssystem: 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
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):


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/Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.