GNU/Linux >> Linux Esercitazione >  >> Cent OS

Il server perfetto – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

Questo tutorial esiste per queste versioni del sistema operativo

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

In questa pagina

  1. Manuale ISPConfig 3
  • 1 Requisiti
  • 2 Nota preliminare
  • 3 Imposta il layout della tastiera
  • 4 Regola /etc/hosts
  • 5 Configurare il firewall
  • 6 Disabilita SELinux
  • 7 Abilita repository aggiuntivi e installa alcuni software
  • Quota 8
  • Abilitazione della quota sulla partizione / (root)
  • Abilitazione della quota su una partizione /var separata
  • 9 Installa Apache, MySQL, phpMyAdmin
  • Questo tutorial mostra come preparare un server CentOS 7 x86_64 per l'installazione di ISPConfig 3 e come installare ISPConfig 3. ISPConfig 3 è un pannello di controllo di webhosting che consente di configurare i seguenti servizi tramite un browser web:server web Apache, posta Postfix server, MySQL, BIND nameserver, PureFTPd, SpamAssassin, ClamAV, Mailman e molti altri. Dalla versione 3.0.4, ISPConfig viene fornito con il supporto completo per il server web nginx oltre ad Apache; questo tutorial copre la configurazione di un server che utilizza Apache, non nginx.

    Manuale ISPConfig 3

    Per imparare a usare ISPConfig 3, consiglio vivamente di scaricare il Manuale di ISPConfig 3.

    Su più di 300 pagine, copre il concetto alla base di ISPConfig (amministratore, rivenditori, clienti), spiega come installare e aggiornare ISPConfig 3, include un riferimento per tutti i moduli e i campi dei moduli in ISPConfig insieme a esempi di input validi e fornisce tutorial per le attività più comuni in ISPConfig 3. Descrive anche come rendere più sicuro il tuo server e include una sezione per la risoluzione dei problemi alla fine.

    1 Requisiti

    Per installare un tale sistema avrai bisogno di quanto segue:

    • Un sistema server minimo Centos 7. Può trattarsi di un server installato da zero come descritto nel nostro tutorial sul server minimo di Centos 7 o di un server virtuale o root server di una società di hosting che ha installato una configurazione minima di Centos 7.
    • Una connessione Internet veloce.

    2 Nota preliminare

    In questo tutorial utilizzo l'hostname server1.example.com con l'indirizzo IP 192.168.1.100 e il gateway 192.168.1.254. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato.

    3 Imposta il layout della tastiera

    L'attuale programma di installazione di CentOS 7 ha un bug, quindi potresti ritrovarti con un layout di tastiera diverso sulla shell rispetto a quello selezionato durante l'installazione. Se riscontri quel bug, puoi passare alla tastiera giusta (nel mio caso "de" per un layout di tastiera tedesco, con il comando localectl:

    localectl set-keymap de

    Per ottenere un elenco di tutte le keymap disponibili, esegui:

    localectl list-keymaps

    Voglio installare ISPConfig alla fine di questo tutorial che viene fornito con il proprio firewall. Ecco perché ora disabilito il firewall CentOS predefinito. Naturalmente, sei libero di lasciarlo acceso e configurarlo in base alle tue esigenze (ma in seguito non dovresti utilizzare nessun altro firewall poiché molto probabilmente interferirà con il firewall CentOS).

    Corri...

    systemctl stop firewalld.service
    systemctl disable firewalld.service

    Ora installerò alcuni strumenti di rete di base e un editor basato su shell di cui avremo bisogno nei prossimi passaggi:

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

    Se non hai configurato la tua scheda di rete durante l'installazione, puoi farlo ora. Corri...

    nmtui

    ... e vai su Modifica una connessione:

    Seleziona la tua interfaccia di rete:

    Quindi inserisci i dettagli della tua rete:disabilita DHCP e inserisci un indirizzo IP statico, una maschera di rete, il tuo gateway e uno o due server dei nomi, quindi premi OK:

    Quindi seleziona OK per confermare le modifiche apportate nelle impostazioni di rete

    e Esci per chiudere lo strumento di configurazione della rete nmtui.

    Dovresti correre

    ifconfig

    ora per verificare se il programma di installazione ha ottenuto il tuo indirizzo IP corretto:

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

    Se la tua scheda di rete non viene visualizzata lì, allora non è abilitata all'avvio. In questo caso, apri il file /etc/sysconfig/network-scripts/ifcfg-eth0

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

    e imposta ONBOOT su sì:

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

    e riavvia il server.

    Controlla il tuo /etc/resolv.conf se elenca tutti i nameserver che hai precedentemente configurato:

    cat /etc/resolv.conf

    Se mancano i nameserver, esegui

    nmtui

    e aggiungi di nuovo i nameserver mancanti.

    Ora, alla configurazione...

    4 Regola /etc/hosts

    Quindi modifichiamo /etc/hosts. Rendilo simile a questo:

    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 Configura il firewall

    (Puoi saltare questo capitolo se hai già disabilitato il firewall al termine dell'installazione di base del sistema.)

    Voglio installare ISPConfig alla fine di questo tutorial che viene fornito con il proprio firewall. Ecco perché ora disabilito il firewall CentOS predefinito. Naturalmente, sei libero di lasciarlo acceso e configurarlo in base alle tue esigenze (ma in seguito non dovresti utilizzare nessun altro firewall poiché molto probabilmente interferirà con il firewall CentOS).

    Corri

    systemctl stop firewalld.service
    systemctl disable firewalld.service

    e disabilita il firewall.

    Per verificare che il firewall sia stato davvero disabilitato, puoi eseguire

    iptables -L

    dopo. L'output dovrebbe essere simile a questo:

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

    Oppure usa il comando firewall-cmd:

    firewall-cmd --state
    [[email protected] ~]# firewall-cmd --state
    not running
    [[email protected] ~]#

    6 Disattiva SELinux

    SELinux è un'estensione di sicurezza di CentOS che dovrebbe fornire una sicurezza estesa. Secondo me non è necessario per configurare un sistema sicuro e di solito causa più problemi che vantaggi (pensaci dopo aver fatto una settimana di risoluzione dei problemi perché alcuni servizi non funzionavano come previsto, e quindi scopri che era tutto ok, solo SELinux stava causando il problema). Pertanto lo disabilito (questo è un must se vuoi installare ISPConfig in un secondo momento).

    Modifica /etc/selinux/config e imposta 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
    

    Successivamente dobbiamo riavviare il sistema:

    reboot

    7 Abilita repository aggiuntivi e installa alcuni software

    Per prima cosa importiamo le chiavi GPG per i pacchetti software:

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

    Quindi abilitiamo il repository EPEL sul nostro sistema CentOS poiché molti dei pacchetti che installeremo nel corso di questo tutorial non sono disponibili nel repository CentOS 7 ufficiale:

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

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

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

    ... e aggiungi la linea priority=10 alla sezione [epel]:

    [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
    [...]

    Quindi aggiorniamo i nostri pacchetti esistenti sul sistema:

    yum update

    Ora installiamo alcuni pacchetti software che saranno necessari in seguito:

    yum -y groupinstall 'Development Tools'

    8 Quota

    (Se hai scelto uno schema di partizionamento diverso dal mio, devi modificare questo capitolo in modo che la quota si applichi alle partizioni dove ne hai bisogno.)

    Per installare quota, eseguiamo questo comando:

    yum -y install quota

    Ora controlliamo se la quota è già abilitata per il filesystem in cui sono archiviati i dati del sito Web (/var/www) e della maildir (var/vmail). In questa configurazione di esempio, ho una grande partizione di root, quindi cerco ' / ':

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

    Se hai una partizione /var separata, usa:

    mount | grep ' /var '

    invece. Se la riga contiene la parola "noquota ", quindi procedi con i passaggi seguenti per abilitare la quota.

    Abilitazione della quota sulla partizione / (root)

    Normalmente si abilita la quota nel file /etc/fstab, ma se il filesystem è il filesystem root "/", allora la quota deve essere abilitata da un parametro di avvio del kernel Linux.

    Modifica il file di configurazione di grub:

    nano /etc/default/grub

    cerca nella riga che inizia con GRUB_CMDLINE_LINUX e aggiungi rootflags=uquota,gquota ai parametri della riga di comando in modo che la riga risultante assomigli a questa:

    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"

    e applica le modifiche eseguendo il comando seguente.

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

    e riavvia il server.

    reboot

    Ora controlla se la quota è abilitata:

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

    Quando la quota è attiva, possiamo vedere "usrquota,grpquota " nell'elenco delle opzioni di montaggio.

    Abilitazione della quota su una partizione /var separata

    Se hai una partizione /var separata, modifica /etc/fstab e aggiungi ,uquota,gquota alla partizione / (/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

    Quindi esegui

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

    per abilitare la quota.

    9 Installa Apache, MySQL, phpMyAdmin

    Possiamo installare i pacchetti necessari con un solo comando:

    yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin


    Cent OS
    1. Il server perfetto - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

    2. Il server perfetto – CentOS 7.1 con Apache2, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3

    3. Il server perfetto - Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

    4. Il server perfetto - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

    5. Il server perfetto - CentOS 6.1 x86_64 con Apache2 [ISPConfig 3]

    Il server perfetto - CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

    Il server perfetto - Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)

    Il server perfetto - CentOS 6.4 x86_64 (nginx, Dovecot, ISPConfig 3)

    Il server perfetto - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)

    Il server perfetto - Debian Wheezy (Apache2, BIND, Dovecot, ISPConfig 3)

    Il server perfetto - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3)