Installazione Server · 7 min read · Jan 05, 2026

Installazione di un Setup Multiserver con Server Web, Email, DNS e Database MySQL Dedicati su Debian 5.0 con ISPConfig 3

Installazione di un Setup Multiserver con Server Web, Email, DNS e Database MySQL Dedicati su Debian 5.0 con ISPConfig 3

Versione 1.0
Autore: Till Brehm

Questo tutorial descrive l’installazione di un setup multiserver ISPConfig 3 con server web, email, database e due server DNS dedicati, tutti gestiti tramite un unico pannello di controllo ISPConfig 3. Il setup descritto di seguito utilizza cinque server e può essere facilmente esteso a un numero maggiore di server semplicemente aggiungendo più server. Ad esempio, se desideri avere due server di posta, esegui i passaggi di configurazione dal capitolo 2 su entrambi questi server. Se desideri configurare più server web, installa ISPConfig su tutti gli altri server web in modalità esperto, tranne il primo.

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

Su quasi 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 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 Installazione dei Cinque Sistemi Base Debian

In questo setup ci sarà un server master (che esegue il server web e l’interfaccia del pannello di controllo ISPConfig) e quattro server slave per database, email e DNS.

Per installare il setup cluster, abbiamo bisogno di cinque server (o server virtuali) con un’installazione minima di Debian 5.0. Il setup di base è descritto nel seguente tutorial nei passaggi 1 - 6:

https://www.howtoforge.com/perfect-server-debian-lenny-ispconfig3

Installa solo i passaggi 1 - 6 del tutorial del server perfetto e non gli altri passaggi poiché differiscono per un setup cluster!

Nel mio esempio utilizzo i seguenti nomi host e indirizzi IP per i cinque server:

Server Web
Nome host: web.example.tld
Indirizzo IP: 192.168.0.105

Server di Posta
Nome host: mail.example.tld
Indirizzo IP: 192.168.0.106

Server DB
Nome host: db.example.tld
Indirizzo IP: 192.168.0.107

Server DNS (primario)
Nome host: ns1.example.tld
Indirizzo IP: 192.168.0.108

Server DNS (secondario)
Nome host: ns2.example.tld
Indirizzo IP: 192.168.0.109

Dove questi nomi host o indirizzi IP si verificano nei prossimi passaggi di installazione, dovrai cambiarli per corrispondere agli IP e ai nomi host dei tuoi server.

2 Installazione del Server Web

Modifica il file hosts e aggiungi gli indirizzi IP e i nomi host per tutti i server. I nomi host e gli indirizzi IP devono essere regolati per corrispondere al tuo setup.

vi /etc/hosts
127.0.0.1       localhost
192.168.0.105   web.example.tld
192.168.0.106   mail.example.tld
192.168.0.107   db.example.tld
192.168.0.108   ns1.example.tld
192.168.0.109   ns2.example.tld
 
# Le seguenti righe sono desiderabili per host compatibili con IPv6
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Imposta il nome host del server: echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Modifica il file sources.list…

vi /etc/apt/sources.list 

… e assicurati che contenga la seguente riga per abilitare il repository volatile.

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Esegui…

 apt-get update

… per aggiornare il database dei pacchetti apt; quindi esegui…

apt-get upgrade

… per installare gli ultimi aggiornamenti (se ce ne sono).

È una buona idea sincronizzare l’orologio di sistema con un server NTP ( n etwork t ime p rotocol) su Internet. Esegui semplicemente…

apt-get -y install ntp ntpdate

… e l’ora del tuo sistema sarà sempre sincronizzata.

Installa il server MySQL. Un’istanza del server MySQL è necessaria su ogni server poiché ISPConfig lo utilizza per sincronizzare la configurazione tra i server.

apt-get -y install mysql-client mysql-server

Inserisci la nuova password per MySQL quando richiesta dall’installatore.

Vogliamo che MySQL ascolti su tutte le interfacce sul server master, non solo su localhost, quindi modifichiamo /etc/mysql/my.cnf e commentiamo la riga bind-address = 127.0.0.1:

vi /etc/mysql/my.cnf
[...]  
# Invece di skip-networking, il predefinito è ora ascoltare solo su  
# localhost, che è più compatibile e non è meno sicuro.  
#bind-address           = 127.0.0.1  
[...] 

Quindi riavvia MySQL:

/etc/init.d/mysql restart

Ora installa Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear e mcrypt come segue:

apt-get -y install apache2 apache2.2-common apache2-doc   apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5   php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli   php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth   php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo 

Vedrai la seguente domanda:

Server web da riconfigurare automaticamente: <– apache2

Quindi esegui il seguente comando per abilitare i moduli Apache suexec, rewrite, ssl, actions e include:

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

PureFTPd e quota possono essere installati con il seguente comando:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

Modifica /etc/fstab. Il mio appare così (ho aggiunto,usrquota,grpquota alla partizione con il punto di montaggio /):

vi /etc/fstab

| # /etc/fstab: informazioni statiche sul file system. # # proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

Per abilitare la quota, esegui questi comandi:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /

quotacheck -avugm
quotaon -avug

Installa vlogger, webalizer e awstats:

apt-get -y install vlogger webalizer awstats 

Installa Jailkit: Jailkit è necessario solo se desideri chrootare gli utenti SSH. Può essere installato come segue (importante: Jailkit deve essere installato prima di ISPConfig - non può essere installato successivamente!):

apt-get -y install build-essential autoconf automake1.9 libtool flex bison

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
tar xvfz jailkit-2.11.tar.gz
cd jailkit-2.11
./configure
make
make install
cd ..
rm -rf jailkit-2.11*

Installa fail2ban: Questo è opzionale ma raccomandato, perché il monitor di ISPConfig cerca di mostrare il log:

apt-get install fail2ban

Successivamente installeremo ISPConfig 3. Per ottenere l’URL di download dell’ultima versione stabile di ISPConfig 3, visita il sito web di ISPConfig: http://www.ispconfig.org/ispconfig-3/download/

Questo server è il server master nel nostro setup che esegue l’interfaccia del pannello di controllo ISPConfig. Per consentire agli altri MySQL istanze di connettersi al database MySQL su questo nodo durante l’installazione, dobbiamo aggiungere i record utente root di MySQL nel database master per ogni nome host e indirizzo IP del server slave. Il modo più semplice per farlo è utilizzare lo strumento di amministrazione basato sul web phpmyadmin che abbiamo già installato. Apri l’URL http://192.168.0.105/phpmyadmin in un browser web, accedi come utente root di MySQL ed esegui queste query MySQL:

CREATE USER ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Nei comandi sql sopra, sostituisci gli indirizzi IP ( 192.168.0.106 - 192.168.0.109) con gli indirizzi IP dei tuoi server e sostituisci mail.example.tld, db.example.tld, ns1.example.tld e ns2.example.tld con i nomi host dei tuoi server e myrootpassword con la password root desiderata.

Clicca sul pulsante ricarica permessi o riavvia MySQL. Quindi chiudi phpmyadmin.

Torna alla shell di server1.example.tld e scarica l’ultima versione stabile di ISPConfig 3:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Quindi avvia lo script di installazione:

php -q install.php

Seleziona la lingua (en,de) [en]: <– en
Modalità di installazione (standard,esperto) [standard]: <– esperto
Nome host completamente qualificato (FQDN) del server, ad es. server2.domain.tld [web.example.tld]: <– web.example.tld
Nome host del server MySQL [localhost]: <– localhost
Nome utente root di MySQL [root]: <– root
Password root di MySQL []: <– Inserisci qui la tua password root di MySQL
Database MySQL da creare [dbispconfig]: <– dbispconfig
Charset MySQL [utf8]: <– utf8
Questo server deve unirsi a un setup multiserver ISPConfig esistente (y,n) [n]: <– n
Configurare la posta (y,n) [y]: <– n
Configurare Jailkit (y,n) [y]: <– y
Configurare il server FTP (y,n) [y]: <– y
Configurare il server DNS (y,n) [y]: <– n
Configurare il server Apache (y,n) [y]: <– y
Configurare il server firewall (y,n) [y]: <–y
Installare l’interfaccia web di ISPConfig (y,n) [y]: <–y
Porta ISPConfig [8080]: <– 8080

Pulisci le directory di installazione:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.