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

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

Dieses Tutorial existiert für diese Betriebssystemversionen

  • CentOS 7.6
  • CentOS 7.4
  • CentOS 7.3
  • CentOS 7.2
  • CentOS 7.1
  • CentOS 7

Auf dieser Seite

  1. ISPConfig 3 Handbuch
  • 1 Voraussetzungen
  • 2 Vorbemerkung
  • 3 Legen Sie das Tastaturlayout fest
  • 4 /etc/hosts anpassen
  • 5 Firewall konfigurieren
  • 6 SELinux deaktivieren
  • 7 Zusätzliche Repositories aktivieren und Software installieren
  • 8 Quote
  • Kontingent auf der Partition / (Root) aktivieren
  • Kontingent auf einer separaten /var-Partition aktivieren
  • 9 Apache, MySQL, phpMyAdmin installieren
  • Dieses Tutorial zeigt, wie Sie einen CentOS 7 x86_64-Server für die Installation von ISPConfig 3 vorbereiten und ISPConfig 3 installieren. ISPConfig 3 ist ein Webhosting-Kontrollfeld, mit dem Sie die folgenden Dienste über einen Webbrowser konfigurieren können:Apache-Webserver, Postfix-Mail Server, MySQL, BIND-Nameserver, PureFTPd, SpamAssassin, ClamAV, Mailman und viele mehr. Seit Version 3.0.4 bietet ISPConfig zusätzlich zu Apache volle Unterstützung für den nginx-Webserver; Dieses Tutorial behandelt die Einrichtung eines Servers, der Apache und nicht Nginx verwendet.

    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, Wiederverkäufer, Kunden), erklärt, wie ISPConfig 3 installiert und aktualisiert wird, enthält eine Referenz 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 Sie Ihren Server sicherer machen können, und enthält am Ende einen Abschnitt zur Fehlerbehebung.

    1 Voraussetzungen

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

    • Ein minimales Centos 7-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, das ein minimales Centos 7-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.254. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.

    3 Legen Sie das Tastaturlayout fest

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

    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, das mit einer eigenen Firewall geliefert wird. Deshalb deaktiviere ich jetzt die standardmäßige CentOS-Firewall. Natürlich steht es Ihnen frei, sie 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...

    systemctl stop firewalld.service
    systemctl disable firewalld.service

    Jetzt werde ich einige grundlegende Netzwerktools und einen Shell-basierten 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 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.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<UP,LOOPBACK,RUNNING>  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, 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...

    4 /etc/hosts anpassen

    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.1.100 server1.example.com server1

    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

    5 Firewall konfigurieren

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

    Ich möchte ISPConfig am Ende dieses Tutorials installieren, das mit einer eigenen Firewall geliefert wird. Deshalb deaktiviere ich jetzt die standardmäßige CentOS-Firewall. Natürlich steht es Ihnen frei, sie 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).

    Ausführen

    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

    ausführen
    iptables -L

    nachher. 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] ~]#

    6 SELinux deaktivieren

    SELinux ist eine Sicherheitserweiterung von CentOS, die erweiterte Sicherheit bieten soll. Meiner Meinung nach brauchen Sie es nicht, um ein sicheres System zu konfigurieren, und es verursacht normalerweise mehr Probleme als Vorteile (denken Sie daran, nachdem Sie eine Woche lang Fehler behoben haben, weil ein Dienst nicht wie erwartet funktioniert hat, und dann Sie feststellen, dass alles in Ordnung war, nur SELinux verursachte das Problem). 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
    # 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=disabled
    # 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

    7 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:

    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 Abschnitt [epel] 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 bestehenden Pakete auf dem System:

    yum update

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

    yum -y groupinstall 'Development Tools'

    8 Quote

    (Falls Sie ein anderes Partitionierungsschema 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="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 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

    zum Aktivieren des Kontingents.

    9 Installieren Sie 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


    Cent OS
    1. Der perfekte Server – OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

    2. Der perfekte Server – CentOS 7.1 mit Apache2, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3

    3. Der perfekte Server – Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

    4. Der perfekte Server – Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

    5. Der perfekte Server – CentOS 6.1 x86_64 mit Apache2 [ISPConfig 3]

    Der perfekte Server – CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

    Der perfekte Server – Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)

    Der perfekte Server – CentOS 6.4 x86_64 (nginx, Dovecot, ISPConfig 3)

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

    Der perfekte Server – Debian Wheezy (Apache2, BIND, Dovecot, ISPConfig 3)

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