Server Setup · 8 min read · Sep 23, 2025
Der perfekte Server CentOS 7.3 mit Apache, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3.1
Dieses Tutorial zeigt die Installation von ISPConfig 3.1 auf einem CentOS 7.3 (64Bit) Server. ISPConfig ist ein Webhosting-Kontrollpanel, 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.
1 Anforderungen
Um ein solches System zu installieren, benötigen Sie Folgendes:
- Ein CentOS 7.3 Minimalserver-System. Dies kann ein Server sein, der von Grund auf neu installiert wurde, wie in unserem Tutorial zum Minimalserver CentOS 7.3 beschrieben, oder ein virtueller Server oder Root-Server von einem Hosting-Unternehmen, das ein minimales CentOS 7.3-Setup installiert 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.1. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.
Bitte beachten Sie, dass HHVM und XMPP in ISPConfig für die CentOS-Plattform noch nicht unterstützt werden. Wenn Sie einen XMPP-Chatserver von innerhalb von ISPConfig verwalten oder HHVM (Hip Hop Virtual Machine) in einer ISPConfig-Website verwenden möchten, verwenden Sie bitte Debian 8 oder Ubuntu 16.04 als Server-Betriebssystem anstelle von CentOS 7.3.
3 Server vorbereiten
Tastaturlayout einstellen
Falls das Tastaturlayout des Servers nicht mit Ihrer Tastatur übereinstimmt, können Sie mit dem localectl-Befehl auf das richtige Layout wechseln (in meinem Fall “de” für ein deutsches Tastaturlayout):
localectl set-keymap deUm eine Liste aller verfügbaren Tastaturlayouts zu erhalten, führen Sie aus:
localectl list-keymapsIch möchte am Ende dieses Tutorials ISPConfig installieren. ISPConfig wird mit dem Bastille-Firewall-Skript geliefert, das ich als Firewall verwenden werde, daher deaktiviere ich jetzt die Standard-CentOS-Firewall. Natürlich können Sie die CentOS-Firewall aktiviert lassen und nach Ihren Bedürfnissen konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da sie höchstwahrscheinlich mit der CentOS-Firewall in Konflikt steht).
Führen Sie aus…
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.serviceum die CentOS-Firewall zu stoppen und zu deaktivieren. Es ist in Ordnung, wenn Sie hier Fehler erhalten, dies zeigt nur an, dass die Firewall nicht installiert war.
Dann sollten Sie überprüfen, ob die Firewall wirklich deaktiviert wurde. Führen Sie dazu den Befehl aus:
iptables -LDie Ausgabe sollte folgendermaßen aussehen:
[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destinationOder verwenden Sie den Befehl firewall-cmd:
firewall-cmd --state[root@server1 ~]# firewall-cmd --state
nicht aktiv
[root@server1 ~]#Jetzt werde ich den Netzwerk-Konfiguration-Editor und den shell-basierten Editor “nano” installieren, den ich in den nächsten Schritten verwenden werde, um die Konfigurationsdateien zu bearbeiten:
yum -y install nano wget NetworkManager-tuiWenn 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 aus:

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
ifconfigausfü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, dann ist sie beim Booten möglicherweise nicht aktiviert. In diesem Fall öffnen Sie die Datei /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-ens33und setzen Sie ONBOOT auf yes:
[...]
ONBOOT=yes
[...] und starten Sie den Server neu.
Überprüfen Sie Ihre /etc/resolv.conf, ob alle Nameserver aufgeführt sind, die Sie zuvor konfiguriert haben:
cat /etc/resolv.confWenn Nameserver fehlen, führen Sie aus
nmtuiund fügen Sie die fehlenden Nameserver erneut hinzu.
Jetzt zur Konfiguration…
Anpassen von /etc/hosts und /etc/hostname
Als Nächstes werden wir /etc/hosts bearbeiten. Lassen Sie es so aussehen:
nano /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6Setzen Sie den Hostnamen in der Datei /etc/hostname. Die Datei sollte den vollqualifizierten Domainnamen (z.B. server1.example.com in meinem Fall) und nicht nur den Kurznamen wie “server1” enthalten. Öffnen Sie die Datei mit dem Nano-Editor:
nano /etc/hostnameUnd setzen Sie den Hostnamen in der Datei.
server1.example.comSpeichern Sie die Datei und beenden Sie nano.
Deaktivieren von SELinux
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 verursacht hat). Daher deaktiviere ich es (dies 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 Status 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=targetedDanach müssen wir das System neu starten:
reboot4 Zusätzliche Repositories aktivieren und einige 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, nicht im offiziellen CentOS 7-Repository verfügbar sind:
yum -y install epel-releaseyum -y install yum-prioritiesBearbeiten 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 -y updateJetzt installieren wir einige Softwarepakete, die später benötigt werden:
yum -y groupinstall 'Development Tools'5 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 quotaJetzt ü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-Setup 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.
Aktivieren von Quota auf der / (Root-)Partition
Normalerweise würden Sie Quota in der Datei /etc/fstab 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/grubsuchen 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 folgendermaßen aussieht:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap 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.cfgund 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, können wir “ usrquota,grpquota “ in der Liste der Mount-Optionen sehen.
Aktivieren von Quota auf einer separaten /var-Partition
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'
# Weitere Informationen finden Sie in den Handbuchseiten fstab(5), findfs(8), mount(8) und/oder blkid(8)
#
/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 0Führen Sie dann aus
mount -o remount /varquotacheck -avugm
quotaon -avugum Quota zu aktivieren. Wenn Sie eine Fehlermeldung erhalten, dass keine Partition mit aktivierten Quota vorhanden ist, starten Sie den Server neu, bevor Sie fortfahren.
6 Installieren von Apache, MySQL, phpMyAdmin
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 phpmyadminUm sicherzustellen, dass der Server nicht durch die HTTPOXY-Sicherheitsanfälligkeit angegriffen werden kann, werden wir den HTTP_PROXY-Header in Apache global deaktivieren.
Fügen Sie die Apache-Headerregel am Ende der httpd.conf-Datei hinzu:
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.confUnd starten Sie httpd neu, um die Konfigurationsänderung anzuwenden.
service httpd restart Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.