Che cos’è, a cosa serve e protolli di una Secure VPN

Che cos’è, a cosa serve e protolli di una Secure VPN

Cos’è una VPN

Nelle telecomunicazioni, la VPN (Virtual Private Network) è una tecnologia che permette l’accesso ad una LAN da qualsiasi parte del mondo, oppure di collegare due o più sedi dislocate nel globo come se fosse un’unica rete privata.
L’esigenza è nata per abbattere i costi elevatissimi dovuti alla realizzazione di proprie infrastrutture di reti per collegare le varie sedi interessate.

Una VPN ben strutturata può offrire grandi benefici per un’azienda:

  1. estende la connettività geografica;
  2. migliora la sicurezza dove le linee di dati non sono state criptate;
  3. riduce i costi di operazione;
  4. riduce il tempo di transito e i costi di trasporto per i clienti remoti;
  5. fornisce la possibilità di reti globali;
  6. fornisce supporto di rete;
  7. fornisce compatibilità con le reti a banda larga;
  8. fornisce una più veloce ROI (tempo di ritorno dell’investimento) rispetto al trasporto tradizionale delle linee WAN;
  9. mostra una buona economia di scala.

Questa tecnologia permette di realizzare una rete privata, utilizzando i cablaggi esistenti e soprattutto di utilizzare la rete ip essendosi così sviluppata da permette di raggiungere qualsiasi parte del globo.

Che cos'è, sicurezza, crittografia e protocolli di una VPN

Secure VPN

Adesso parliamo invece delle tecnologie che utilizzano protocolli di sicurezza per criptare e isolare il traffico.
Molte aziende hanno la necessità di permettere ai propri dipendenti di accedere alla LAN aziendale da remoto. Tale possibilità infatti permette a qualsiasi impiegato dell’azienda di usufruire di tutti i servizi che offre la LAN aziendale da qualsiasi parte del mondo e di poter, quindi, svolgere il proprio lavoro come se effettivamente esso fosse direttamente collegato alla LAN dell’azienda.
Tale accesso poteva essere realizzato attraverso linee dedicate o in passato, attraverso un Remote Access Server (RAS). Il RAS era costituito da un certo numero di modem collegati ad una macchina che faceva da server. Ogni modem a sua volta aveva una propria linea telefonica che permetteva agli impiegati dell’azienda di collegarsi con esso. Questa soluzione sicuramente offriva un alto grado di affidabilità e sicurezza ma sicuramente erauna delle più costose, infatti prevedeva un buon investimento per la sua realizzazione e dei costi per le chiamate. Una soluzione alternativa al RAS che risulta essere flessibile, economica e sicura è la Secure Virtual Private Network (VPN).

Che cos'è, a cosa serve e protolli di una Secure VPN

Una Secure VPN consente di servirsi di Internet per connettersi al sistema di accesso della LAN aziendale.
Praticamente si crea un tunnel virtuale sul quale viaggiano tutti i pacchetti che sono indirizzati alla LAN. Tale tunnel è criptato in modo che nessuno possa accedere ai dati che ne transitano all’interno.
Tramite la VPN, i client remoti risultano “logicamente” appartenenti alla stessa rete locale della sede centrale, e quindi possono accedere a tutte le applicazioni e alle banche dati residenti presso un qualsiasi server dell’azienda, come se si trovassero fisicamente sulla stessa LAN.
Facendo una breve ricerca in internet si individuano principalmente tre soluzioni che sono basate sui seguenti protocolli: PPTP, IPSec e SSL/TSL. Bisogna notare infine che quest’ultimo non è proprio un protocollo ma bensì una serie di librerie per la criptazione dei dati.

Protocollo PPTP

PPTP è uno standard documentato e rilasciato dalla IETF nell’RFC 2637. Tale standard ci permette di instaurare una connessione punto-punto fra due host utilizzando l’incapsulamento in pacchetti IP e facendo passare quest’ultimi all’interno di un tunnel.
Sarà quindi il protocollo PPP che si occuperà dell’autenticazione del client e della relativa criptazione dei dati. Visto che è il protocollo PPP a gestire il tutto, i metodi utilizzati per l’autenticazione degli utenti saranno quelli utilizzati normalmente dalle connessioni punto- punto, quindi PAP, CHAP e così via.
Poichè per la criptazione dei dati, non è prevista dal PPP, sarà necessario aggiungere un modulo per la compressione dei dati e quindi fare una patch al sistema in modo che sia supportata la criptazione.
Questa soluzione è la soluzione utilizzata da Windows per la realizzazione della VPN fra macchine della Microsoft ed esiste anche dell’hardware che supporta nativamente le VPN basate su PPTP.
Per utilizzare VPN basate su PPTP sotto linux è necessario utilizzare un software dedicato e quindi patchare in kernel in modo che sia possibile la criptazione e decriptazione dei dati. Una soluzione free che ci permette l’implementazione di questo protocollo sotto linux è il software PoPToP.
Con questo software più Server, sia Linux che Windows, possono lavorare congiuntamente in un ambiente VPN basato su PPTP. PoPToP client esiste per tutte le versioni di Windows e Linux.

Protocollo IPSec

Questo è forse il protocollo maggiormente utilizzato in quest’ambito.

Tale protocollo interviene a Livello di rete (livello 3) e nasce come parte integrante dell’IPv6 ma può anche essere utilizzato nell’IPv4. L’IPSec protegge qualsiasi protocollo che si trova sopra il livello rete, esso offre servizi di crittografia che sono utilizzati per l’autenticazione, l’integrità e la segretezza dei dati.
Questa soluzione ci permette di scambiare con utenti remoti dati criptati e autenticati: è quindi possibile realizzare un tunnel criptato per instaurare la nostra VPN.
Anch’esso è stato standardizzato dall’IETF e anche se noi abbiamo parlato di protocollo, sarebbe più giusto riferirci ad esso come a un’architettura di sicurezza che agisce a livello IP.
Tale protocollo è costituito da altri tre protocolli che sono:

  1. Authentication Header (AH) che si occupa dell’autenticazione e dell’integrità dei messaggi;
  2. Encapsulating Security Payload (ESP) esso si occupa dell’autenticazione, confidenzialità e controllo di integrità dei messaggi;
  3. IKE (Internet Key Exchange) che si occupa della scambio delle chiavi.

Il suo funzionamento consiste nel negoziare una una “Security Association” fra i due interlocutori l’AH e l’ESP, prima che entrino in gioco. La SA contiene le informazioni sui meccanismi di protezione e le chiavi da utilizzare durante il successivo trasferimento dei dati.
Oltre a tutto quello visto sopra l’IPSec comprende anche due basi di dati:

  1. Il Security Policy Database (SPD): contiene tutte le policy IPSec;
  2. Il Security Association Database (SAD): contiene tutti dati relativi alle SA attive.

IPsec supporta due modalità di funzionamento:

  1. Modalità Tunnel;
  2. Modalità Trasporto.

A seconda della modalità scelta, vengono protetti solo i protocolli di livello superiore o l’intero pacchetto IP.
In modalità Trasporto 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 modalità Tunnel, 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.

Protocollo L2TP/IPsec

Layer 2 Tunnel Protocol è un protocollo VPN che di per sé non fornisce alcuna crittografia o la riservatezza di traffico che passa attraverso di esso. Per questo motivo di solito è implementato con la suite di cifratura IPsec (simile a una cifra, come discusso di seguito) per garantire la sicurezza e la privacy.

L2TP/IPsec è incorporato in tutti i moderni sistemi operativi e dispositivi in grado di VPN, ed è altrettanto facile e veloce da installare come PPTP (in realtà di solito utilizza lo stesso client). I problemi possono sorgere però, perché il protocollo L2TP utilizza la porta UDP 500, che è più facilmente bloccato da firewall NAT, e possono quindi richiedono avanzate di configurazione (port forwarding) quando viene utilizzato dietro un firewall (questo è diverso da SSL che può utilizzare la porta TCP 443 per renderlo indistinguibile dalla normale traffico HTTPS).

SSL/TSL OpenVPN

SSL/TSL è la soluzione su cui è basato OpenVPN, un software completamente gratuito che ci permette in maniera molto semplice di creare una VPN, sia essa client-to-client, gateway-to-client o gateway-to-gateway.
La peculiarità di OpenVPN è che esso non va a incidere sul funzionamento del sistema operativo e quindi non è necessaria nessun tipo di patch su di esso. Infatti OpenVPN fa uso delle diverse soluzioni per il networking messe a disposizione dal sistema operativo stesso. OpenVPN esiste per quasi tutte le piattaforme esistenti e si integra perfettamente col sistema.

Per poterlo utilizzare sotto Windows, basta scaricare l’installer che fa tutto, crea una scheda di rete virtuale e installa tutti i pacchetti virtuali per il corretto funzionamento del software. Mentre se lo si vuole utilizzare sotto Linux è necessario che siano presenti i moduli per le periferiche Tun/Tap e i moduli per il bridging se si vuole optare per una configurazione che fa uso dell’Ethernet Bridging.
Lo stesso pacchetto applicativo può funzionare sia da Server che da Client. Quello che cambia è soltanto la configurazione che modifica il comportamento di OpenVPN da server o da client. OpenVPN usa i device TUN/TAP che sono interfacce virtuali che permettono ai programmi in user-space di scambiarsi pacchetti, dopo che sono stati criptati. La scelta del tipo di device da utilizzare dipende da che tipo di infrastruttura si vuole realizzare.
Con il device Tun si crea una connessione punto-punto fra il client ed il server, e come se i due fossero connessi attraverso un’interfaccia ppp, in questo caso OpenVPN interviene a livello IP.

Con il device TAP viene creata un’interfaccia di rete virtuale simile ad una interfaccia ethernet che trasporta frame ethernet e quindi in questo caso OpenVPN interverrà a livello 2, sui frame.
Rispetto ad altre implementazioni OpenVPN risulta una soluzione molto snella basata sullo standard SSL/TLS, protocollo ormai consolidato per garantire la sicurezza delle comunicazioni su Internet per questo si appoggia ad OpenSSL, Differentemente da altre soluzioni non utilizza IPSec, ma genera un tunnel point-to-point TCP over UDP lavorando in user space.
Per ridurre l’occupazione di banda ed i tempi di risposta il software opera una compressione sui dati trasmessi utilizzando le librerie LZO, che costituiscono dunque un prerequisito come il già menzionato OpenSSL.

OpenVPN supporta svariati metodi di autenticazione dei client: nome utente e password, certificati digitali X509, smart card etc. permettendo di scalare da soluzioni semplici, in cui un server deve gestire un unico client, a soluzioni enterprise molto più complesse. Il server OpenVPN può effettuare il push verso i client di opzioni DHCP come DNS ed indirizzi di server WINS.
La configurazione, nello stile Unix, avviene editando dei file di testo, uno per la parte server ed uno per la parte client. Questo, a mio modo di vedere, rappresenta un vantaggio e fornisce una maggiore consapevolezza e controllo sulle impostazioni adottate.
OpenVPN aggiunge un livello intrinseco di sicurezza, per il semplice fatto di essere open source quindi può essere ispezionato il codice del software. Questo lascia la possibilità di verificare che non sono presenti backdoor o assimilati.

E’ una delle soluzioni VPN più conosciute, almeno nel campo dell’open source, garantisce i più alti livelli di sicurezza. Le caratteristiche fondamentali di OpenVPN, che gli hanno garantito il successo nel mercato delle soluzioni VPN, sono l’estrema semplicità di installazione e le tante possibilità di configurazione.
In base a come è impostata la VPN, il tunnel viene creato su UDP (scelto nella configurazione di default) o TCP. I payload dei segmenti che creano il tunnel sono criptati, e la connessione viene instaurata previa autenticazione tramite certificati.

OpenVPN permette la scelta di diverse possibili soluzioni:

  1. vengono supportate configurazioni Peer-to-Peer;
  2. ogni server può gestire diversi client contemporaneamente e possono essere create strutture host-to-host, site-to-site o host-network.

L’autenticazione è gestita tramite un complessa infrastruttura di sicurezza, formata da certificati e chiavi private propri del server e di ogni client e da un certificato CA (Certificate Authority) utilizzato per firmare i certificati privati.
Entrambe le parti, prima di analizzare le informazioni dei certificati, verificano che questi siano stati sottoscritti con il certificato CA. Tutte le chiavi e i certificati possono essere creati con appositi script contenuti nel pacchetto del prodotto.
I file da utilizzare possono essere logicamente organizzati in due directory (posizionate nei due sistemi terminali), server e client: OpenVPN utilizza la libreria di crittografia OpenSSL.
Diverse configurazioni permettono la creazione di device TUN o TAP: entrambe sono interfacce virtuali di rete, ma TUN lavora con pacchetti IP mentre TAP con frame Ethernet.

I vantaggi più importanti sono:

  1. Altamente configurabile.
  2. Molto sicuro.
  3. Può bypassare i firewall.
  4. Può usare una vasta gamma di algoritmi di criptazione.
  5. E’ open source, questo permette a chiunque di esplorare il codice e controllare se ci siano Backdoors ecc.

Gli svantaggi sono:

  1. Ha bisogno di un software terzo.
  2. Può essere complicato configurarlo.
  3. Cresce il supporto per i mobile, ma non arriva ancora allo standard desktop.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *