giovedì 15 agosto 2013

OpenVpn per accesso remoto a più sedi contemporaneamente

Quando si hanno più sedi connesse con vpn site to site, si può avere la necessità di consentire l'accesso all'intera rete aziendale da un unico punto d'accesso. Un utente remoto dopo essersi connesso in VPN alla sede centrale può accedere alle risorse presenti in tutte le sedi dell'azienda passando attraverso le diverse vpn site to site.

In quest'articolo vedremo come realizzare questa configurazione utilizzando OpenVPN.
Per la nostra configurazione faremo riferimento allo schema riportato di seguito. Nel nostro esempio ci limiteremo ad utilizzare due sedi ma la configurazione può essere estesa ripetendo le operazioni per ogni sede remota.


Nell'articolo non tratteremo la configurazione della vpn site to site che è stata già descritta in Creare una VPN Site to Site con OpenVPN, anche la VPN per l'accesso remoto non verrà trattata perchè descritta in Configurare OpenVPN Server su pfSense.

Nella nostra configurazione tutti i tunnel VPN sono di tipo OpenVPN. Il nostro obiettivo è far in modo che il Client che si connette in OpenVPN alla Sede A possa accede liberamente a tutte le risorse di Sede A e Sede B.

In questa configurazione abbiamo già tutti i tunnel stabiliti e funzionanti, ora si tratta di consentire ai pacchetti di circolare liberamente saltando da un tunnel all'altro per raggiungere ogni host della nostra rete. Il ruolo chiave lo giocano le tabelle di routing che dovranno contenere tutte le informazioni necessarie a rendere raggiungibili i vari segmenti della rete. 

La configurazione si compone di due parti, la prima in cui istruiamo i client VPN su quali siano le reti raggiungibili e la seconda in cui istruiamo gli host remoti su come istradare i pacchetti per raggiungere i client VPN.

Per prima cosa modifichiamo la configurazione della VPN di accesso remoto:
  1. Selezioniamo VPN > OpenVPN;
  2. Clicchiamo su Edit per modificare la configurazione OpenVPN di accesso remoto;
  3. Nella sezione Advanced configuration inseriamo una rotta statica per ogni sede remota, nel nostro caso  push "route 192.168.2.0 255.255.255.0";
In questo modo abbiamo istruito ogni client VPN sulle sottoreti raggiungibili tramite la connessione VPN.

Ora modifichiamo leggermente la gestione delle VPN site to site:
  1. Selezioniamo Interfaces > Assign ora clicchiamo sul Add per aggiungere una nuova interfaccia;
  2. In corrispondenza della voce Network Port della nuova interfaccia selezioniamo la nostra connessione OpenVPN;
  3. Riportiamo sulla nuova interfaccia le rules che avevamo creato per la connessione OpenVPN;
Questa modifica è fondamentale per le sedi remote mentre per la sede centrale può essere tralasciata anche se per omogeneità io preferisco applicarla a tutte le sedi.
Dopo questa modifica abbiamo la facoltà di creare delle rotte statiche che abbiano come gateway l'ip di terminazione della nostra VPN. Queste operazioni andranno compiute su tutte le sedi remote, nel nostro caso la Sede B.
  1. Selezioniamo System > Routing > Routes e clicchiamo su Add per aggiungere una nuova route statica;
  2. Impostiamo come Destination Network la sottorete utilizzata per il tunnel della vpn di accesso remoto che nel nostro caso è 10.9.0.0/24;
  3. Selezioniamo come gateway quello relativo alla connessione vpn site to site 10.8.0.1;
  4. Clicchiamo su Save.
Questa configurazione consente agli host della Sede B di poter rispondere ai pacchetti provenienti dai client connessi alla Sede A in OpenVPN. Senza questa rotta i pacchetti di risposta inviati dagli host della Sede B non verrebbero correttamente instradati.

A questo punto la nostra configurazione è completa, per verificare che tutto stia funzionando correttamente possiamo connetterci in OpenVPN alla Sede A ed effettuare un trace route verso un host della sede B (Attenzione l'host non deve essere il firewall). I 3 hops del nostro trace route saranno simili a questo:

1   ...   10.9.0.1 (pfSense Sede A)
2   ...   10.8.0.2 (pfSense Sede B)
3   ...   192.168.2.x (Host Sede B)

Come avrete notato i primi due hop sono rispettivamente le terminazioni della VPN di accesso remoto e della VPN site to site mentre il terzo è l'indirizzo dell'host verso cui abbiamo effettuato il nostro trace route.

La configurazione che abbiamo appena visto può essere ripetuta per aggiungere altre sedi remote.
Posta un commento