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 de

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

localectl list-keymaps

Ich 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.service

um 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 -L

Die Ausgabe sollte folgendermaßen 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  
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-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 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

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, 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-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 aufgeführt 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…

Anpassen von /etc/hosts und /etc/hostname

Als Nächstes werden wir /etc/hosts bearbeiten. 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

Setzen 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/hostname

Und setzen Sie den Hostnamen in der Datei.

server1.example.com

Speichern 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=targeted

Danach müssen wir das System neu starten:

reboot

4 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-release
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 -y update

Jetzt 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 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-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/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 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.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, 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 0

Führen Sie dann aus

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

um 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 phpmyadmin

Um 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.conf

Und starten Sie httpd neu, um die Konfigurationsänderung anzuwenden.

service httpd restart  
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.