Server Setup · 8 min read · Jan 07, 2026
Der perfekte Server - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3) - Seite 2
15 Installiere phpMyAdmin
Als nächstes installieren wir phpMyAdmin:
yum -y install phpmyadmin
Als nächstes ändern wir die Authentifizierung in phpMyAdmin von Cookie auf http:
nano /etc/phpMyAdmin/config.inc.php
[...]
/* Authentifizierungstyp */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]Jetzt finden Sie phpMyAdmin im Verzeichnis /usr/share/phpMyAdmin/.
Nachdem Sie ISPConfig 3 installiert haben, können Sie phpMyAdmin wie folgt aufrufen:
Die ISPConfig-Apps vhost auf Port 8081 für nginx kommt mit einer phpMyAdmin-Konfiguration, sodass Sie http://server1.example.com:8081/phpmyadmin oder http://server1.example.com:8081/phpMyAdmin verwenden können, um auf phpMyAdmin zuzugreifen.
Wenn Sie ein /phpmyadmin oder /phpMyAdmin-Alias verwenden möchten, das Sie von Ihren Websites aus verwenden können, ist dies etwas komplizierter als bei Apache, da nginx keine globalen Aliase hat (d.h. Aliase, die für alle vhosts definiert werden können). Daher müssen Sie diese Aliase für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen möchten.
Um dies zu tun, fügen Sie Folgendes in das nginx-Direktivenfeld auf der Registerkarte Optionen der Website in ISPConfig ein:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}Wenn Sie http s anstelle von http für Ihren vhost verwenden, sollten Sie die Zeile fastcgi_param HTTPS on; zu Ihrer phpMyAdmin-Konfiguration wie folgt hinzufügen:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS on; # <-- diese Zeile hinzufügen
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}Wenn Sie sowohl http als auch https für Ihren vhost verwenden, können Sie die $https-Variable verwenden - gehen Sie erneut zum nginx-Direktivenfeld und fügen Sie anstelle von fastcgi_param HTTPS on; die Zeile fastcgi_param HTTPS $https; hinzu, damit Sie phpMyAdmin sowohl für http- als auch für https-Anfragen verwenden können:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS $https; # <-- diese Zeile hinzufügen
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}16 Installiere Mailman
Seit Version 3.0.4 erlaubt ISPConfig auch die Verwaltung (Erstellen/Ändern/Löschen) von Mailman-Mailinglisten. Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:
yum -y install mailman
Bevor wir Mailman starten können, muss eine erste Mailingliste namens mailman erstellt werden:
touch /var/lib/mailman/data/aliases
touch /etc/mailman/aliases
/usr/lib/mailman/bin/newlist mailman
[root@server1 tmp]# /usr/lib/mailman/bin/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 äquivalente) Datei bearbeiten, indem Sie die folgenden Zeilen hinzufügen und möglicherweise das Programm newaliases ausführen:
Mailman Mailingliste
mailman: “|/usr/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/usr/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/usr/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/usr/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/usr/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/usr/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/usr/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/usr/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/usr/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/usr/lib/mailman/mail/mailman unsubscribe mailman”
Drücken Sie die Eingabetaste, um den Mailman-Besitzer zu benachrichtigen… <– ENTER
[root@server1 tmp]#
Öffnen Sie anschließend /etc/aliases…
nano /etc/aliases
… und fügen Sie die folgenden Zeilen hinzu:
[...]
mailman: "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe mailman"Führen Sie anschließend
newaliases
und starten Sie Postfix neu:
systemctl restart postfix.service
Erstellen Sie die Systemstartlinks für Mailman und starten Sie es:
systemctl enable mailman.service
systemctl start mailman.service
Jetzt müssen wir diesen Symlink erstellen, damit Mailman mit ISPConfig funktioniert:
cd /usr/lib/mailman/cgi-bin/
ln -s ./ mailman
Wenn Sie Mailman von Ihren über ISPConfig erstellten Websites verwenden möchten, ist dies etwas komplizierter als bei Apache, da nginx keine globalen Aliase hat (d.h. Aliase, die für alle vhosts definiert werden können). Daher müssen Sie diese Aliase für jeden vhost definieren, von dem aus Sie auf Mailman zugreifen möchten.
Um dies zu tun, fügen Sie Folgendes in das nginx-Direktivenfeld auf der Registerkarte Optionen der Website in ISPConfig ein:
location /cgi-bin/mailman {
alias /usr/lib/mailman/cgi-bin;
fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/lib/mailman$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED /usr/lib/mailman$fastcgi_path_info;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location /images/mailman {
alias /usr/lib/mailman/icons;
}
location /pipermail {
alias /var/lib/mailman/archives/public;
autoindex on;
}Dies definiert den Alias /cgi-bin/mailman/ für Ihren vhost, was bedeutet, dass Sie auf die Mailman-Admin-Oberfläche für eine Liste unter http://
Unter http://
17 Installiere PureFTPd
PureFTPd kann mit dem folgenden Befehl installiert werden:
yum -y install pure-ftpd
Erstellen Sie dann die Systemstartlinks und starten Sie PureFTPd:
systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service
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.
OpenSSL wird von TLS benötigt; um OpenSSL zu installieren, führen wir einfach aus:
yum -y install openssl
Öffnen Sie /etc/pure-ftpd/pure-ftpd.conf…
nano /etc/pure-ftpd/pure-ftpd.conf
Wenn Sie FTP- und TLS-Sitzungen zulassen möchten, setzen Sie TLS auf 1:
[...]
# Diese Option kann drei Werte annehmen:
# 0 : SSL/TLS-Verschlüsselungsschicht deaktivieren (Standard).
# 1 : sowohl traditionelle als auch verschlüsselte Sitzungen akzeptieren.
# 2 : Verbindungen ablehnen, die keine SSL/TLS-Sicherheitsmechanismen verwenden,
# einschließlich anonymer Sitzungen.
# Kommentieren Sie dies _nicht_ blind aus. Stellen Sie sicher, dass :
# 1) Ihr Server mit SSL/TLS-Unterstützung kompiliert wurde (--with-tls),
# 2) Ein gültiges Zertifikat vorhanden ist,
# 3) Nur kompatible Clients sich anmelden.
TLS 1
[...]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/
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.pem
Ländercode (2 Buchstaben) [XX]: <– Geben Sie Ihren Ländercode ein (z.B. “DE”).
Bundesland oder Provinzname (vollständiger Name) []: <– Geben Sie den Namen Ihres Bundeslandes oder Ihrer Provinz ein.
Ortsname (z.B. Stadt) [Default City]: <– Geben Sie Ihre Stadt ein.
Organisationsname (z.B. Firma) [Default Company Ltd]: <– Geben Sie den Namen Ihrer Organisation ein (z.B. den Namen Ihres Unternehmens).
Abteilung (z.B. Sektion) []: <– Geben Sie den Namen Ihrer Abteilung ein (z.B. “IT-Abteilung”).
Allgemeiner Name (z.B. Ihr Name oder der Hostname Ihres Servers) []: <– Geben Sie den vollständig qualifizierten Domänennamen 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 schließlich PureFTPd neu:
systemctl restart pure-ftpd.service
Das war’s. Sie können jetzt versuchen, sich mit Ihrem FTP-Client zu verbinden; Sie sollten jedoch Ihren FTP-Client so konfigurieren, dass er TLS verwendet.
18 Installiere BIND
Wir können BIND wie folgt installieren:
yum -y install bind bind-utils
Öffnen Sie als nächstes /etc/sysconfig/named…
nano /etc/sysconfig/named
… und stellen Sie sicher, dass die Zeile ROOTDIR=/var/named/chroot auskommentiert ist:
# BIND benannter Prozessoptionen
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# OPTIONS="was auch immer" -- Diese zusätzlichen Optionen werden beim Start an named übergeben.
# Fügen Sie hier kein -t hinzu, aktivieren Sie die richtige
# -chroot.service Einheit.Machen Sie eine Sicherung der vorhandenen /etc/named.conf-Datei und erstellen Sie eine neue wie folgt:
cp /etc/named.conf /etc/named.conf_bak
cat /dev/null > /etc/named.conf
nano /etc/named.conf
\n// named.conf\n//\n// Bereitgestellt von Red Hat bind-Paket zur Konfiguration des ISC BIND named(8) DNS\n// Servers als nur Caching-Nameserver (nur als localhost DNS-Resolver).\n//\n// Siehe /usr/share/doc/bind*/sample/ für Beispiel-named-Konfigurationsdateien.\n//\noptions {\n listen-on port 53 { any; };\n listen-on-v6 port 53 { any; };\n directory "/var/named";\n dump-file "/var/named/data/cache_dump.db";\n statistics-file "/var/named/data/named_stats.txt";\n memstatistics-file "/var/named/data/named_mem_stats.txt";\n allow-query { any; };\n recursion no;\n};\nlogging {\n channel default_debug {\n file "data/named.run";\n severity dynamic;\n };\n};\nzone "." IN {\n type hint;\n file "named.ca";\n};\ninclude "/etc/named.conf.local";\n
Erstellen Sie die Datei /etc/named.conf.local, die am Ende von /etc/named.conf enthalten ist ( /etc/named.conf.local wird später von ISPConfig befüllt, wenn Sie DNS-Zonen in ISPConfig erstellen):
touch /etc/named.conf.local
Dann erstellen wir die Startlinks und starten BIND:
systemctl enable named.service
systemctl start named.service
19 Installiere Webalizer und AWStats
Webalizer und AWStats können wie folgt installiert werden:
yum -y install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
20 Installiere Jailkit
Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden (wichtig: Jailkit muss vor ISPConfig installiert werden - es kann danach nicht installiert werden!):
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
./configure
make
make install
cd ..
rm -rf jailkit-2.17*
21 Installiere fail2ban
Dies ist optional, aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
yum -y install fail2ban
Wir müssen fail2ban so konfigurieren, dass es in die Protokolldatei /var/log/fail2ban.log protokolliert, da dies die Protokolldatei ist, die vom ISPConfig Monitor-Modul überwacht wird. Öffnen Sie /etc/fail2ban/fail2ban.conf…
nano /etc/fail2ban/fail2ban.conf
… und stellen Sie sicher, dass logtarget = /var/log/fail2ban.log:
[...]
# Option: logtarget
# Hinweise.: Legen Sie das Protokollziel fest. Dies könnte eine Datei, SYSLOG, STDERR oder STDOUT sein.
# Es kann nur ein Protokollziel angegeben werden.
# Wenn Sie logtarget vom Standardwert ändern und Sie
# logrotate verwenden -- passen Sie auch die Rotation in der
# entsprechenden Konfigurationsdatei an oder deaktivieren Sie sie
# (z.B. /etc/logrotate.d/fail2ban auf Debian-Systemen)
# Werte: [ STDOUT | STDERR | SYSLOG | FILE ] Standard: STDERR
#
logtarget = /var/log/fail2ban.log
[...] Erstellen Sie dann die Systemstartlinks für fail2ban und starten Sie es:
systemctl enable fail2ban.service
systemctl start fail2ban.service
22 Installiere rkhunter
rkhunter kann wie folgt installiert werden:
yum -y install rkhunter
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.