Server Setup · 8 min read · Sep 22, 2025

Der perfekte Server – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

Dieses Tutorial zeigt, wie man einen CentOS 7 x86_64 Server für die Installation von ISPConfig 3 vorbereitet und wie man ISPConfig 3 installiert. ISPConfig 3 ist ein Webhosting-Control-Panel, das es Ihnen ermöglicht, die folgenden Dienste über einen Webbrowser zu konfigurieren: Apache-Webserver, Postfix-Mailserver, MySQL, BIND-Namensserver, PureFTPd, SpamAssassin, ClamAV, Mailman und viele mehr. Seit Version 3.0.4 bietet ISPConfig vollständige Unterstützung für den nginx-Webserver zusätzlich zu Apache; dieses Tutorial behandelt die Einrichtung eines Servers, der Apache verwendet, nicht nginx.

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 seinen Server sicherer macht und enthält am Ende einen Abschnitt zur Fehlersuche.

1 Anforderungen

Um ein solches System zu installieren, benötigen Sie Folgendes:

  • Ein CentOS 7 Minimalserver-System. Dies kann ein Server sein, der von Grund auf neu installiert wurde, wie in unserem CentOS 7 Minimalserver-Tutorial beschrieben, oder ein virtueller Server oder Root-Server von einem Hosting-Unternehmen, das eine minimale CentOS 7-Installation hat.
  • Eine schnelle Internetverbindung.

2 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100 und dem Gateway 192.168.1.254. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.

3 Tastaturlayout einstellen

Der aktuelle CentOS 7-Installer hat einen Fehler, sodass Sie möglicherweise ein anderes Tastaturlayout in der Shell haben als das während der Installation ausgewählte. Wenn Sie auf diesen Fehler stoßen, können Sie mit dem localectl-Befehl auf das richtige Tastaturlayout wechseln (in meinem Fall “de” für ein deutsches Tastaturlayout):

localectl set-keymap de

Um eine Liste aller verfügbaren Tastaturlayouts zu erhalten, führen Sie aus:

localectl list-keymaps

Ich möchte ISPConfig am Ende dieses Tutorials installieren, das über eine eigene Firewall verfügt. Deshalb deaktiviere ich jetzt die Standard-CentOS-Firewall. Natürlich können Sie sie aktiviert lassen und nach Ihren Bedürfnissen konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da sie wahrscheinlich mit der CentOS-Firewall interferieren wird).

Führen Sie aus…

systemctl stop firewalld.service  
systemctl disable firewalld.service

Jetzt werde ich einige grundlegende Netzwerktools und einen shellbasierten Editor installieren, die wir in den nächsten Schritten benötigen:

yum -y install nano wget net-tools NetworkManager-tui

Wenn Sie Ihre Netzwerkkarte während der Installation nicht konfiguriert haben, können Sie das jetzt tun. Führen Sie aus…

nmtui

… und gehen Sie zu Verbindung bearbeiten:

Wählen Sie Ihre Netzwerkschnittstelle:

Füllen Sie dann Ihre Netzwerkinformationen aus – deaktivieren Sie DHCP und geben Sie eine statische IP-Adresse, eine Netzmaske, Ihr Gateway und einen oder zwei Nameserver ein, und drücken Sie OK:

Wählen Sie als Nächstes OK, um die Änderungen zu bestätigen, die Sie in den Netzwerkeinstellungen vorgenommen haben.

und Beenden, um das nmtui-Netzwerkkonfigurationstool zu schließen.

Sie sollten jetzt

ifconfig

ausführen, um zu überprüfen, ob der Installer Ihre IP-Adresse richtig erfasst hat:

[root@server1 ~]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fecd:cc52  prefixlen 64  scopeid 0x20

        ether 00:0c:29:cd:cc:52  txqueuelen 1000  (Ethernet)
        RX packets 55621  bytes 79601094 (75.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28115  bytes 2608239 (2.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Wenn Ihre Netzwerkkarte dort nicht angezeigt wird, könnte sie beim Booten nicht aktiviert sein. In diesem Fall öffnen Sie die Datei /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

und setzen Sie ONBOOT auf yes:

[...]  
ONBOOT=yes  
[...] 

und starten Sie den Server neu.

Überprüfen Sie Ihre /etc/resolv.conf, ob alle Nameserver aufgelistet sind, die Sie zuvor konfiguriert haben:

cat /etc/resolv.conf

Wenn Nameserver fehlen, führen Sie aus

nmtui

und fügen Sie die fehlenden Nameserver erneut hinzu.

Jetzt zur Konfiguration…

4 /etc/hosts anpassen

Als Nächstes bearbeiten wir /etc/hosts. Lassen Sie es so aussehen:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
192.168.1.100   server1.example.com     server1  
  
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

5 Die Firewall konfigurieren

(Sie können dieses Kapitel überspringen, wenn Sie die Firewall am Ende der grundlegenden Systeminstallation bereits deaktiviert haben.)

Ich möchte ISPConfig am Ende dieses Tutorials installieren, das über eine eigene Firewall verfügt. Deshalb deaktiviere ich jetzt die Standard-CentOS-Firewall. Natürlich können Sie sie aktiviert lassen und nach Ihren Bedürfnissen konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da sie wahrscheinlich mit der CentOS-Firewall interferieren wird).

Führen Sie aus

systemctl stop firewalld.service  
systemctl disable firewalld.service

und deaktivieren Sie die Firewall.

Um zu überprüfen, ob die Firewall wirklich deaktiviert wurde, können Sie danach

iptables -L

ausführen. Die Ausgabe sollte so aussehen:

[root@server1 ~]# iptables -L  
Chain INPUT (policy ACCEPT)  
target prot opt source destination
Chain FORWARD (policy ACCEPT)  
target prot opt source destination
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination

Oder verwenden Sie den Befehl firewall-cmd:

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state  
not running  
[root@server1 ~]#

6 SELinux deaktivieren

SELinux ist eine Sicherheitserweiterung von CentOS, die erweiterte Sicherheit bieten soll. Meiner Meinung nach benötigen Sie es nicht, um ein sicheres System zu konfigurieren, und es verursacht normalerweise mehr Probleme als Vorteile (denken Sie daran, nachdem Sie eine Woche mit Fehlersuche verbracht haben, weil ein Dienst nicht wie erwartet funktionierte, und dann stellen Sie fest, dass alles in Ordnung war, nur SELinux das Problem verursachte). Daher deaktiviere ich es (das ist ein Muss, wenn Sie später ISPConfig installieren möchten).

Bearbeiten Sie /etc/selinux/config und setzen Sie SELINUX=disabled:

nano /etc/selinux/config
# Diese Datei steuert den Zustand von SELinux im System.
# SELINUX= kann einen dieser drei Werte annehmen:
#     enforcing - SELinux-Sicherheitsrichtlinie wird durchgesetzt.
#     permissive - SELinux gibt Warnungen aus, anstatt durchzusetzen.
#     disabled - Keine SELinux-Richtlinie ist geladen.
SELINUX=disabled
# SELINUXTYPE= kann einen dieser beiden Werte annehmen:
#     targeted - Zielprozesse sind geschützt,
#     mls - Multi Level Security-Schutz.
SELINUXTYPE=targeted

Anschließend müssen wir das System neu starten:

reboot

7 Zusätzliche Repositories aktivieren und Software installieren

Zuerst importieren wir die GPG-Schlüssel für Softwarepakete:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Dann aktivieren wir das EPEL-Repository auf unserem CentOS-System, da viele der Pakete, die wir im Verlauf dieses Tutorials installieren werden, im offiziellen CentOS 7-Repository nicht verfügbar sind:

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum -y install yum-priorities

Bearbeiten Sie /etc/yum.repos.d/epel.repo…

nano /etc/yum.repos.d/epel.repo

… und fügen Sie die Zeile priority=10 zum [epel]-Abschnitt hinzu:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

Dann aktualisieren wir unsere vorhandenen Pakete auf dem System:

yum update

Jetzt installieren wir einige Softwarepakete, die später benötigt werden:

yum -y groupinstall 'Development Tools'

8 Quota

(Wenn Sie ein anderes Partitionierungsschema gewählt haben als ich, müssen Sie dieses Kapitel anpassen, damit Quota auf den Partitionen angewendet wird, wo Sie es benötigen.)

Um Quota zu installieren, führen wir diesen Befehl aus:

yum -y install quota

Jetzt überprüfen wir, ob Quota bereits für das Dateisystem aktiviert ist, in dem die Website (/var/www) und die Maildir-Daten (var/vmail) gespeichert sind. In diesem Beispiel habe ich eine große Root-Partition, also suche ich nach ‘ / ‘:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)  
[root@server1 ~]#

Wenn Sie eine separate /var-Partition haben, verwenden Sie:

mount | grep ' /var '

stattdessen. Wenn die Zeile das Wort “ noquota “ enthält, fahren Sie mit den folgenden Schritten fort, um Quota zu aktivieren.

Quota auf der / (Root)-Partition aktivieren

Normalerweise würden Sie Quota in der /etc/fstab-Datei aktivieren, aber wenn das Dateisystem das Root-Dateisystem “ / “ ist, muss Quota durch einen Bootparameter des Linux-Kernels aktiviert werden.

Bearbeiten Sie die Grub-Konfigurationsdatei:

nano /etc/default/grub

suchen Sie nach der Zeile, die mit GRUB_CMDLINE_LINUX beginnt, und fügen Sie rootflags=uquota,gquota zu den Befehlszeilenparametern hinzu, sodass die resultierende Zeile so aussieht:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet rootflags=uquota,gquota"

und wenden Sie die Änderungen an, indem Sie den folgenden Befehl ausführen.

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak  
grub2-mkconfig -o /boot/grub2/grub.cfg

und starten Sie den Server neu.

reboot

Überprüfen Sie jetzt, ob Quota aktiviert ist:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)  
[root@server1 ~]#

Wenn Quota aktiv ist, sehen wir “ usrquota,grpquota “ in der Liste der Mount-Optionen.

Quota auf einer separaten /var-Partition aktivieren

Wenn Sie eine separate /var-Partition haben, bearbeiten Sie /etc/fstab und fügen Sie ,uquota,gquota zur /-Partition ( /dev/mapper/centos-var) hinzu:

nano /etc/fstab
#  
# /etc/fstab  
# Erstellt von anaconda am So Sep 21 16:33:45 2014  
#  
# Zugängliche Dateisysteme, die durch Referenz verwaltet werden, befinden sich unter '/dev/disk'  
# Siehe Man-Seiten fstab(5), findfs(8), mount(8) und/oder blkid(8) für weitere Informationen  
#  
/dev/mapper/centos-root /                       xfs     defaults        1 1  
/dev/mapper/centos-var /var                     xfs     defaults,uquota,gquota        1 2  
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot                   xfs     defaults        1 3  
/dev/mapper/centos-swap swap                    swap    defaults        0 0

Führen Sie dann aus

mount -o remount /var
quotacheck -avugm  
quotaon -avug

um Quota zu aktivieren.

9 Apache, MySQL, phpMyAdmin installieren

Wir können die benötigten Pakete mit einem einzigen Befehl installieren:

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.