Introduzione
L’esperienza di laboratorio prevede la configurazione di una semplice VPN utilizzando due firewall Zyxel: lo Zywall 2 Plus e lo Zywall 5. Come seconda parte, invece, l’instaurazione di un collegamento RAS tra due comuni client Windows tramite la rete Internet.
VPN: Virtual Private Network
VPN: teoria
Cos’è una VPN
VPN, acronimo di Virtual Private Network, è 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. La particolarità di una rete VPN è quella di collegare appunto due o più reti private rendendo la rete pubblica totalmente trasparente creando il cosìdetto tunnel VPN simulando, quindi, un collegamento diretto. Oltre a questo, tutti i dati che passano nella VPN vengono criptati rendendo quindi sicuro le varie comunicazioni e il trasporto di dati.
Il motivo per il quale i dati all’interno del tunnel vengano criptati è abbastanza ovvio. Come già detto, la VPN utilizza una rete pubblica per l’instaurazione del tunnel. Di conseguenza, tutto quel che viene trasmesso nella VPN è facilmente sniffabile e leggibile a qualsiasi persona munita di poche conoscenze tecniche. In base a questo, come già detto, tutti i dati vengono criptati.
Perchè una VPN?
Una VPN è solitamente utilizzata in ambito aziendale e corporate per il collegamento di una o più sedi remote di una stessa azienda in modo tale da semplificare la comunicazione tra le varie location. Oltre a questo, si usa molto spesso collegare l’azienda con le sedi remote dei vari clienti con l’intuibile vantaggio di semplificare i costi e i tempi di intervento in caso di problematiche relative a quel determinato cliente.
I vantaggi di una VPN
- Riduzione dei costi: una VPN potrebbe essere sostituita da un collegamento tramite linea CDN. A questo punto, però, sorge un problema: il costo. Una linea CDN è infatti molto costosa (sia da mantenere che da installare) e lo potrebbe diventare ancora di più con l’aumentare della complessità della nosta rete.
- Flessibilità e scalabilità: le VPN hanno una flessibilità e una capacità di scalare che le linee affittate non hanno. L’implementazione di una VPN semplifica e centralizza l’amministrazione delle reti. Una infrastruttura di VPN può adattarsi con facilità alle necessità di cambiamento delle reti. Con le VPN inoltre, gli utenti remoti (come per esempio delle sedi distaccate) si possono connettere in sicurezza da qualunque posto e in ogni tempo 24 ore su 24 alle risorse della rete sicura o tra di loro.
- Sicurezza ed affidabilità: la sicurezza è un concetto intrinseco in una VPN, poiché le VPN utilizzano protocolli di tunneling e una cifratura avanzata. L’affidabilità viene data fatto che un Tunnel VPN ha un solo punto di entrata e un solo punto di uscita.
- Struttura indipendente: una rete VPN è un collegamento a livello 3 del modello OSI/ISO. In base a questo, i primi due livelli non vengono considerati tralasciando, quindi, anche le loro relative problematiche e vulnerabilità.
Il tunneling
Il tunneling ha il compito di incapsulare in un unico pacchetto tutti gli altri pacchetti che tra di loro sono diversi in quanto utilizzabili diversi protocolli.
Il Tunneling compie un incapsulamento di multiprotocollo dei dati. Questo termine significa che i pacchetti, anche se sono di protocolli differenti come ad esempio 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 la fine del tunnel (interfaccia d’uscita del tunnel). Una volta giunti alla fine del tunnel avviene il processo contrario: il pacchetto IP complessivo viene scomposto allo stato iniziale e instradato verso la sua destinazione. Essenzialmente, il tunneling è un processo che incapsula il pacchetto di dati all’interno di un altro pacchetto che viene spedito sulla rete.
Crittografia
Il termine “tunnel” è stato scelto poiché indica uno spazio protetto creato nell’ambito della connessione al Web. Naturalmente, le aziende e gli utenti remoti devono utilizzare programmi software specifici a ciascuna uscita 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. È necessario anche un server VPN, ossia il computer che gestisca le richieste di connessione degli utenti e dei router remoti (nel caso di sedi dislocate in altre ubicazioni).
Per consentire agli utenti di ciascuna uscita del tunnel di leggere i dati, è necessario, naturalmente, che tutti i componenti della rete VPN utilizzino lo stesso protocollo. Esistono naturalmente 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-a-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 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.
L2TP
Prima dello standard L2TP (agosto 1999) RFC 2661, Cisco ha utilizzato il protocollo Layer 2 Forwarding (L2F) come suo protocollo di tunneling proprietario. All’epoca anche Microsoft aveva un suo protocollo di tunneling proprietario il Point-to-Point Tunneling Protocol (PPTP). Questi due protocolli erano molto simili, successivamente le due società Cisco e Microsoft si sono accordate per fondere i due protocolli in un unico protocollo. Creando così il protocollo Layer 2 Tunneling Protocol (L2TP).
Il protocollo L2TP è compatibile all’indietro con il protocollo L2F. Mentre il protocollo L2F non è direttamente compatibile con L2TP. Attualmente Microsoft che ha supportato il protocollo PPTP nelle sue più prime versioni di Windows utilizza PPTP/L2TP in Windows NT/2000/XP.
Il protocollo L2TP attualmente è uno standard IETF risultato dalla fusione dei due protocolli proprietari Cisco (L2F) e Microsoft (PPTP) ed è una soluzione di tunneling di livello 2. L2TP combina le migliori caratteristiche del protocollo Cisco Layer Two Forwarding (L2F) e del protocollo Microsoft Point-to-Point Tunneling Protocol (PPTP), abilitando così i lavoratori mobili a connettersi alla loro intranet o extranet dovunque e ogni volta che lo richiedono.
L2TP è un modo standard di costruire un Accesso VPN che simula reti private che usano un infrastruttura di rete condivisa come Internet. Questo Accesso VPN offre un accesso remoto per gli utenti mobili, telecommuters, e i piccoli uffici attraverso dial-up, ISDN, xDSL, e cavo.
L2TP è usato per creare un tunnelling indipendente dal tipo di media utilizzato, multiprotocol Virtual Private Dial Network (VPDN) e per permettere agli utenti di invocare politiche di sicurezza societarie attraverso ogni collegamento VPN o VPDN come una estensione delle loro reti interne.
I Benefici di utilizzare il protocollo L2TP includono l’autenticazione per l’utente, l’allocazione dinamica di un indirizzo da un pool di indirizzi o usando un server DHCP, più RADIUS e il supporto di AAA.
Il protocollo L2TP viene utilizzato al meglio nelle VPN remote-access che richiedono un supporto multiprotocollo.
Un limite di questo protocollo è che è di solo tunneling e non offre cifratura, quindi, il traffico, se intercettato può essere liberamente esaminato con un analizzatore di protocollo (un qualsiasi sniffer come Ethereal o, in ambiti più avanzati, ettercap). L2TP non supporta l’integrità del pacchetto.
IPSec
IPsec è un protocollo o meglio un framework (una struttura) di protocolli ideato e progettato dall’IETF durante lo sviluppo dello standard IPv6 ed in seguito inserito nell’IPv4. Attualmente IPsec è lo Standard IETF per la cifratura e il tunneling di livello 3. L’architettura di IPsec viene descritta nella attuale terza versione delle RFC riguardanti IPsec la RFC 4301. IPsec è attualmente la scelta migliore e difatti la più utilizata per realizzare delle VPN sicure. IPsec non è un singolo protocollo ma è una struttura/framework di standard aperti che offrono i servizi di Riservatezza, Integrità, Autenticazione dei dati tra sender e receiver (pari partecipanti). In base alle necessità del traffico che deve essere trasmesso su una rete bisogna selezionare i migliori protocolli per realizzare una VPN.
IPsec offre questi servizi di sicurezza usando il protocollo Internet Key Exchange (IKE) per gestire la negoziazione di protocolli ed algoritmi basata su una politica di sicurezza locale per generare la cifratura e l’autenticazione adatta ad essere usata da IPsec.
Un limite di IPsec è che supporta solamente del traffico unicast di IP cioè, del traffico verso un indirizzo di rete unico che rappresenta una unica destinazione di un unico indirizzo IP ovvero, del traffico da uno-a-uno. Questo è differente da un indirizzo IP multicast che è un indirizzo di rete unico che rappresenta un gruppo di destinazioni cioè differenti host, ovvero del traffico da uno-a-molti.
Il traffico multicast viene riferito come il traffico di un pacchetto trasmesso da un indirizzo IP che rappresenta un solo host verso un indirizzo IP che rappresenta più host che sono specificamente interessati a ricevere copie di quel pacchetto. Il pacchetto viene letto da tutto il gruppo di dispositivi che appartiene a quel gruppo multicast.
Il multicasting viene usato molto spesso per flussi audio e video. Per il mittente ci sono due vantaggi ad usare il multicast. Il primo è che il mittente ha bisogno di creare e spedire un solo pacchetto per tutto il gruppo, invece di creare e spedire un pacchetto diverso per ciascun ricevente. Secondo, il multicasting riduce l’uso della banda.
IPsec non offre attualmente protezione per il traffico multicast, perché IPsec è stato progettato specificamente per proteggere le comunicazioni tra due specifici punti ai termini di un tunnel IPsec end-to-end. Inoltre, le trasmissioni multicast sollevano parecchi problemi relativi alla sicurezza e alla scalabilità. Sulla sicurezza: di una stessa chiave segreta condivisa da molti utenti; sugli aggiornamenti e distribuzione dei segreti condivisi; sulle autenticazioni degli utenti; sulle diagnosi dei problemi. Quesiti questi, che possono annullare la protezione al traffico fornita da IPsec.
IPsec, inoltre, supporta due modalità di funzionamento:
- Tunnel mode
- Transport mode
A seconda della modalità scelta, vengono protetti solo i protocolli di livello superiore o l’intero pacchetto IP. In Transport mode viene coperto da IPsec solo il payload del pacchetto IP originale, in quanto l’header IPsec viene inserito dopo l’header del pacchetto IP. In Tunnel mode, IPsec incapsula il pacchetto IP originale in un nuovo pacchetto IP. Le due modalità sono supportate sia da AH che da ESP. Una soluzione software che ci permette di implementare l’IPSec sotto Linux è FreeSwan.
PPTP
Il PPTP (Point to Point Tunneling Protocol) è protocollo usato per VPN sviluppato da Microsoft e altri vendor, descritto nella RFC informativa 2637 ma non ancora standard IETF.
Fondamentalmente si tratta di una sessione PPP su GRE (Generic Routing Encapsulation), protocollo proprietario Cisco.
Utilizza la porta TCP 1723 per l’autenticazione e lo scambio di informazioni fra client e server e il procotollo di trasporto GRE (IP type 47) per lo scambio e la criptazione dei dati.
L’autenticazione può avvenire via PAP o CHAP, ma generalmente si usa MSCHAP-v2 che fornisce le chiavi per la criptazione dei dati con MPPE (Microsoft Point-to-Point Encryption).
Il protocollo PPTP è facilmente utilizzabile su Windows in quanto nativo, trasporta sia il traffico TCP che UDP ma ha i difetti di essere più insicuro rispetto ad IPSec in quanto risulta particolarmente debole nella definizione di chiavi di sessione.
Tipologie di VPN
VPN: pratica
La topologia
L’esperienza prevede la realizzazione di una semplice VPN end-to-end tra due firewall Zyxel che saranno i due end-point della VPN stessa.
I due firewall sono ovviamente muniti di una porta WAN tramite la quale sono collegati tra di loro e di uno switch Fast Ethernet integrato con il quale, ognuno dei firewall è collegato ad un client Windows o comunque all’ipotetica LAN in casi generali.
Da qui in avanti chiameremo PC_1 e PC_2 le due macchine poste rispettivamente dietro ai due Zywall.
Quanto segue è la tipologia:
Obiettivo
L’obiettivo è quello di realizzare il collegamento VPN in modo tale PC_1 abbia la facoltà di pingare e quindi di “comunicare” PC_2 pur essendo in subnet differenti. Ovviamente, in scenari generali, dovrebbero comunicare le diverse LAN poste “dietro” ai rispettivi router/firewall.
Hardware utilizzato
Per effettuare la VPN sono stati utilizzati due firewall della Zyxel, precisamente un Zywall 2plus e un Zywall 5.
ZyXEL ZyWALL 2 rappresenta la nuova generazione dei potenti firewall ZyXEL progettata per rispondere alle esigenze di telelavoratori e punti vendita POS. Il dispositivo, come peraltro l’intera gamma ZyWALL, è certificata ICSA (Firewall e IPSec certication), e garantisce una completa interazione con altri prodotti certificati ICSA.
Le prestazioni delle VPN sono state innalzate fino a 2Mbps con 3DES e l’aggiunta di un’altra connessione VPN rende ora possibile la creazione di un secondo tunnel VPN verso la sede aziendale. Lo ZyWALL 2 è dotato delle funzioni di Dial-backup e Traffic redirect, per la trasmissioni separate di dati e transazioni monetarie.
Prestazioni superiori, unitamente alla semplicità di configurazione e manutenzione, grazie all’interfaccia web integrata, rendono ZyWALL 2 la soluzione ideale per il tele-lavoro e l’home office.
Recentemente, molte aziende stanno convertendo i loro sistemi di sicurezza verso soluzioni più distribuite, strategiche e con strumenti di management centralizzati per proteggere i dati e le risorse chiave dell’azienda. La gamma ZyWALL è stata progettata esclusivamente per diventare l’attore principale di questi nuovi scenari; grazie alle elevate prestazioni ed alle nuove feature di protezione strategica e sicurezza centralizzata, ZyWALL 5 è il prodotto rispondente alle esigenze delle aziende che necessitano di un elevato grado di sicurezza.
Hands-on
Affrontiamo ora passo-passo la parte puramente pratica dell’esperienza.
Collegamento PC
Colleghiamo ogni PC al suo Zywall con un cavo Ethernet CAT5 normale dalla scheda di rete del PC a una delle porte Ethernet del firewall.
Collegamento Zywall
Colleghiamo i due Zywall tra di loro per mezzo della porta WAN simulando quindi quello che sarebbe Internet nella maggior parte delle reti VPN. Il tutto con un cavolo Ethernet CAT5 cross.
Reset degli apparati
Effettuamo il reset dei due apparati. Questo ci consente di avere la loro configurazione allo stato di fabbrica e, soprattutto, il loro indirizzo IP. Nel caso in cui, infatti, gli apparati siano stati precedentemente usati, può essere che sia stato assegnato loro un indirizzo IP non standard o chissà di quale classe e sottorete e, dal momento in cui per configurarli dobbiamo accedere alla interfaccia web tramite appunto il loro IP, la procedura di ricerca del famoso quartetto risulterebbe non poco dispendiosa.
L’IP di fabbrica è, nella maggior parte dei casi, 192.168.0.1 o 192.168.1.1. Se l’apparato non dovesse rispondere con questo IP consultare il manuale o il sito del produttore o verificare che il nostro PC abbia un IP della stessa sottorete dell’IP al quale stiamo tentando di accedere.
Configurazione VPN
Fatto questo, accediamo a entrambi i pannelli di configurazione dei due Zywall via web aprendo, tramite un qualsiasi browser, gli indirizzi http://ip_di_fabbrica. Il pannello di configurazione è facile e assai intuitivo
Come si può vedere in Figura1, dobbiamo assegnare due classi di IP differenti alle due macchine. Nel nostro caso, assegnamo 192.168.1.10 al PC_1 e 192.168.2.20 a PC_2. Da notare l’uso dei numeri 1 e 2 nei rispettivi PC_1 e PC_2. Ciò ci consente una ben più facile memorizzazione dei vari parametri.
Fatto questo, preoccupiamoci dei due Zywall. Come detto in precedenza, per ovvi motivi essi hanno due interfacce: la LAN e la WAN. La LAN serve per interfaccia lo Zyxel con, appunto, la rete interna e privata. La WAN, invece, serve per interfacciarlo con la rete esterna e pubblica come solitamente Internet.
Alle due interfacce LAN dei due Zywall assegnamo un IP della stessa classe e sottorete degli IP che abbiamo assegnato ai PC. Alle interfacce WAN, invece, assegnamo IP di classe diversa (per esempio di classe 10.255.255.255).
Fatto questo, nei PC assegnamo come gateway gli IP delle interfacce LAN dei due Zywall (ovviamente ogni PC ha quello del proprio Zywall).
Per quanto riguarda il lato vero e proprio di una VPN ovvero quello della crittografia, è importante controllare e verificare di avere una situazione simmetrica per quanto riguarda il protocollo di criptografia e di autenticazione usati e, non per ultima, uguale shared-key.
RAS: Remote Access Server
RAS: teoria
RAS, acronimo di Remote Access Server, è un servizio di accesso remoto progettato e creato da Microsoft.
Una volta effettuato l’accesso con successo, e quindi dopo aver verificato la propria identità, un utente che accede ad una rete remota può utilizzarne le risorse (ovviamente, solo quelle che sono stato autorizzato ad utilizzare) come se fosse in locale.
Il Remote Access Service è compatibile con i principali protocolli di rete, tra i quali figurano TCP/IP, IPX e NetBEUI.
Nella quasi totalità delle versioni di Windows è incluso un client d’accesso remoto, indispensabile per potersi connettere ad un server RAS; in alternativa bisognerà provvedere a procurarsi un qualsivoglia client software PPP.
Mediante il servizio RAS è anche possibile collegare tra di loro più reti LAN posizionate in luoghi diversi e geograficamente distanti tra di loro. La cosa trova una concreta applicazione nel caso di una grossa azienda multinazionale che avesse l’esigenza di collegare tra di loro più sue sedi remote sperse in giro per il mondo anche se, tutt’oggi, sono molto più utilizzate le VPN.
L’hardware necessario per poter realizzare una connessione remota ad una rete locale è o un normalissimo modem (ad esempio un modem 56k) oppure un router.
Le connessioni che attualmente utilizzate invece possono essere una PSTL (la commutazione di una linea analogica), una linea ISDN (una linea digitale che utilizza uno, massimo due canali da 64kbps ciascuno) oppure una, ormai sempre più diffusa, linea ADSL (una linea digitale a banda larga asimmetrica, cioè, normalmente, con una velocità di download superiore rispetto a quella di upload).
Per la nostra esperienza scolastica abbiamo installato un server di accesso remoto, già integrato, in una macchina montante Windows 2000 Server, mentre come client abbiamo utilizzato un’altra macchina sulla quale è stato montato Windows XP.
Il servizio di accesso remoto installato su Windows 2000 Server consente di realizzare tre diverse connessioni remote: Dial-Up (per connessioni Dial-Up si intendono quelle connessioni realizzate mediante una linea analogica, ad esempio con un modem ISDN), VPN (Virtual Private Network. Il client si connette al server di accesso remoto tramite internet), oppure anche tramite una connessione diretta via cavo (tramite un cavo seriale, ad esempio, senza dover utilizzare una scheda di rete).
Nel nostro caso abbiamo sperimentato un accesso remoto tramite una connessione Dial-Up, che è anche quella più semplice da realizzare.
I protocolli di accesso remoto principalmente più utilizzati sono PPP e SLIP, il primo è il protocolla standard che si è diffuso in internet, mentre il secondo è molto diffuso tra i sistemi operativi Linux.
Per le connessioni VPN invece, i protocolli principalmente utilizzati sono due: il PPTP l’L2TP. Il primo incapsula i pacchetti del protocollo di rete TCP/IP e supporta la criptazione dei messaggi, il secondo invece è un’evoluzione del primo. Supporta l’autenticazione dei messaggi, a differenza del PPTP, e permette di criptarli secondo la tecnica IPSec (IP Security).
RAS: pratica
La topologia
Obiettivo
Lo scopo di questa esperienza è quella di collegarsi ad un server RAS (che nel nostro caso ha Windows 2003 Server) tremite un client Windows Xp Professional mediamente la rete Internet (accesso remoto).
Hardware utilizzato
L’hardware utilizzato per effettuare il collegamento è, come ben visibile in Figura2, semplicemente un client con Windows XP Professional, il server RAS con Windows 2003 Server e due modem 56k necessari per la connessione remota.
Hands-on
Server: Windows 2003 Server
Quanto segue sono i semplici passi necessari per la configurare del servizio RAS.
- Recarsi sul Pannello di Controllo–>Strumenti di Amministrazione–>Routing e Accesso Remoto
- Se nella lista non è già presente nome_computer (local) andare su Stato Server e aggiornarla
- Cliccando col tasto destro sul nome del computer si può accedere alla wizard di configurazione
- Durante l’installazione (sarà necessario selezionare “Server di Accesso Remoto”) verrà chiesto di verificare se tutti i protocolli a noi necessari siano già installati o meno e se utilizzare un server DHCP per assegnare in modo dinamico gli indirizzi IP ai client.
- Ora che il servizio è stato installato, è solo necessario configurarlo; aprendo la finestra proprietà di “porte” verranno elencati tutti quei dispositivi che il servizio RAS sta utilizzando. Selezioniamo il nostro modem 56k, e configuriamolo: spuntiamo l’opzione che permette al modem di ricevere chiamate dall’esterno e impostare il numero di telefono al quale è legato il nostro modem
La configurazione del server RAS è finita. E’ ora sufficiente creare una nuova connessione nel client come segue.
Client: Windows XP
- Su Windows XP, bisogna recarsi su Pannello di Controllo–>Connessioni di Rete–>Crea una Nuova Connessione
- Configuriamo ora la nostra nuova connessione dial-up che ci servirà per effettuare il collegamento con il server remoto RAS. Durante la configurazione wizard ci verrà chiesto il numero da comporre bisognerà inserire quello associato al modem installato sul nostro server
- Una volta connesso, ci verrà chiesto di inserire le credenziali d’accesso al server. Come nome utente inseriamo un utente precedentemente creato nel server o comunque anche l’account “administrator” se ne disponiamo la password.