VPN (Virtual Private Network)

Connessione sicura, tunneling e laboratorio IPsec in Packet Tracer

Dalla teoria alla pratica: VPN Trusted, Secure, Hybrid e configurazione site-to-site
VPN: definizione e concetto di tunnel

Una VPN (Virtual Private Network) è un servizio che permette di instaurare una connessione sicura e cifrata tra due dispositivi (o tra due reti) sfruttando Internet. Dal punto di vista logico, i dispositivi collegati tramite VPN risultano “come se fossero nella stessa rete privata”, anche se in realtà sono geograficamente distanti e comunicano attraverso la rete pubblica.

Il concetto chiave è il tunneling: il pacchetto dati originale, prima di attraversare Internet, viene incapsulato in un ulteriore pacchetto e cifrato dal software/servizio VPN. Arrivato al destinatario, viene decifrato e de-incapsulato, ripristinando il pacchetto originale.

Schema concettuale di tunnel VPN tra due reti
In pratica: al posto di un collegamento fisico (cavo o Wi-Fi) c’è un tunnel virtuale in cui i dati transitano cifrati.
Tipologie di VPN (in base alle caratteristiche tecniche)
Trusted VPN

La rete privata viene “costruita” dall’ISP tramite percorsi dedicati/non accessibili ad altri. In genere non c’è cifratura perché la “fiducia” è nel percorso riservato.

  • Buon QoS (qualità del servizio)
  • Esempio tipico: reti MPLS gestite dall’operatore
Secure VPN

Sfrutta il tunneling con cifratura tramite protocolli come IPsec, SSL/TLS o SSH.

  • Utilizzabile anche su Wi-Fi pubbliche
  • Il traffico intercettato non è leggibile perché cifrato
Hybrid VPN

Combina i due approcci: percorso gestito/dedicato + cifratura.

  • Massima sicurezza (percorso + contenuto)
  • Soluzioni enterprise avanzate

Approfondimento: MPLS (Trusted VPN)

In ambito Trusted VPN è frequente l’uso di MPLS, una tecnologia che instrada i pacchetti utilizzando etichette (label) riconosciute dai router MPLS lungo un percorso definito. Il router di ingresso aggiunge la label, i router intermedi la utilizzano per inoltrare il traffico, e il router di uscita rimuove la label.

Tipi di VPN (in base all’uso)
Remote Access VPN

Permette a un singolo utente (da casa o da remoto) di accedere alle risorse interne di un’azienda (es. server, NAS, servizi interni) come se fosse in LAN.

Site-to-Site VPN

Collega due reti (due sedi) attraverso Internet: i due router diventano i “gateway” della VPN e cifrano/decifrano il traffico tra le LAN.

Nota: negli ultimi anni le VPN vengono spesso usate anche per uscire su Internet tramite server in altri Paesi (privacy/geo-accesso). In quel caso il client crea un tunnel verso un server VPN e la navigazione risulta provenire dall’indirizzo IP del server.
Protocolli principali: SSL/TLS e IPsec
SSL/TLS

SSL/TLS è un insieme di protocolli che permette comunicazioni sicure in architettura client-server. In ambito didattico si colloca spesso tra sessione e trasporto, perché gestisce handshake, autenticazione e cifratura dei dati applicativi sopra TCP.

  • Segretezza: cifratura simmetrica dei dati
  • Autenticazione: certificati e crittografia asimmetrica
  • Integrità: MAC e funzioni hash
IPsec

IPsec opera a livello di rete ed è una suite di protocolli per autenticazione e cifratura del traffico IP. È molto usato per VPN site-to-site tra router (security gateway).

  • Scambio chiavi e negoziazione (fase di controllo)
  • Cifratura e autenticazione dei pacchetti (fase dati)
  • Adatto a collegare reti intere (LAN↔LAN)
Posizionamento concettuale SSL/TLS rispetto ai livelli
Posizionamento concettuale IPsec rispetto ai livelli
Laboratorio guidato: VPN Site-to-Site IPsec in Packet Tracer

In questo esercizio realizziamo una VPN IPsec site-to-site tra due LAN aziendali. I router ai bordi (R1 e R3) svolgono il ruolo di security gateway: cifrano e incapsulano i pacchetti tra le due reti interne. Il router centrale (R2) rappresenta la rete di transito (WAN/Internet) e non partecipa alla cifratura.

Topologia dell'esercizio IPsec site-to-site
Obiettivo: il traffico tra LAN1 (192.168.1.0/24) e LAN3 (192.168.3.0/24) deve attraversare la WAN in modo cifrato. Il traffico verso altre reti (es. LAN2) deve restare fuori dalla VPN.
1) Configurazione IP degli host

Impostare gli indirizzi IPv4 statici sui PC, con subnet mask /24 e gateway l’indirizzo della porta LAN del router.

Configurazione PC0 LAN1
Configurazione PC1 LAN2
Configurazione PC2 LAN3
LAN Host IP Mask Gateway
LAN1 PC0 192.168.1.1 255.255.255.0 192.168.1.254
LAN2 PC1 192.168.2.1 255.255.255.0 192.168.2.254
LAN3 PC2 192.168.3.1 255.255.255.0 192.168.3.254
Se il gateway è errato, il PC non riuscirà a raggiungere le reti esterne alla propria LAN.
2) Tabelle di routing (statiche) sui router

Configurare le route statiche come da traccia, in modo che tutte le reti siano raggiungibili anche prima della VPN. La VPN si occuperà solo di cifrare il traffico selezionato, non di “creare” connettività di base.

R1
Rete Mask Next hop
192.168.2.0 255.255.255.0 10.1.1.1
192.168.3.0 255.255.255.0 10.1.1.1
10.2.2.0 255.255.255.252 10.1.1.1
R2
Rete Mask Next hop
192.168.1.0 255.255.255.0 10.1.1.2
192.168.3.0 255.255.255.0 10.2.2.2
R3
Rete Mask Next hop
192.168.1.0 255.255.255.0 10.2.2.1
192.168.2.0 255.255.255.0 10.2.2.1
10.1.1.0 255.255.255.252 10.2.2.1
Routing table su R1
Routing table su R2
Routing table su R3
3) Abilitare SECURITYK9 sui router gateway (R1 e R3)

In Packet Tracer, per utilizzare le funzionalità crittografiche sui router 2900 è necessario abilitare il pacchetto securityk9 sui router che faranno da gateway VPN (R1 e R3).

R1> enable
R1# configure terminal
R1(config)# license boot module c2900 technology-package securityk9
R1(config)# end
R1# copy running-config startup-config
R1# reload

Dopo il riavvio, verificare con show version che il pacchetto security sia presente (in Packet Tracer spesso risulta in modalità evaluation). Ripetere la stessa procedura su R3.

Verifica pacchetto securityk9 attivo
show version su R1
show version su R3
Se securityk9 non è attivo, i comandi crypto potrebbero non essere disponibili o non funzionare correttamente.
4) Configurazione VPN IPsec su R1 (security gateway)

La configurazione è composta da tre blocchi logici: (1) traffico “interessante” (ACL), (2) fase 1 (ISAKMP/IKE), (3) fase 2 (IPsec/transform-set + crypto map), e infine l’associazione della crypto map all’interfaccia WAN del router.

R1(config)# access-list 110 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

R1(config)# crypto isakmp policy 10
R1(config-isakmp)# encryption aes
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 2
R1(config-isakmp)# exit
R1(config)# crypto isakmp key cisco address 10.2.2.2

R1(config)# crypto ipsec transform-set VPN-SET esp-3des esp-sha-hmac
R1(config)# crypto map VPN-MAP 10 ipsec-isakmp
R1(config-crypto-map)# description VPN connection to R3
R1(config-crypto-map)# set peer 10.2.2.2
R1(config-crypto-map)# set transform-set VPN-SET
R1(config-crypto-map)# match address 110
R1(config-crypto-map)# exit

R1(config)# interface G0/0
R1(config-if)# crypto map VPN-MAP
Esempio comandi VPN su R1
L’ACL 110 definisce il traffico da cifrare: solo LAN1 ↔ LAN3. Se pinghi una rete diversa (es. LAN2), quel traffico non deve entrare nel tunnel.
5) Configurazione VPN IPsec su R3 (security gateway)

Su R3 la configurazione è speculare: l’ACL si “inverte” (sorgente/destinazione), il peer è l’indirizzo WAN di R1, e la crypto map viene associata all’interfaccia WAN verso R2.

R3(config)# access-list 110 permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255

R3(config)# crypto isakmp policy 10
R3(config-isakmp)# encryption aes
R3(config-isakmp)# authentication pre-share
R3(config-isakmp)# group 2
R3(config-isakmp)# exit
R3(config)# crypto isakmp key cisco address 10.1.1.2

R3(config)# crypto ipsec transform-set VPN-SET esp-3des esp-sha-hmac
R3(config)# crypto map VPN-MAP 10 ipsec-isakmp
R3(config-crypto-map)# description VPN connection to R1
R3(config-crypto-map)# set peer 10.1.1.2
R3(config-crypto-map)# set transform-set VPN-SET
R3(config-crypto-map)# match address 110
R3(config-crypto-map)# exit

R3(config)# interface G0/0
R3(config-if)# crypto map VPN-MAP
Esempio comandi VPN su R3
Se peer/ACL non corrispondono tra R1 e R3, il tunnel non si negozia correttamente.
6) Verifica del funzionamento (cifratura e contatori IPsec)

Verifichiamo che la VPN stia effettivamente cifrando solo il traffico previsto. Il comando fondamentale è:

R1# show crypto ipsec sa

Osservare i contatori (es. pacchetti encaps/encrypt e decaps/decrypt). Poi generare traffico “interessante” con un ping PC0 (LAN1) → PC2 (LAN3) e rieseguire show crypto ipsec sa: i contatori devono aumentare.

Contatori IPsec dopo ping LAN1-LAN3
Contatori IPsec invariati dopo ping LAN1-LAN2
Test didattico: fai un ping da PC0 a PC1 (LAN2). Poiché LAN2 non è nella ACL 110 della VPN, i contatori IPsec su R1 devono restare invariati.

Comandi utili di controllo
Verifica routing
show ip route
Verifica configurazione
show running-config
running-config su R1
running-config su R3
running-config su R2