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 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 Tunneling incapsulamento multiprotocollo dei dati
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 L2F L2TP
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 client-to-site

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
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 firewall multifunzione
- 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
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
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
Per fare ciò andiamo nella tab "Client" e clicchiamo su "Add" per creare un nuovo utente client
Bisogna indicare il "Client name" e l' "Address pool address pool "utenti" e "admin"
Dopo aver creato il nuovo utente, dobbiamo provvedere ad inviare il client software all'utente Il client software viene generato automaticamente da Untangle
Per distribuire il client all'utente cliccare sul bottone "Distribute Client
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