Una VPN gratis con Untangle
Un tipico problema in ambito network è rappresentato dalla necessità di collegare tra loro sedi distribuite geograficamente sul territorio, anche a grandi distanze, rendendo disponibili dei servizi come se fossero sulla stessa LAN. L'esempio classico è quello dell'azienda che possiede una sede centrale e delle sedi territoriali remote. Esistono vari modi per collegare le sedi tra loro (posa di fibra ottica, ponti radio, linee punto-punto, etc.): il problema principale è che sono quasi tutti metodi non proprio economici e, in ogni caso, risolvono solo il problema della connettività.
Ci sono però altre questioni che vanno affrontate e che riguardano la necessità di garantire la sicurezza del canale di trasmissione, l'efficienza delle prestazioni, l'affidabilità e, non ultimo, l'aspetto dei costi. In uno scenario simile, la soluzione è rappresentata dalla creazione di una VPN (Virtual Private Network).
Un po' di teoria
La VPN è un collegamento a livello 3 (Network) stabilito ed effettuato tra due o più reti LAN attraverso una rete pubblica che non deve essere necessariamente Internet. Una VPN, in pratica, è una rete privata, costituita da connessioni logiche "virtuali". Attraverso tali connessioni la VPN:
- Mette in comunicazione siti remoti geograficamente distribuiti
- Gestisce utenti che condividono le stesse politiche di accesso e sicurezza, anche se appartenenti a reti distinte
- Viene veicolata attraverso una infrastruttura IP pubblica
Una VPN, di per sè, non costituisce un canale sicuro: lo diventa quando adotta protocolli che provvedono a cifrare il traffico in transito. Oltre alla cifratura, una VPN sicura deve prevedere nei suoi protocolli dei meccanismi che impediscano violazioni della sicurezza, come ad esempio il furto dell'identità digitale o l'alterazione dei messaggi. Le reti costruite utilizzando la criptazione dei dati sono chiamate Secure VPN.
La particolarità di una rete VPN è dunque quella di collegare due o più reti private rendendo la rete pubblica totalmente trasparente e creando il cosiddetto tunnel VPN che simula, quindi, un collegamento diretto. Il Tunneling compie un incapsulamento multiprotocollo dei dati. Questo termine significa che i pacchetti, anche se sono di protocolli differenti come ad esempio IP, Appletalk, IPX, NetBeui e via dicendo, una volta giunti all’entrata del tunnel vengono inseriti nuovamente all'interno di un secondo pacchetto IP dal protocollo di tunneling e vengono spediti sulla rete con un nuovo header IP e così trasportati verso l'endpoint del tunnel . Una volta giunti alla fine del tunnel avviene il processo contrario: il pacchetto IP complessivo viene "spacchettato" allo stato iniziale e instradato verso la sua destinazione.
Naturalmente, le aziende e gli utenti remoti devono utilizzare programmi software specifici a ciascun estremo del "tunnel" per poter crittografare e decrittografare i dati con lo stesso formato. Nel modello di trasmissione viene spesso aggiunta una fase di compressione dei dati che ha lo scopo di evitare che la rete si saturi a causa dell'elevato numero di pacchetti crittografati.
Esistono vari protocolli con livelli di protezione diversi:PPTP (Point-to-Point Tunneling Protocol), L2F (Layer Two Forwarding), L2TP (Layer Two Tunneling Protocol) e IPSec. I protocolli PPTP e IPSec offrono il livello di protezione più elevato.
Il protocollo PPTP permette di incapsulare i pacchetti dati in un datagramma IP al fine di creare una connessione punto-punto. In questo caso, i dati vengono protetti a due livelli poiché i dati sulla rete locale (come gli indirizzi dei PC) vengono incapsulati in un messaggio PPP che è a sua volta incapsulato in un messaggio IP. IPSec invece offre tre moduli (Authentication Header, Encapsulating Security Payload e Security Association) che ottimizzano la protezione, garantendo la riservatezza, l'integrità e l'autenticazione dei dati. Lo scopo del presente articolo, però, non è certamente quello di presentare una trattazione esaustiva sulle VPN, per cui per maggiori dettagli sulla materia si rimanda alla miriade di risorse disponibili in Rete.
Dal punto di vista topologico è possibile costruire VPN sia in modalità site-to-site che client-to-site simultaneamente. La modalità site-to-site consente la comunicazione da sedi geograficamente separate (ad es. una sede centrale e i suoi uffici periferici).
La modalità client-to-site permette la comunicazione di un dipendente (il classico "road warrior", cioè l'agente) alla VPN aziendale dall'esterno di essa.
Costruiamo la "nostra" VPN
Esistono sul mercato diverse soluzioni, sia commerciali che Open Source, per la realizzazione di una VPN. La scelta dipende da diversi fattori tra cui:
- volontà di costruire una VPN "proprietaria", da gestire internamente, oppure affidarne sia la realizzazione che la gestione in outsourcing;
- livelli di servizio (SLA) da assicurare all'utenza
- competenze disponibili internamente per la gestione ordinaria
- budget disponibile
Esistono anche VPN "in affitto" (come ad esempio Hamachi di LogmeIn) che si possono creare molto facilmente e velocemente, la cui gestione però, una volta contrattualizzati gli SLA, è a completa discrezione del service provider.
In questo articolo presentiamo una soluzione basata esclusivamente su free software, in grado di consentire la realizzazione di una semplice VPN aziendale. Il software utilizzato è Untangle. Untangle è essenzialmente un firewall multifunzione, dotato, già nella versione "light" (cioè gratuita) di una serie di applicazioni "free" tra cui
- Web Filter
- Virus Blocker
- Spam Blocker
- Attack Blocker
- Phish Blocker
- Spyware Blocker
- Protocol Control
- Captive Portal
- Firewall
- Intrusion Prevention
- OpenVPN
- Reports
Come si vede dai nomi dei moduli, Untangle contiene già al suo interno la possibilità di comportarsi come "bastion host", intercettando una serie di minacce (virus, spam, phishing, spyware, etc.) provenienti dalla rete. Esistono inoltre vari moduli a pagamento per funzioni avanzate, come Intrusion Prevention, Policy Manager, WAN Balancer e altri che possono essere acquistati separatamente sulla base delle singole esigenze.
Dal punto di vista architetturale, Untangle può agire direttamente come router
oppure può essere collocato tra il router e la LAN, configurandolo in modalità "transparent bridge", come nel nostro caso.
Questa scelta va fatta già in fase di installazione, agendo sulle interfacce interna ed esterna, ad esempio impostando il valore del "Config Type" dell'interfaccia interna (Config-->Networkig-->Interfaces-->edit) a "bridge".
Oltre alle funzionalità attivabili e descritte nell'elenco di cui sopra, l'applicazione che ci interessa ai fini della nostra realizzazione è OpenVPN. Si tratta effettivamente del noto software Open Source per la realizzazione di reti private virtuali, ma integrato come modulo nella suite Untangle e quindi gestibile graficamente. Una volta installato il modulo OpenVPN dal menu "Apps" laterale, possiamo passare a configurarlo e, come prima operazione, dobbiamo decidere se configurarlo come VPN Server o VPN Client. Durante tale fase, inoltre, verrà chiesto di generare un certificato digitale che il VPN Server utilizzerà per cifrare le connessioni.
Nella prima modalità (Server) gli utenti e le reti remote possono connettersi ed accedere ai servizi messi a disposizione, mentre nella seconda (Client), il server OpenVPN dialogherà direttamente con altri server OpenVPN "conosciuti"
noi stiamo descrivendo il primo caso, più semplice e immediato da configurare, in cui la VPN è del tipo "hub and spoke", con un centro presso cui sono disponibili i servizi e una "periferia" (costituita dalle reti o dagli utenti remoti) che utilizza questi servizi, mentre nel secondo caso bisogna definire tanti VPN Server quante sono le sedi che esportano servizi da rendere disponibili a tutta la VPN. A questo punto possiamo passare alla generazione dei client che si connetteranno al VPN Server appena configurato
Per fare ciò andiamo nella tab "Client" e clicchiamo su "Add" per creare un nuovo utente client. Ecco la finestra che apparirà
Bisogna indicare il "Client name" e l' "Address pool" (e ovviamente abilitarlo) che bisogna aver creato in precedenza dalla tab Advanced. Nel nostro caso abbiamo creato gli address pool "utenti" e "admin" ad ognuno dei quali il sistema assegna automaticamente una subnet IP diversa, come si vede in figura.
Dopo aver creato il nuovo utente, dobbiamo provvedere ad inviare il client software all'utente stesso per consentirgli di installarlo sul computer da cui intende connettersi alla VPN aziendale. Il client software viene generato automaticamente da Untangle e contiene sia il file di configurazione sia il certificato digitale generato dalla Certification Authority interna ad OpenVPN, oltre alla GUI di OpenVPN e a tutti i componenti software necessari ad installare ed eseguire il client.
Per distribuire il client all'utente cliccare sul bottone "Distribute Client": apparirà una schermata in cui si chiede se inviarlo via mail all'utente oppure scaricarlo direttamente per poi salvarlo magari su auna pendrive e consegnarlo "a mano" all'utente, come mostrato in figura.
Nel caso di invio tramite mail, nel messaggio di posta elettronica sarà presente un link da cui scaricare ed installare (tramite un normale "setup.exe") il client già preconfigurato. A questo punto il processo si è concluso, per cui sarà necessario passare alla configurazione dei servizi da rendere disponibili tramite la VPN e relative modalità di accesso. Un'ultima osservazione: Untangle lavora sulla porta UDP 1194, che bisogna provvedere ad aprire sul gateway.