Installazione di un Cluster Web, Email e di Database MySQL su Ubuntu 16.04 con ISPConfig 3.1

2 Dicembre 2018 0 Di Alessandro Scamporrino
Questo tutorial descrive l’installazione di un server Web, e-mail, database e server in cluster da utilizzare per la ridondanza, l’alta disponibilità per il bilanciamento del carico con il pannello di controllo ISPConfig 3. La replica MySQL Master / Master verrà utilizzata per replicare i database MySQL, verrà utilizzato Unison per sincronizzare /var/www (siti Web) e le mail verranno sincronizzate con Dovecot.

1. Note preliminari

In questa guida avremo un server master dove installeremo l’interfaccia web di gestione ISPConfig ed un server slave come mirror del server master.

Per installare il cluster, abbiamo bisogno di due server con un’installazione base di Ubuntu server 16.04 ed installato la stessa versione di ISPConfig.

Per l’installazione di Ubuntu seguire la guida: Installazione Base di Ubuntu Server 16.04.

In questo esempio i server avranno i seguenti hostnames ed IP:

Server Master

Hostname: server1.esempio.com
IP-Address: 192.168.0.1
IPv6-Address: 2018:f16::1

Server Slave

Hostname: server2.esempio.com
IP-Address: 192.168.0.2
IPv6-Address: 2018:f16::2

2. Installazione del Server Master

Andremo ad installare ISPConfig sul server Master. Se è già stato installato ISPConfig su questo server potete saltare l’installazione ma verificate che l’installazione sia aggiornata all’ultima versione.

Per installare ISPConfig sul server Master utilizzate la guida: Installazione di ISPConfig 3.1 su Ubuntu Server 16.04.

Aggiungere il server Slave nel file /etc/hosts:

nano /etc/hosts

Come esempio:

127.0.0.1       localhost
192.168.0.1     server1.esempio.com server1
2018:f16::1     server1.esempio.com server1
192.168.0.2     server2.esempio.com
2018:f16::2     server2.esempio.com

# The following lines are desirable for IPv6 capable hosts
::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

3. Preparazione del server Slave

Eseguire i passi dal 1 al 16 della guida Installazione di ISPConfig 3.1 su Ubuntu Server 16.04.

Non installare ISPConfig sul server Slave.

Aggiungere il server Master Server al file /etc/hosts:

nano /etc/hosts

Come esempio:

127.0.0.1       localhost
192.168.0.1     server1.esempio.com
2018:f16::1     server1.esempio.com
192.168.0.2     server2.esempio.com server2
2018:f16::2     server2.esempio.com server2

# The following lines are desirable for IPv6 capable hosts
::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

4. Login senza inserimento della password dal Server Master al Server Slave

Server Slave:

Abilitiamo temporaneamente il login root sul server Slave con password. Aprire /etc/sshd_config:

nano /etc/ssh/sshd_config

e cambiare:

PermitRootLogin without-password

con:

PermitRootLogin yes

riavviare il servizio ssh:

service ssh restart

Server Master:

Creare una coppia di chiavi privata/pubblica:

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): < Premere Invio >
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): < Premere Invio >
Enter same passphrase again: < Premere Invio >
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f3:d0:62:a7:24:6f:f0:1e:d1:64:a9:9f:12:6c:98:5a root@server1
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|           .     |
|          +      |
|       + *       |
|      E S +      |
|     o O @ .     |
|    .   B +      |
|       o o       |
|        .        |
+-----------------+

Importante: non inserire nessuna password o passphrase altrimenti il mirroring non funziona senza interazione umana!

Copiare la chiave sul server Slave:

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.2
The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established.
ECDSA key fingerprint is 25:d8:7a:ee:c2:4b:1d:92:a7:3d:16:26:95:56:62:4e.
Are you sure you want to continue connecting (yes/no)? < yes > (vi verrà mostrato solo se è la prima volta che vi collegate al server Slave) 
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.0.2's password: < Inserire la password di root del server Slave >

Provare il login:

ssh root@192.168.0.2

Controllare sul Server Slave di non avere altre chiavi non volute sul file /root/.ssh/authorized_keys:

cat /root/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBAPhiAexgEBexnw0rFG8lXwAuIsca/V+lhmv5lhF3BqUfAbL7e2sWlQlGhxZ8I2UnzZK8Ypffq6Ks+lp46yOs7MMXLqb7JBP9gkgqxyEWqOoUSt5hTE9ghupcCvE7rRMhefY5shLUnRkVH6hnCWe6yXSnH+Z8lHbcfp864GHkLDK1AAAAFQDddQckbfRG4C6LOQXTzRBpIiXzoQAAAIEAleevPHwi+a3fTDM2+Vm6EVqR5DkSLwDM7KVVNtFSkAY4GVCfhLFREsfuMkcBD9Bv2DrKF2Ay3OOh39269Z1rgYVk+/MFC6sYgB6apirMlHj3l4RR1g09LaM1OpRz7pc/GqIGsDt74D1ES2j0zrq5kslnX8wEWSHapPR0tziin6UAAACBAJHxgr+GKxAdWpxV5MkF+FTaKcxA2tWHJegjGFrYGU8BpzZ4VDFMiObuzBjZ+LrUs57BiwTGB/MQl9FKQEyEV4J+AgZCBxvg6n57YlVn6OEA0ukeJa29aFOcc0inEFfNhw2jAXt5LRyvuHD/C2gG78lwb6CxV02Z3sbTBdc43J6y root@server1.example.tld

Disabilitare il root-login con password. Aprire /etc/sshd_config:

nano /etc/ssh/sshd_config

e cambiare:

PermitRootLogin yes

con:

PermitRootLogin without-password

riavviare il servizio ssh:

service ssh restart

Effettuare il Logout dal Server Slave:

exit
logout
Connection to 192.168.0.2 closed.

Siamo ritornati sul Server Master.