Quale è la differenza tra VPN di tipo LAN-to-LAN (o site-to-site) e VPN ti tipo host-to-LAN? Le Virtual Private Network di tipo LAN-to-LAN sono collegamenti cifrati attraverso Internet che collegano network geograficamente distanti. Tali collegamenti trovano spazio in organizzazioni con sedi distribuite sul territorio dove l’utilizzo di linee di comunicazione dati dedicate risulterebbero troppo costose. Le VPN di tipo host-to-LAN, invece, collegano in maniera criptata singoli client ad una LAN. Tale esigenza è diventata sempre più sentita man mano che si è andato diffondendo l’utilizzo di firewall che impediscono l’utilizzo dall’esterno dei servizi più sensibili delle intranet aziendali: facendo uso delle VPN host-to-LAN, un impiegato che è fuori sede può raggiungere tutti i servizi della sua intranet come se vi fosse fisicamente connesso.
Cosasi intende per VPN Passthrough e IPSec NAT-T? Spesso, i protocolli con cui si costruiscono le VPN, come per esempio IPSec, criptano il payload dei pacchetti IP e autenticano gli stessi mediante un checksum sull’header. Un router che applica il NAT o il PAT sui pacchetti deve poter ispezionare il contenuto del payload, poiché in questo vi trova le porte TCP/UDP con cui tener traccia delle connessioni nella tabella di NAT. Ovviamente se il payload giunge cifrato tale prerequisito viene meno. D’altra parte, i router NAT/PAT cambiano l’header dei pacchetti, poiché devono tradurre gli indirizzi sorgente/destinazione. Ciò fa fallire l’autenticazione di IPSec. A soluzione di questi problemi, nel tentativo di utilizzare le VPN anche da reti sottoposte a NAT e port forwarding, si trovano sui router anche di fascia economica, tecniche diVPN Passthrough. Di questi metodi, non esiste uno standard e possono variare da un modello di router all’altro. Il NAT Traversal o più brevemente NAT-T, invece, rappresenta uno standard e risolve i problemi di sopra incapsulando i pacchetti già criptati da IPSec dentro un tunnel UDP sulla porta 4500. Il NAT Traversal, a differenza dei vari VPN Passthrough, si applica sui due endpoint della VPN (per es. il Road Warrior e il gateway VPN). ZeroShell, se abilitato, è in grado di negoziare con i client L2TP/IPSec l’utilizzo del NAT-T.
VPN LAN-to-LAN
Honotato che ZeroShell crea le VPN LAN-to-LAN tramite dei tunnel criptati con SSL in cui incapsula trame ethernet invece di utilizzare il ben più noto protocollo IPSec. Perché questa scelta? Perché IPSec incapsula solo pacchetti, IP mentre gli altri protocolli che poggiano su layer 2 del modello ISO/OSI non vengono trasportati da una LAN all’altra. L’idea invece di incapsulare all’interno di un tunnel SSL le trame ethernet, permette di pensare alle VPN site-to-site come ad un cavo di rete virtuale, che attraversando Internet, collega due posti remoti in layer 2. Trattandosi a tutti gli effetti di una connessione ethernet, con caratteristiche simili a quelle di un cavo che collega due switch locali, qualsiasi protocollo può essere trasportato, comprese le VLAN 802.1q.
Seè vero che le VPN site-to-site di ZeroShell sono a tutti gli effetti simili ad un collegamento ethernet, posso mettere in bridge una o più VPN con una o più interfacce ethernet? Sì, puoi farlo. Il risultato può essere pensato come uno switch virtuale di livello 2, che si estende attraverso Internet, ma le cui porte, anche se distanti migliaia di chilometri, appartengano allo stesso oggetto switch hardware.
La mia organizzazione è costituita da una sede centrale che possiede un collegamento a Internet molto veloce e da sedi periferiche che si connettono a Internet tramite linee ADSL più lente. Vorrei che le sedi periferiche siano connesse a quella centrale mediante VPN site-to-site, ma la lentezza delle linee ADSL rappresenta un collo di bottiglia. Posso aggregare più connessioni ADSL per ottenere un aumento di banda e di affidabilità? Sì, lo puoi fare utilizzando la funzione di VPN Bonding di ZeroShell. Puoi cioè, per ogni collegamento ADSL creare una Virtual Private Network con la sede centrale ed aggregarle in un’unica interfaccia Bond. Il traffico verrà distribuito in Round-Robin sulle VPN componenti il Bond ottenendo così un incremento di banda proporzionale al numero di linee ADSL coinvolte. Nota infine, che oltre al load balancing di Virtual Private Network, i VPN Bond garantiscono anche il fault tolerance facendo in modo, che se uno dei collegamenti viene meno, il traffico venga ribilanciato in pochi secondi sui rimanenti funzionanti.
Zeroshellimplementa le Virtual Private Network LAN-to-LAN incapsulando trame ethernet all’interno di un tunnel autenticato e cifrato con SSL facendo uso di certificati host X.509. Ma sono costretto ad utilizzare un box ZeroShell su entrambi gli endpoint della VPN? No, in realtà ZeroShell utilizza per fare le VPN site-to-site il software open source OpenVPN e quindi un qualsiasi sistema su cui tale software sia supportato (Linux, Windows, Mac OS X, FreeBSD, NetBSD, OpenBSD e Solaris), configurato opportunamente può funzionare da gateway VPN compatibile con ZeroShell.
Honotato che OpenVPN può essere configurato per utilizzare i device TUN oppure i device TAP. Di cosa si tratta? quale dei due tipi di dispositivo è quello usato da ZeroShell? I dispositivi TUN/TAP sono dei driver che permettono a processi che girano in userspace, scrivendo e leggendo dal device a carattere /dev/net/tun, di comunicare con il kernel e di emulare delle interfacce di rete. In particolare i dispositivi TUN creano interfacce di rete point-to-point, mentre i dispositivi TAP creano interfacce di rete ethernet. È ovvio che ZeroShell, dovendo incapsulare trame ethernet, configura OpenVPN per utilizzare dispositivi TAP.
VPN Host-to-LAN
Zeroshell implementa le Virtual Private Network Host-to-LAN tramite il protocollo standardizzato L2TP/IPSec. Come mai non si è utilizzato anche in questo caso OpenVPN? Nel caso di Virtual Private Network Host-to-LAN, in cui il gateway VPN deve poter connettere i client dei cosiddetti Road Warrior, cioè di quegli utenti che pur trovandosi fuori dalla loro sede vogliono comunque poter accedere alle risorse della propria LAN come se vi fossero fisicamente connessi, si è preferito utilizzare un protocollo standard come L2TP/IPSec perché questo nella maggior parte dei Sistemi Operativi non richiede l’installazione sui client di software di terzi. OpenVPN avrebbe invece richiesto l’installazione di un client esterno. Non è comunque escluso, anzi è molto probabile, che le prossime release di ZeroShell permettano anche l’uso di OpenVPN come gateway VPN Host-to-LAN.
Ho configurato Windows XP per effettuare una VPN L2TP/IPSec verso un gateway VPN ZeroShell. Tuttavia, quando tento di attivare la VPN, Windows XP mi avverte che non è presente alcun certificato con cui poter stabilire la connessione IPSec. Da cosa dipende? Il protocollo L2TP/IPsec è la combinazione di due protocolli: il primo è il ben noto IPSec con cui viene stabilito un tunnel IP criptato tra il client e il gateway VPN; il secondo e il protocollo L2TP (Layer 2 Tunnel Protocol) che incapsulato nel primo trasporta i dati dell’utente. L2TP viene autenticato con username e password (Kerberos 5) appartenenti all’utente che vuole stabilire la connessione. IPSec invece, affinché possa mutuamente autenticare la macchina client e il gateway VPN, necessita che entrambi dispongano di un certificato X.509 e della relativa chiave privata. Si noti che, per un client Windows, il certificato non deve far parte dei certificati personali dell’utente, ma bensì il certificato deve appartenere all’account del computer e quindi memorizzato dall’amministratore.
Comments are closed.