Server Setup · 8 min read · Sep 22, 2025

Il Server Perfetto – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

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 per web hosting che consente di configurare i seguenti servizi tramite un browser web: server web Apache, server di posta Postfix, MySQL, server di nomi BIND, PureFTPd, SpamAssassin, ClamAV, Mailman e molti altri. Dalla versione 3.0.4, ISPConfig supporta completamente anche il server web nginx oltre ad Apache; questo tutorial tratta la configurazione di un server che utilizza Apache, non nginx.

Manuale di ISPConfig 3

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

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

1 Requisiti

Per installare un sistema del genere avrai bisogno dei seguenti:

  • Un sistema server Centos 7 minimale. Questo può essere un server installato da zero come descritto nel nostro tutorial sul server Centos 7 minimale o un server virtuale o root-server di una società di hosting che ha un’installazione minima di Centos 7.
  • Una connessione Internet veloce.

2 Nota Preliminare

In questo tutorial utilizzo il nome host 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 dovrai sostituirle dove appropriato.

3 Imposta il layout della tastiera

L’attuale installatore di CentOS 7 ha un bug, quindi potresti trovarti con un layout della tastiera diverso nella shell rispetto a quello selezionato durante l’installazione. Se incontri questo bug, puoi passare al layout corretto (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 mappature di tasti disponibili, esegui:

localectl list-keymaps

Voglio installare ISPConfig alla fine di questo tutorial, che viene fornito con il proprio firewall. Ecco perché disabilito il firewall predefinito di CentOS ora. Naturalmente, sei libero di lasciarlo attivo e configurarlo secondo le tue esigenze (ma in tal caso non dovresti utilizzare alcun altro firewall in seguito poiché interferirebbe probabilmente con il firewall di CentOS).

Esegui…

systemctl stop firewalld.service  
systemctl disable firewalld.service

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

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

Se non hai configurato la tua scheda di rete durante l’installazione, puoi farlo ora. Esegui…

nmtui

… e vai su Modifica una connessione:

Seleziona la tua interfaccia di rete:

Quindi compila i dettagli della tua rete - disabilita DHCP e compila un indirizzo IP statico, una netmask, il tuo gateway e uno o due server DNS, quindi premi Ok:

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

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

Dovresti eseguire

ifconfig

ora per controllare se l’installatore ha ottenuto correttamente il tuo indirizzo IP:

[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

Se la tua scheda di rete non appare 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 yes:

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

e riavvia il server.

Controlla il tuo /etc/resolv.conf se elenca tutti i server DNS che hai configurato in precedenza:

cat /etc/resolv.conf

Se mancano i server DNS, esegui

nmtui

e aggiungi nuovamente i server DNS mancanti.

Ora, passiamo alla configurazione…

4 Modifica /etc/hosts

Successivamente modifichiamo /etc/hosts. Fai in modo che appaia così:

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 alla fine dell’installazione del sistema di base.)

Voglio installare ISPConfig alla fine di questo tutorial, che viene fornito con il proprio firewall. Ecco perché disabilito il firewall predefinito di CentOS ora. Naturalmente, sei libero di lasciarlo attivo e configurarlo secondo le tue esigenze (ma in tal caso non dovresti utilizzare alcun altro firewall in seguito poiché interferirebbe probabilmente con il firewall di CentOS).

Esegui

systemctl stop firewalld.service  
systemctl disable firewalld.service

e disabilita il firewall.

Per controllare che il firewall sia stato realmente disabilitato, puoi eseguire

iptables -L

in seguito. L’output dovrebbe apparire così:

[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

Oppure usa il comando firewall-cmd:

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state  
not running  
[root@server1 ~]#

6 Disabilita SELinux

SELinux è un’estensione di sicurezza di CentOS che dovrebbe fornire sicurezza avanzata. Secondo me non ne hai bisogno per configurare un sistema sicuro, e di solito causa più problemi che vantaggi (pensa a questo dopo aver fatto una settimana di risoluzione dei problemi perché qualche servizio non funzionava come previsto, e poi scopri che tutto era ok, solo SELinux stava causando il problema). Pertanto, lo disabilito (questo è un must se vuoi installare ISPConfig più tardi).

Modifica /etc/selinux/config e imposta SELINUX=disabled:

nano /etc/selinux/config
# Questo file controlla lo stato di SELinux sul sistema.
# SELINUX= può assumere uno di questi tre valori:
#     enforcing - La politica di sicurezza SELinux è applicata.
#     permissive - SELinux stampa avvisi invece di applicare.
#     disabled - Nessuna politica SELinux è caricata.
SELINUX=disabled
# SELINUXTYPE= può assumere uno di questi due valori:
#     targeted - I processi mirati sono protetti,
#     mls - Protezione Multi Level Security.
SELINUXTYPE=targeted

Dopo 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*

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

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

Poi aggiorniamo i pacchetti esistenti sul sistema:

yum update

Ora installiamo alcuni pacchetti software necessari in seguito:

yum -y groupinstall 'Development Tools'

8 Quota

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

Per installare la quota, eseguiamo questo comando:

yum -y install quota

Ora controlliamo se la quota è già abilitata per il filesystem dove sono memorizzati i dati del sito web (/var/www) e del maildir (var/vmail). In questo esempio, ho una grande partizione root, quindi cerco ‘ / ‘:

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

Se hai una partizione /var separata, usa:

mount | grep ' /var '

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

Abilitazione della quota sulla partizione / (root)

Normalmente abiliteresti la quota nel file /etc/fstab, ma se il filesystem è il filesystem root “/“, allora la quota deve essere abilitata tramite un parametro di avvio del kernel Linux.

Modifica il file di configurazione grub:

nano /etc/default/grub

cerca la riga che inizia con GRUB_CMDLINE_LINUX e aggiungi rootflags=uquota,gquota ai parametri della riga di comando in modo che la riga risultante appaia così:

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"

ed applica le modifiche eseguendo il seguente comando.

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 ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)  
[root@server1 ~]#

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  
# Creato da anaconda domenica 21 settembre 2014 16:33:45  
#  
# I filesystem accessibili, per riferimento, sono mantenuti sotto '/dev/disk'  
# Vedi le pagine man fstab(5), findfs(8), mount(8) e/o blkid(8) per ulteriori informazioni  
#  
/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

Poi 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
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.