GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Der perfekte Server CentOS 7.6 mit Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3.1

Diese Anleitung zeigt die Installation von ISPConfig 3.1 auf einem CentOS 7.6-Server (64 Bit). ISPConfig ist ein Webhosting-Kontrollfeld, mit dem Sie die folgenden Dienste über einen Webbrowser konfigurieren können:Apache-Webserver, PHP 7.2, Postfix-Mailserver, MySQL, BIND-Nameserver, PureFTPd, SpamAssassin, ClamAV, Mailman und viele mehr.

1 Voraussetzungen

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

  • Ein Centos 7.6 minimales Serversystem. 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, auf dem ein minimales Centos 7.6-Setup installiert ist.
  • Eine schnelle Internetverbindung.

2 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.

3 Bereiten Sie den Server vor

Legen Sie das Tastaturlayout fest

Falls die Tastaturbelegung des Servers nicht zu Ihrer Tastatur passt, können Sie mit dem localectl-Befehl auf die richtige Tastatur (in meinem Fall „de“ für eine deutsche Tastaturbelegung) wechseln:

localectl set-keymap de

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

localectl list-keymaps

Ich möchte ISPConfig am Ende dieses Tutorials 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 steht es Ihnen frei, die CentOS-Firewall eingeschaltet zu lassen und nach Ihren Bedürfnissen zu konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da diese höchstwahrscheinlich die CentOS-Firewall stört).

Lauf...

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 wurde.

Dann sollten Sie überprüfen, ob die Firewall wirklich deaktiviert wurde. Führen Sie dazu den folgenden Befehl aus:

iptables -L

Die Ausgabe sollte so aussehen:

[[email protected] ~]# 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
[[email protected] ~]# firewall-cmd --state
not running
[[email protected] ~]#

Jetzt werde ich den Netzwerkkonfigurationseditor und den Shell-basierten Editor "nano" installieren, die ich in den nächsten Schritten verwenden werde, um die Konfigurationsdateien zu bearbeiten:

yum -y install nano wget NetworkManager-tui yum-utils

Wenn Sie Ihre Netzwerkkarte während der Installation nicht konfiguriert haben, können Sie dies jetzt tun. Lauf...

nmtui

... und gehen Sie zu Verbindung bearbeiten:

Wählen Sie Ihre Netzwerkschnittstelle aus:

Geben Sie dann Ihre Netzwerkdetails ein - deaktivieren Sie DHCP und geben Sie eine statische IP-Adresse, eine Netzmaske, Ihr Gateway und einen oder zwei Nameserver ein, und klicken Sie dann auf 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.

Du solltest laufen

ifconfig

Überprüfen Sie jetzt, ob der Installer Ihre IP-Adresse richtig verstanden hat:

[[email protected] ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x20<link>
inet6 2003:c2:9731:a445:20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x0<global>
ether 00:0c:29:e5:5b:47 txqueuelen 1000 (Ethernet)
RX packets 227784 bytes 317714901 (302.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 205574 bytes 23608521 (22.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (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

[[email protected] ~]#

Wenn Ihre Netzwerkkarte dort nicht angezeigt wird, wird sie beim Booten nicht aktiviert. Öffnen Sie in diesem Fall 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 sie alle Nameserver auflistet, 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.

Nun zur Konfiguration...

Anpassen von /etc/hosts und /etc/hostname

Als nächstes bearbeiten wir /etc/hosts. Lass es so aussehen:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100 server1.example.com server1

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

Legen Sie den Hostnamen in der Datei /etc/hostname fest. Die Datei muss den vollständig qualifizierten Domänennamen enthalten (z. B. server1.example.com in meinem Fall) und nicht nur den Kurznamen wie "server1". Öffnen Sie die Datei mit dem Nano-Editor:

nano /etc/hostname

Und legen Sie den Hostnamen in der Datei fest.

server1.example.com

Speichern Sie die Datei und beenden Sie nano.

Setzen Sie SELinux auf freizügig

SELinux ist eine Sicherheitserweiterung von CentOS, die erweiterte Sicherheit bieten soll. ISPConfig wird nicht mit einem SELinux-Regelsatz ausgeliefert, daher setze ich ihn auf permissiv (dies ist ein Muss, wenn Sie ISPConfig später installieren möchten).

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

nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
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 Laufe dieses Tutorials installieren werden, nicht im offiziellen CentOS 7-Repository verfügbar sind:

yum -y install epel-release

Dann aktualisieren wir unsere bestehenden Pakete auf dem System:

yum -y update

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

yum -y groupinstall 'Development Tools'

5-Quote

(Falls Sie ein anderes Partitionsschema gewählt haben als ich, müssen Sie dieses Kapitel anpassen, damit Quota für die Partitionen gilt, wo Sie es brauchen.)

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

yum -y install quota

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

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

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

mount | grep ' /var '

stattdessen. Wenn die Zeile das Wort „noquota ", fahren Sie dann mit den folgenden Schritten fort, um das Kontingent zu aktivieren.

Kontingent auf der Partition / (Root) aktivieren

Normalerweise würden Sie Quota in der Datei /etc/fstab aktivieren, aber wenn das Dateisystem das Root-Dateisystem "/" ist, dann muss Quota durch einen Boot-Parameter 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 wie folgt 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 nun, ob Quota aktiviert ist:

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

Wenn das Kontingent aktiv ist, können wir "usrquota,grpquota sehen " in der Mount-Optionsliste.

Kontingent 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 hinzu (/dev/mapper/centos-var):

nano /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Sep 21 16:33:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/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

Dann ausführen

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

Kontingent zu aktivieren. Wenn Sie eine Fehlermeldung erhalten, dass keine Partition mit aktiviertem Kontingent vorhanden ist, starten Sie den Server neu, bevor Sie fortfahren.

6 Installieren Sie Apache, PHP, MySQL und phpMyAdmin

Aktivieren Sie das Remi-Repository, um neuere PHP-Versionen zu erhalten:

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php72

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 über die HTTPOXY-Schwachstelle angegriffen werden kann, werden wir den HTTP_PROXY-Header in Apache global deaktivieren.

Fügen Sie die Apache-Header-Regel 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 zu übernehmen.

service httpd restart

Cent OS
  1. Der perfekte Server – Ubuntu 15.04 (Vivid Vervet) mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3

  2. Der perfekte Server – Ubuntu 15.10 (Wily Werewolf) mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3

  3. Der perfekte Server – Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD und ISPConfig 3)

  4. Der perfekte Server – Ubuntu 16.10 (Yakkety Yak) mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3.1

  5. Der perfekte Server – Ubuntu 17.04 (Zesty Zapus) mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3.1

Der perfekte Server CentOS 7.3 mit Apache, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3.1

Der perfekte Server CentOS 7.4 mit Apache, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3.1

Der perfekte Server – Ubuntu 20.04 mit Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3.2

Der perfekte Server CentOS 8 mit Apache, PHP, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3.2

Der perfekte Server – Debian 9 (Stretch) mit Apache, BIND, Dovecot, PureFTPD und ISPConfig 3.1

Der perfekte Server – Ubuntu 14.10 mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig