Configurazione Server · 6 min read · Sep 08, 2025

Configurazione perfetta di ISPConfig Multiserver su Ubuntu 24.04 e Debian 12

Questo tutorial ti guiderà nell’installazione della tua configurazione multiserver ISPConfig 3 con server dedicati per il pannello, web, DNS, mail e webmail. Il server DNS avrà un server mirror per ridondanza. Puoi facilmente aggiungere più server di un certo tipo in seguito.

L’autoinstallatore ufficiale di ISPConfig sarà utilizzato per configurare i server. Debian 12 sarà utilizzato come sistema operativo. La guida è stata testata anche con Ubuntu 24.04.

L’autoinstallatore ha varie opzioni da riga di comando per ottimizzare la configurazione.

Puoi visualizzare tutti gli argomenti con:

wget -O - https://get.ispconfig.org | sh -s -- --help

Puoi leggere di più sull’autoinstallatore qui.

1. Nota preliminare

Questi saranno gli host che stiamo installando:

host         FQDN                     IP  
panel       panel.example.com       10.0.64.12  
web01       web01.example.com       10.0.64.13  
mx1         mx1.example.com         10.0.64.14  
ns1         ns1.example.com         10.0.64.15  
ns2         ns2.example.com         10.0.64.16  
webmail     webmail.example.com     10.0.64.17

Utilizzeremo nomi host, indirizzi IP e intervalli IP di esempio. Assicurati di cambiarli di conseguenza nei tuoi comandi/configurazione.

Tutti i server sono sulla stessa rete privata ma hanno il proprio IP pubblico. Se i tuoi server non hanno una rete locale condivisa, utilizza i loro indirizzi IPv4 pubblici.

Prima di iniziare l’installazione di un server, imposta un record A e un eventuale record AAAA che punti all’indirizzo IP pubblico del tuo server. Ad esempio, se il nome host è panel.example.com e l’IP pubblico è 11.22.33.44, dovresti impostare un record A per panel.example.com che punta a 11.22.33.44. Ogni server dovrebbe avere il proprio IP pubblico e nome host. **

2. Installazione del server master

Accedi come root o esegui

su -

per diventare l’utente root sul tuo server prima di procedere. IMPORTANTE: Devi usare ‘su -‘ e non solo ‘su’, altrimenti la tua variabile PATH è impostata in modo errato da Debian.

2.1 Configurare il nome host e gli host

Il nome host del tuo server dovrebbe essere un sottodominio come “panel.example.com”. Non utilizzare un nome di dominio senza una parte di sottodominio come “example.com” come nome host poiché questo causerà problemi in seguito con la configurazione della tua mail. Prima, dovresti controllare il nome host in /etc/hosts e cambiarlo quando necessario. La riga dovrebbe essere: “Indirizzo IP - spazio - nome host completo incl. dominio - spazio - parte del sottodominio”. Per il nostro nome host panel.example.com, il file dovrebbe apparire così (alcune righe potrebbero essere diverse, può variare a seconda del fornitore di hosting):

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost  
# Questa riga dovrebbe essere cambiata su ogni nodo al nome server corretto:  
127.0.1.1 panel.example.com panel  
# Queste righe sono le stesse su ogni nodo:
10.0.64.12 panel.example.com panel  
10.0.64.13 web01.example.com web01  
10.0.64.14 mx1.example.com mx1  
10.0.64.15 ns1.example.com ns1  
10.0.64.16 ns2.example.com ns2  
10.0.64.17 webmail.example.com webmail

# Le seguenti righe sono desiderabili per host compatibili con IPv6
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Come puoi vedere, abbiamo aggiunto anche i nomi host dei nostri altri server, in modo che possano comunicare sulla rete interna in seguito.

Poi modifica il file /etc/hostname:

nano /etc/hostname

Dovrebbe contenere solo la parte del sottodominio, nel nostro caso:

panel

Infine, riavvia il server per applicare la modifica:

systemctl reboot

Accedi di nuovo e controlla se il nome host è corretto ora con questi comandi:

hostname  
hostname -f

L’output dovrebbe essere simile a questo:

root@panel:~$ hostname  
panel  
root@panel:~$ hostname -f  
panel.example.com

Ora possiamo eseguire l’autoinstallatore per installare tutti i pacchetti necessari e ISPConfig:

wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=system

Dopo un po’ di tempo, vedrai:

WARNING! Questo script riconfigurerà il tuo server completo!  
Dovrebbe essere eseguito su un server appena installato e tutta la configurazione attuale che hai fatto andrà molto probabilmente persa!  
Digita 'yes' se vuoi davvero continuare:

Rispondi “yes” e premi invio. L’installatore ora inizierà.

Quando l’installatore è terminato, ti mostrerà la password di amministrazione di ISPConfig e la password root di MySQL in questo modo:

[INFO] La tua password di amministrazione ISPConfig è: 5GvfSSSYsdfdYC  
[INFO] La tua password root di MySQL è: kkAkft82d!kafMwqxdtYs

Assicurati di annotare queste informazioni, insieme al server per cui sono, poiché ne avrai bisogno in seguito.

2.2 Impostazione degli utenti MySQL remoti per i nostri server slave

Accederemo a MySQL per consentire agli altri server di connettersi al database ISPConfig su questo nodo durante l’installazione, aggiungendo record utente root di MySQL nel database master per ogni nome host e indirizzo IP del server slave.

Nel terminale, esegui

mysql -u root -p

Inserisci la tua password MySQL e poi esegui i seguenti comandi:

CREATE USER 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.13' 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'@'10.0.64.14' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.14' 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'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' 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'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' 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'@'10.0.64.16' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.16' 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'@'web01.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'web01.example.com' 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'@'mx1.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mx1.example.com' 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.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns1.example.com' 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.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns2.example.com' 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'@'webmail.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'webmail.example.com' 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 (10.0.64.12 - 10.0.64.16) con gli indirizzi IP dei tuoi server, web01.example.com, mx1.example.com, ns1.example.com, ns2.example.com e webmail.example.com con i nomi host dei tuoi server e myrootpassword con la password root desiderata (è buona pratica utilizzare una password diversa per ogni host. Annotale, poiché ne avrai bisogno in seguito quando installerai o aggiornerai i tuoi server slave).

Quando questo è fatto, puoi uscire da MySQL con:

EXIT;

Ora puoi accedere a ISPConfig su https://panel.example.com:8080 con il nome utente admin e la password che l’installatore ti ha mostrato.

2.3 Impostazione del firewall

L’ultima cosa da fare è impostare il nostro firewall.

Accedi all’interfaccia di ISPConfig e vai su Sistema -> Firewall. Poi clicca su “Aggiungi nuovo record firewall”.

Per il server del pannello, dobbiamo aprire le seguenti porte:

TCP:

22,80,443,8080,8081

Nessuna porta UDP deve essere aperta tramite l’interfaccia.

Apriremo anche la porta 3306, che è utilizzata per MySQL, ma solo dalla nostra rete locale per motivi di sicurezza. Per farlo, esegui il seguente comando dalla CLI, dopo che la modifica dal pannello ISPConfig è stata propagata (quando il punto rosso è scomparso):

ufw allow from 10.0.64.0/24 to any port 3306 proto tcp

Il tuo pannello è ora configurato e pronto per l’uso.

Nel prossimo passaggio, installeremo il server web.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.