Server Setup · 22 min read · Nov 03, 2025
Der perfekte Server - Debian 10 (Buster) mit Apache, BIND, Dovecot, PureFTPD und ISPConfig 3.2

Dieses Tutorial zeigt, wie man einen Debian 10 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, Courier oder Dovecot IMAP/POP3 Server, MySQL, BIND oder MyDNS Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr. Dieses Setup umfasst Apache (anstatt nginx), BIND und Dovecot.
1 Vorbemerkung
In diesem Tutorial werde ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem 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 10. Dies könnte ein minimales Debian-Image von Ihrem Hosting-Anbieter sein oder Sie verwenden das Minimal Debian Server Tutorial, um das Basissystem einzurichten.
Alle untenstehenden Befehle werden als Root-Benutzer ausgeführt. Melden Sie sich entweder direkt als Root-Benutzer an oder melden Sie sich als normaler Benutzer an und verwenden Sie dann den Befehl
su -um Root-Benutzer auf Ihrem Server zu werden, bevor Sie fortfahren. WICHTIG: Sie müssen ‘su -‘ verwenden und nicht nur ‘su’, da sonst Ihre PATH-Variable von Debian falsch gesetzt wird.
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-get install ssh openssh-serverVon nun an können Sie einen SSH-Client wie PuTTY verwenden und sich von Ihrem Arbeitsplatz mit Ihrem Debian 9 Server verbinden und die verbleibenden Schritte dieses Tutorials 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 Standard-vi-Programm hat auf Debian und Ubuntu ein seltsames Verhalten; um dies zu beheben, installieren wir vim-nox:
apt-get 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 Subdomain-Teil wie “example.com” als Hostnamen, da dies später Probleme mit Ihrer Mail-Konfiguration verursachen wird. Zuerst sollten Sie den Hostnamen in /etc/hosts überprüfen und gegebenenfalls ändern. Die Zeile sollte lauten: “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 mit diesen Befehlen korrekt ist:
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 zunächst sicher, dass Ihre /etc/apt/sources.list das buster/updates-Repository enthält (dies stellt sicher, dass Sie immer die neuesten Sicherheitsupdates erhalten), und dass die contrib- und non-free-Repositories aktiviert sind, da einige benötigte Pakete nicht im Hauptrepository enthalten sind.
nano /etc/apt/sources.listdeb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-freeFühren Sie aus:
apt-get updateUm die apt-Paketdatenbank zu aktualisieren
apt-get upgradeund 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 dashVerwenden Sie dash als Standard-System-Shell (/bin/sh)? <– Nein
Wenn Sie dies nicht tun, schlägt die ISPConfig-Installation 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 -y install ntpund Ihre Systemzeit wird immer synchronisiert sein.
8 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-get -y 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 curlSie werden nach folgenden Fragen gefragt:
Allgemeiner Typ der Mailkonfiguration: <– Internet Site
System-Mailname: <– 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:
Ändern Sie das Root-Passwort? [Y/n] <-- y
Neues Passwort: <-- Geben Sie ein neues MariaDB-Root-Passwort ein
Neues Passwort erneut eingeben: <-- Wiederholen Sie das MariaDB-Root-Passwort
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 Übermittlungsports in Postfix:
nano /etc/postfix/master.cfKommentieren Sie die Abschnitte submission und smtps wie folgt aus und fügen Sie Zeilen hinzu, wo nötig, sodass dieser Abschnitt der master.cf-Datei genau wie der unten aussieht. WICHTIG: Entfernen Sie das # vor den Zeilen, die mit smtps und submission beginnen, und nicht nur von den -o-Zeilen nach diesen Zeilen!
[...]
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:
systemctl restart postfixWir 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, indem wir ein # davor setzen.
nano /etc/mysql/mariadb.conf.d/50-server.cnf[...]
# Anstelle von skip-networking ist es jetzt Standard, nur auf
# localhost zu hören, was kompatibler ist und nicht weniger sicher.
#bind-address = 127.0.0.1
[...]Setzen Sie die Passwortauthentifizierungsmethode in MariaDB auf native, damit wir später PHPMyAdmin verwenden können, um uns als Root-Benutzer zu verbinden:
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u rootBearbeiten Sie die Datei /etc/mysql/debian.cnf und setzen Sie dort das MYSQL / MariaDB Root-Passwort zweimal in den Zeilen, die mit dem Wort password beginnen.
nano /etc/mysql/debian.cnfDas MySQL-Root-Passwort, das hinzugefügt werden muss, wird rot angezeigt. In diesem Beispiel lautet das Passwort “howtoforge”.
# Automatisch für Debian-Skripte generiert. NICHT ANFASSEN!
[client]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
basedir = /usrUm den Fehler ‘ Error in accept: Too many open files ‘ 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/mysqld9 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 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 postgreyDie ISPConfig 3 Einrichtung verwendet amavisd, das die SpamAssassin-Filterbibliothek intern lädt, sodass wir SpamAssassin stoppen können, um etwas RAM freizugeben:
systemctl stop spamassassin
systemctl disable spamassassin10 Installieren Sie den Apache Webserver und PHP
Apache2, PHP, FCGI, suExec, Pear und mcrypt können wie folgt installiert werden:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu libapache2-reload-perlFühren Sie dann den folgenden Befehl aus, um die 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 proxy_fcgi aliasUm sicherzustellen, dass der Server nicht über die HTTPOXY-Sicherheitsanfälligkeit angegriffen werden kann, werden wir den HTTP_PROXY-Header in Apache 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, httpoxy.conf und nicht httproxy.conf, sodass kein ‘r’ im Dateinamen 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 apache211 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 -s12 Installieren Sie Mailman
ISPConfig ermöglicht es Ihnen, Mailman-Mailinglisten zu verwalten (zu erstellen/zu ändern/zu löschen). Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:
apt-get install mailmanWählen Sie mindestens eine Sprache, z.B.:
Sprachen zur Unterstützung: <-- en (Englisch)
Fehlende Site-Liste <-- OkBevor wir Mailman starten können, muss eine erste Mailingliste namens mailman erstellt werden:
newlist mailmanroot@server1:~# newlist mailman
Geben Sie die E-Mail-Adresse der Person ein, die die Liste verwaltet: <-- admin E-Mail-Adresse, z.B. [email protected]
Anfängliches Mailman-Passwort: <-- admin-Passwort für die Mailman-Liste
Um die Erstellung Ihrer Mailingliste abzuschließen, müssen Sie Ihre /etc/aliases (oder
equivalente) Datei bearbeiten, indem Sie die folgenden Zeilen hinzufügen und möglicherweise das
`newaliases` Programm ausführen:
## mailman Mailingliste
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Drücken Sie die Eingabetaste, um den Mailman-Besitzer zu benachrichtigen... <-- EINGABETASTE
root@server1:~#Öffnen Sie anschließend /etc/aliases…
nano /etc/aliases… und fügen Sie die folgenden Zeilen hinzu:
[...]
## mailman Mailingliste
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"Führen Sie aus:
newaliasesund starten Sie Postfix neu:
systemctl restart postfixSchließlich müssen wir die Mailman-Apache-Konfiguration aktivieren:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.confDies definiert das Alias /cgi-bin/mailman/ für alle Apache vHosts, was bedeutet, dass Sie auf die Mailman-Admin-Oberfläche für eine Liste unter http://server1.example.com/cgi-bin/mailman/admin/ zugreifen können, und die Webseite für Benutzer einer Mailingliste finden Sie unter http://server1.example.com/cgi-bin/mailman/listinfo/.
Unter http://server1.example.com/pipermail finden Sie die Mailinglistenarchive.
Starten Sie anschließend Apache neu:
systemctl restart apache2Starten Sie dann den Mailman-Daemon:
systemctl restart mailman13 Installieren Sie PureFTPd und Quota
PureFTPd und Quota können mit folgendem Befehl installiert werden:
apt-get 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 verwenden zu können, 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/Anschließend 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.pemLand (2-Buchstaben-Code) [AU]: <-- Geben Sie Ihren Ländernamen ein (z.B. "DE").
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <-- Geben Sie den Namen Ihres Bundeslandes oder Ihrer Provinz ein.
Ort (z.B. Stadt) []: <-- Geben Sie Ihre Stadt ein.
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie den Namen Ihrer Organisation ein (z.B. den Namen Ihrer Firma).
Abteilung (z.B. Bereich) []: <-- Geben Sie den Namen Ihrer Abteilung ein (z.B. "IT-Abteilung").
Allgemeiner Name (z.B. IHRE Name) []: <-- Geben Sie den vollqualifizierten 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 Methode verwendet werden, um Geräte zu benennen,
# die auch dann funktioniert, 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 /quotacheck -avugm
quotaon -avug14 Installieren Sie den BIND DNS-Server
BIND kann wie folgt installiert werden:
apt-get 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-get install havegedEine Erklärung zu diesem Thema finden Sie hier.
15 Installieren Sie Webalizer, AWStats und GoAccess
Webalizer und AWStats können wie folgt installiert werden:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perlÖffnen Sie anschließend /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" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
apt-get update
apt-get install goaccess16 Installieren Sie Jailkit
Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden:
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
echo 5 > debian/compat
./debian/rules binarySie können jetzt das Jailkit.deb-Paket wie folgt installieren:
cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*17 Installieren Sie fail2ban und die UFW-Firewall
Dies ist optional, aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
apt-get install fail2banUm fail2ban zu veranlassen, 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-get install ufw18 Installieren Sie das PHPMyAdmin-Datenbankverwaltungstool
Seit Debian 10 ist PHPMyAdmin nicht mehr als .deb-Paket verfügbar. Daher werden wir es aus dem Quellcode installieren.
Erstellen Sie Ordner für PHPMyAdmin:
mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin
touch /etc/phpmyadmin/htpasswd.setupGehen Sie in das /tmp-Verzeichnis und laden Sie die PHPMyAdmin-Quellen herunter:
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gzEntpacken Sie die heruntergeladene Archivdatei und verschieben Sie die Dateien in den Ordner /usr/share/phpmyadmin und bereinigen Sie das /tmp-Verzeichnis.
tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
rm phpMyAdmin-4.9.0.1-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.0.1-all-languagesErstellen Sie eine neue Konfigurationsdatei für PHPMyAdmin basierend auf der bereitgestellten Beispieldatei:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.phpÖffnen Sie die Konfigurationsdatei mit dem Nano-Editor:
nano /usr/share/phpmyadmin/config.inc.phpSetzen Sie ein sicheres Passwort (Blowfish-Geheimnis), das 32 Zeichen lang sein muss:
$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* SIE MÜSSEN DAS FÜR COOKIE AUTH FÜLLEN! */Verwenden Sie nicht mein Beispiel-Blowfish-Geheimnis, setzen Sie Ihr eigenes!
Fügen Sie dann eine Zeile hinzu, um das Verzeichnis festzulegen, das PHPMyAdmin verwenden soll, um temporäre Dateien zu speichern:
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';Als Nächstes erstellen wir die Apache-Konfigurationsdatei für PHPMyAdmin, indem wir eine neue Datei im Nano-Editor öffnen:
nano /etc/apache2/conf-available/phpmyadmin.confFügen Sie die folgende Konfiguration in die Datei ein und speichern Sie sie.
# phpMyAdmin Standard-Apache-Konfiguration
Alias /phpmyadmin /usr/share/phpmyadmin
Options FollowSymLinks
DirectoryIndex index.php
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
# Autorisierung für die Einrichtung
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
Require valid-user
# Verweigern Sie den Webzugriff auf Verzeichnisse, die dies nicht benötigen
Order Deny,Allow
Deny from All
Order Deny,Allow
Deny from All
Aktivieren Sie die Konfiguration und starten Sie Apache neu.
a2enconf phpmyadmin
systemctl restart apache2Im nächsten Schritt werden wir den PHPMyAdmin-Konfigurationsspeicher (Datenbank) konfigurieren.
Melden Sie sich bei MariaDB als Root-Benutzer an:
mysql -u root -pErstellen Sie in der MariaDB-Shell eine neue Datenbank für PHPMyAdmin:
MariaDB [(none)]> CREATE DATABASE phpmyadmin;Erstellen Sie dann einen neuen Benutzer:
MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';Ersetzen Sie das Wort mypassword durch ein sicheres Passwort Ihrer Wahl in den obigen und folgenden Befehlen, verwenden Sie dasselbe Passwort beide Male. Gewähren Sie dem Benutzer dann Zugriff auf diese Datenbank und laden Sie die Datenbankberechtigungen neu.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Laden Sie schließlich die SQL-Tabellen in die Datenbank:
mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sqlGeben Sie das MariaDB-Root-Passwort auf Anfrage ein.
Alles, was wir jetzt noch tun müssen, ist, die PHPMyAdmin-Benutzerdaten im Konfigurationsdatei festzulegen. Öffnen Sie die Datei erneut im Nano-Editor:
nano /usr/share/phpmyadmin/config.inc.phpScrollen Sie nach unten, bis Sie die folgenden Zeilen sehen, und bearbeiten Sie sie:
/* Benutzer, der mit dem Speicher arbeitet */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'mypassword';
/* Speicher-Datenbank und -Tabellen */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';Ich habe die Zeilen rot markiert, die ich bearbeitet habe. Ersetzen Sie mypassword durch das Passwort, das Sie für den PHPMyAdmin-Benutzer gewählt haben. Beachten Sie, dass die // vor den Zeilen ebenfalls entfernt wurden!
19 Installieren Sie RoundCube Webmail (optional)
In diesem Kapitel werden wir den RoundCube-Webmail-Client installieren. Zuerst müssen wir die Datenbank für Roundcube manuell erstellen, da es derzeit ein Problem im RoundCube-Debian-Installer gibt, das dazu führt, dass die Datenbank nicht automatisch erstellt wird. Führen Sie diesen Befehl aus, um die Datenbank zu erstellen:
echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnfInstallieren Sie dann RoundCube mit diesem Befehl:
apt-get install roundcube roundcube-core roundcube-mysql roundcube-pluginsDer Installer wird nach folgenden Fragen fragen:
Datenbank für Roundcube mit dbconfig.common konfigurieren? <-- ja
MySQL-Anwendungspasswort für Roundcube: <-- drücken Sie die EingabetasteBearbeiten Sie die RoundCube /etc/roundcube/config.inc.php Datei und passen Sie einige Einstellungen an:
nano /etc/roundcube/config.inc.phpSetzen Sie den default_host auf localhost und den smtp_server.
$config['default_host'] = 'localhost';
$config['smtp_server'] = 'localhost';
$config['smtp_port'] = 25;Bearbeiten Sie dann 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 direkt am Anfang 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
Alias /webmail /var/lib/roundcubeLaden Sie dann Apache neu:
systemctl reload apache2Jetzt können Sie RoundCube wie folgt aufrufen:
http://192.168.0.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (nachdem Sie ISPConfig installiert haben, siehe das nächste Kapitel)

Es gibt einige Plugins, um RoundCube Webmail mit ISPConfig zu integrieren, schauen Sie hier für die Installationsanweisungen des ISPConfig RoundCube-Plugins.
20 Laden Sie ISPConfig 3 herunter
20 Laden Sie die stabile Version von ISPConfig herunter (empfohlen)
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/21 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. Eine manuelle Einrichtung, wie sie für ISPConfig 2 erforderlich war (perfekte Einrichtungsanleitungen), ist nicht notwendig.
# php -q install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Erste KonfigurationBetriebssystem: Debian 10.0 (Buster) oder kompatibelFolgendes werden einige Fragen zur primären Konfiguration sein, seien Sie vorsichtig.
Standardwerte stehen in [Klammern] und können mit akzeptiert werden.
Tippen Sie "quit" (ohne Anführungszeichen), um den Installer zu stoppen.
Sprache auswählen (en,de) [en]: <-- Eingabetaste drückenInstallationsmodus (standard,experte) [standard]: <-- Eingabetaste drückenVollqualifizierter Hostname (FQDN) des Servers, z.B. server1.domain.tld [server1.example.com]: <-- Eingabetaste drückenMySQL-Server-Hostname [localhost]: <-- Eingabetaste drückenMySQL-Server-Port [3306]: <-- Eingabetaste drückenMySQL-Root-Benutzername [root]: <-- Eingabetaste drückenMySQL-Root-Passwort []: <-- Geben Sie Ihr MySQL-Root-Passwort einMySQL-Datenbank zu erstellen [dbispconfig]: <-- Eingabetaste drückenMySQL-Zeichensatz [utf8]: <-- Eingabetaste drückenKonfigurieren von Postgrey
Konfigurieren von Postfix
Generieren eines 4096-Bit-RSA-Privatschlüssels
.......................................................................++
........................................................................................................................................++
Schreiben eines neuen privaten Schlüssels in 'smtpd.key'
-----
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden.
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.
Es gibt einige Felder, die Sie leer lassen können.
Für einige Felder gibt es einen Standardwert,
Wenn Sie '.' eingeben, wird das Feld leer gelassen.
-----
Land (2-Buchstaben-Code) [AU]: <-- Geben Sie den 2-Buchstaben-Ländercode ein
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <-- Geben Sie den Namen des Bundeslandes ein
Ort (z.B. Stadt) []: <-- Geben Sie Ihre Stadt ein
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie den Namen Ihrer Firma ein oder drücken Sie die Eingabetaste
Abteilung (z.B. Bereich) []: <-- Eingabetaste drücken
Allgemeiner Name (z.B. FQDN des Servers oder IHRE Name) []: <-- Geben Sie den Hostnamen des Servers ein, in meinem Fall: server1.example.com
E-Mail-Adresse []: <-- Eingabetaste drücken
Konfigurieren von Mailman
Konfigurieren von Dovecot
Konfigurieren von Spamassassin
Konfigurieren von Amavisd
Konfigurieren von Getmail
Konfigurieren von BIND
Konfigurieren von Jailkit
Konfigurieren von Pureftpd
Konfigurieren von Apache
Konfigurieren von vlogger
[INFO] Dienst Metronome XMPP-Server nicht erkannt
Konfigurieren der Ubuntu-Firewall
Konfigurieren von Fail2ban
[INFO] Dienst OpenVZ nicht erkannt
Konfigurieren von Apps vhost
ISPConfig installieren
ISPConfig-Port [8080]:Admin-Passwort [admin]:Möchten Sie eine sichere (SSL) Verbindung zur ISPConfig-Weboberfläche (y,n) [y]: <-- Eingabetaste drückenGenerieren eines RSA-Privatschlüssels, 4096-Bit-lange Modulus
.......................++
................................................................................................................................++
e ist 65537 (0x10001)
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden.
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.
Es gibt einige Felder, die Sie leer lassen können.
Für einige Felder gibt es einen Standardwert,
Wenn Sie '.' eingeben, wird das Feld leer gelassen.
-----
Land (2-Buchstaben-Code) [AU]: <-- Geben Sie den 2-Buchstaben-Ländercode ein
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <-- Geben Sie den Namen des Bundeslandes ein
Ort (z.B. Stadt) []: <-- Geben Sie Ihre Stadt ein
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie den Namen Ihrer Firma ein oder drücken Sie die Eingabetaste
Abteilung (z.B. Bereich) []: <-- Eingabetaste drücken
Allgemeiner Name (z.B. FQDN des Servers oder IHRE Name) []: <-- Geben Sie den Hostnamen des Servers ein, in meinem Fall: server1.example.com
E-Mail-Adresse []: <-- Eingabetaste drückenBitte geben Sie die folgenden 'zusätzlichen' Attribute ein,
die mit Ihrer Zertifikatsanforderung gesendet werden
Ein Herausforderungs-Passwort []: <-- Eingabetaste drücken
Ein optionaler Firmenname []: <-- Eingabetaste drücken
Schreiben des RSA-Schlüssels
Konfigurieren von DBServer
ISPConfig crontab installieren
kein Crontab für root
kein 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.
Anschließend 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 Nutzung.
21.1 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 beschreibt auch, wie man Ihren Server sicherer macht und enthält am Ende einen Abschnitt zur Fehlersuche.
22 Download des virtuellen Maschinen-Images dieses Tutorials
Dieses Tutorial ist als sofort einsatzbereites virtuelles Maschinen-Image im ovf/ova-Format verfügbar, das mit VMWare und Virtualbox kompatibel ist. Das virtuelle Maschinen-Image verwendet die folgenden Anmeldedaten:
SSH / Shell-Anmeldung
Benutzername: administrator
Passwort: howtoforge
Benutzername: root
Passwort: howtoforge
ISPConfig-Anmeldung
Benutzername: admin
Passwort: admin
MySQL-Anmeldung
Benutzername: root
Passwort: howtoforge
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.