Creare una VPN LAN-to-LAN tra sedi utilizzando due host Zeroshell

Questa guida rapida illustrerà come configurare un tunnel VPN LAN-to-LAN tra sedi utilizzando due host Zeroshell (distribuzione che incorpora il noto software opensource OpenVPN). In questo caso verrà implementata un’autenticazione solo mediante certificati digitali X.509.

Prima di poter configurare la VPN dovranno essere soddisfatte queste condizioni:

  • Ogni host dovrà avere due schede di rete: una per la rete interna ed una per la rete esterna (internet). Quindi, ovviamente, i sistemi Zeroshell funzioneranno anche da gateway per le due reti locali.
  • Le reti interne delle due sedi dovranno avere un diverso range di indirizzi in modo da poter configurare correttamente le route statiche (nell’esempio sono 192.168.1.x e 192.168.2.x).
  • Nel caso venga utilizzato un modem con NAT integrato per la connessione internet delle sedi, sarà necessario prima creare delle regole di forward all’interno della configurazione di quest’ultimo. Ogni host dovrà essere raggiungibile dall’esterno utilizzando la porta scelta per le comunicazioni della VPN.
  • Se gli indirizzi IP pubblici delle due connessioni internet sono di tipo dinamico (non consigliato) sarà necessario prima configurare un sistema di DNS dinamico in modo da rendere sempre raggiungibili gli host.

Esempio di configurazione:

vpn
Nota: In questo caso l’IP 192.168.0.1 è l’indirizzo assegnato alla scheda di rete esterna di entrambi gli host Zeroshell (rete del modem che ha invece come IP 192.168.0.254). Gli IP 10.10.10.x che vedremo in seguito sono indirizzi che verranno assegnati solo alle interfacce VPN virtuali non alle schede di rete fisiche di Zeroshell.

Configurazione

1) Esportare il certificato della CA dall’host della sede A.  Nella configurazione dell’host A, andare in X.509 CA > Setup > Export, quindi salvare il file “CA.pem”.

2) Importare il certificato dell’host A nell’host B. Nella configurazione dell’host B, andare in X.509 CA > Setup > Importing CA from external source .
Selezionare il file “CA.pem” precedentemente salvato sia per il campo Private Key che per Certificate e fare click su Import. Fare click su OK sull’avviso di importazione che verrà visualizzato.

importca
Andare in X.509 CA > Imported, selezionare il file CA.pem precedentemente salvato per entrambe le voci e fare click su Import.
importca2

3) Nell’host A andare in VPN > LAN-to-LAN e fare click su New VPN
In Description inserire una descrizione generica della connessione VPN.
In Remote Host inserire l’indirizzo IP pubblico della sede dove si trova l’host B. Ovviamente eventuali NAT dovranno essere già stati configurati per instradare correttamente le richieste dalla porta all’host Zeroshell (nel nostro caso UDP 1195) .
Selezionare su Role la voce Client.
Lasciare Remote CN vuoto e come Gateway lasciare selezionato il Default gateway.
In X.509 Host Certificate lasciare la Local CA con il certificato dell’host.

convpnconn

Confermare e, in corrispondenza della nuova connessione VPN (solitamente VPN00), fare click sul pulsante Add IP . Inserire un indirizzo non incluso nel range delle reti esterne o interne (servirà solo per le comunicazioni del tunnel), ad esempio 10.10.10.1 con subnetmask 255.255.255.0.

vpnindirizzoip

4) Nell’host B andare in VPN > LAN-to-LAN e fare click su New VPN.
In Description inserire una descrizione generica della connessione VPN.
In Remote Host inserire l’indirizzo IP pubblico della sede dove si trova l’host A. Anche in questo caso eventuali NAT dovranno essere già stati configurati per inoltrare correttamente il traffico proveniente dalla porta all’host Zeroshell.
Selezionare su Role la voce Server.
Lasciare Remote CN vuoto e come Gateway lasciare selezionato il Default gateway.
In X.509 Host Certificate selezionare la voce Imported e selezionare dalla lista il certificato CA dell’host A precedentemente importato.

vpnhostb

Confermare poi, in maniera analoga a quanto fatto sull’host A, fare click sul pulsante Add IP in corrispondenza della nuova connessione VPN (solitamente VPN00) ed inserire un indirizzo non incluso nel range delle reti esterne o interne (servirà solo per le comunicazioni del tunnel). Ad esempio 10.10.10.2 con subnetmask 255.255.255.0.

5) A questo punto in breve tempo la connessione VPN tra le sedi dovrebbe riuscire. Se lo stato della connessione rimane sempre su “Connecting to remote peer ” verificare la raggiungibilità degli host Zeroshell da internet e lo stato della porta della VPN.

connessionevpn

Se si vuole abilitare il NAT per la connessione tra le sedi, su entrambi gli host andare in Router > NAT e spostare in NAT Enabled Interfaces la nuova connessione VPN (solitamente VPN00).

6) Ora è necessario impostare delle route statiche per permettere la raggiungibilità della rete interna dall’altro lato del tunnel.

Nell’host A andare in Router e fare click sul pulsante Add per aggiungere una route statica.
In Destination inserire l’indirizzo della rete interna dell’host B, ad esempio 192.168.2.0, mentre in Gateway impostare l’indirizzo IP dell’interfaccia VPN dell’host B, ad esempio 10.10.10.2

routestatiche

Fare la stessa cosa nell’host B, ovvero andare in Router e fare click sul pulsante Add per aggiungere una route statica.
In Destination inserire l’indirizzo della rete interna dell’host A, ad esempio 192.168.1.0, mentre in Gateway impostare l’indirizzo IP dell’interfaccia VPN dell’host A , ad esempio 10.10.10.1

7) Testare il corretto funzionamento eseguendo il ping di un client presente nell’altra rete interna.

Configurare eventualmente regole firewall e di QoS per migliorare la sicurezza e le prestazioni del collegamento VPN.

Taggato su: ,

2 interventi su “Creare una VPN LAN-to-LAN tra sedi utilizzando due host Zeroshell

    1. f.giammarini Autore

      Probabilmente nel campo “Destination” hai inserito in maniera non corretta l’indirizzo della rete. In quel campo non va inserito l’indirizzo IP dell’host Zeroshell, ma proprio l’indirizzo della rete.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *