Questo tutorial ti guiderà attraverso l'installazione della tua configurazione multiserver ISPConfig 3 con server dedicati per il pannello, web, DNS, posta e webmail. Sia il DNS che il server di posta avranno un server mirror per la ridondanza. Puoi facilmente aggiungere più server di un certo tipo in seguito.
Il programma di installazione automatico ufficiale di ISPConfig verrà utilizzato per configurare i server. Debian 10 sarà usato come sistema operativo. La guida è stata testata anche con Ubuntu 20.04.2.
Puoi leggere ulteriori informazioni sull'installazione automatica 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 . 1 mx2.example.com 10.0.64.15
ns1 ns1.example.com 10.0.64.16
ns2 ns2.example.com 10.0.64.17
webmail.8. webmail. 6 10.com >Useremo nomi host, indirizzi IP e intervalli IP di esempio. Assicurati di cambiarli di conseguenza nei tuoi comandi/configurazione.
Tutti i server si trovano 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 ed eventuale AAAA che punti al pubblico Indirizzo IP del tuo server. Ad esempio, se il nome host è panel.example.com e l'IP pubblico è 11.22.33.44, è necessario 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 principale
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é ciò causerà problemi in seguito con la configurazione della posta. Innanzitutto, dovresti controllare il nome host in /etc/hosts e modificarlo se 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 sarà simile al seguente (alcune righe potrebbero essere diverse, possono variare a seconda del provider di hosting):
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
# Questa riga deve essere modificata su ogni nodo con il nome server corretto:
127.0.1.1 panel.example.com panel
# Queste righe sono le lo stesso 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 mx2.example .com mx2
10.0.64.16 ns1.example.com ns1
10.0.64.17 ns2.example.com ns2
10.0.64.18 webmail.example.com webmail# Le seguenti righe sono auspicabili per IPv6 host capaci::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allrouterCome puoi vedere, abbiamo aggiunto anche i nomi host degli altri nostri server, in modo che possano comunicare sulla rete interna in un secondo momento.
Quindi modifica il file /etc/hostname:
nano /etc/nome hostDeve contenere solo la parte del sottodominio, nel nostro caso:
pannelloInfine, riavvia il server per applicare la modifica:
riavvio systemctlAccedi di nuovo e controlla se il nome host è corretto ora con questi comandi:
nome host
nome host -fL'output sarà così:
[email protetta]:~$ hostname
panel
[email protetta]:~$ hostname -f
panel.example.comOra possiamo eseguire l'autoinstaller per installare tutti i pacchetti necessari e ISPConfig:
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=systemDopo un po' vedrai:
ATTENZIONE! Questo script riconfigura il tuo server completo!
Dovrebbe essere eseguito su un server appena installato e tutta la configurazione corrente che hai eseguito molto probabilmente andrà persa!
Digita 'yes' se vuoi davvero continuare:Rispondi "sì" e premi invio. Il programma di installazione verrà avviato.
Al termine dell'installazione, ti mostrerà l'amministratore di ISPConfig e la password di root di MySQL in questo modo:
[INFO] La tua password di amministratore ISPConfig è:5GvfSSSYsdfdYC
[INFO] La tua password di root MySQL è:kkAkft82d!kafMwqxdtYsAssicurati di annotare queste informazioni, insieme al server a cui sono destinate, poiché ti serviranno in seguito.
2.2 Configurazione 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 i record utente root MySQL nel database master per ogni nome host e indirizzo IP del server slave.
Sul terminale, esegui
mysql -u root -pInserisci la tua password MySQL ed esegui i seguenti comandi:
CREA UTENTE 'root'@'10.0.64.13' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'10.0.64.13' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'10.0.64.14' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'10.0.64.14' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'10.0.64.15' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'10.0.64.15' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'10.0.64.16' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'10.0.64.16' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'10.0.64.17' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'10.0.64.17' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'10.0.64.18' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'10.0.64.18' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'web01.example.com' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'web01.example.com' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'mx1.example.com' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'mx1.example.com' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'mx2.example.com' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'mx2.example.com' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'ns1.example.com' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'ns1.example.com' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'ns2.example.com' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'ns2.example.com' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREA UTENTE 'root'@'webmail.example.com' IDENTIFICATO DA 'myrootpassword';
CONCEDI TUTTI I PRIVILEGI SU * . * A 'root'@'webmail.example.com' IDENTIFICATO DA 'myrootpassword' CON L'OPZIONE GRANT MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;Nei comandi SQL precedenti, sostituisci gli indirizzi IP (10.0.64.12 - 10.0.64.18) con gli indirizzi IP dei tuoi server, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com , ns2.example.com e webmail.example.com con i nomi host dei tuoi server e myrootpassword con la password di root desiderata (è buona norma utilizzare una password diversa per ogni host. Annotali, poiché ti serviranno in seguito durante l'installazione o l'aggiornamento dei server slave).
Al termine, puoi uscire da MySQL con:
ESCI;Ora puoi accedere a ISPConfig su https://panel.example.com:8080 con il nome utente admin e la password che il programma di installazione ti ha mostrato.
2.3 Configurazione del firewall
L'ultima cosa da fare è configurare il nostro firewall.
Accedi all'interfaccia utente di ISPConfig e vai su Sistema -> Firewall. Quindi fai clic su "Aggiungi nuovo record firewall".
Per il server del pannello, dobbiamo aprire le seguenti porte:
TCP:
22,80,443,8080,8081Non è necessario aprire porte UDP tramite l'interfaccia utente.
Apriremo anche la porta 3306, 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 è sparito):
ufw consente da 10.0.64.0/24 a qualsiasi porta 3306 proto tcpIl tuo pannello è ora configurato e pronto per l'uso.
Nel passaggio successivo, installeremo il server web.