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.
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.
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
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).

La licenza Cisco SecurityK9 (o SEC-K9) abilita le funzionalità di sicurezza avanzate sui router Cisco, inclusi firewall, VPN (IPsec, SSL/SSH) e crittografia.

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.
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
Lettura guidata della configurazione (R1): qui sotto trovi il significato di ogni blocco, in ordine logico, così da capire cosa fa il router oltre a memorizzare i comandi.
1) ACL del traffico interessante (interesting traffic)
R1(config)# access-list 110 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

Questa ACL dice:

  • permit ip → considera traffico IP
  • sorgente: rete 192.168.1.0/24
  • destinazione: rete 192.168.3.0/24
Attenzione: in questo contesto non è una ACL di filtraggio applicata a un’interfaccia per bloccare/consentire traffico. Serve a dire al router: “questo è il traffico da mettere nel tunnel VPN”.

Quindi: LAN1 → LAN3 = traffico cifrato; altro traffico (es. verso Internet o LAN2) = fuori dal tunnel (salvo altre configurazioni).

2) Configurazione IKE / ISAKMP (Fase 1)
R1(config)# crypto isakmp policy 10

Crea la policy ISAKMP numero 10 (IKEv1 fase 1).

R1(config-isakmp)# encryption aes

Usa AES per cifrare la negoziazione IKE (fase 1).

R1(config-isakmp)# authentication pre-share

Autenticazione con chiave precondivisa (pre-shared key).

R1(config-isakmp)# group 2

Imposta il gruppo Diffie-Hellman 2 per lo scambio delle chiavi.

R1(config-isakmp)# exit

Esce dalla configurazione della policy ISAKMP.

R1(config)# crypto isakmp key cisco address 10.2.2.2

Definisce la chiave precondivisa: chiave = cisco, valida per il peer con IP 10.2.2.2. In pratica, R1 negozierà IKE con quel peer usando questa chiave.

3) Configurazione IPsec (Fase 2) – Transform Set
R1(config)# crypto ipsec transform-set VPN-SET esp-3des esp-sha-hmac

Crea un transform set chiamato VPN-SET, cioè l’insieme di parametri usati da IPsec per proteggere i dati in transito (fase 2):

  • esp-3des → cifratura dati con 3DES
  • esp-sha-hmac → integrità/autenticazione con SHA HMAC
Nota didattica: qui in fase 1 usi AES, mentre in fase 2 usi 3DES. Non è “sbagliato” (sono fasi diverse), ma oggi è più comune usare AES anche in IPsec.
4) Creazione della Crypto Map
R1(config)# crypto map VPN-MAP 10 ipsec-isakmp

Crea una crypto map chiamata VPN-MAP, sequenza 10, di tipo IPsec con IKE/ISAKMP.

La crypto map è il “contenitore” che lega insieme:

  • peer remoto
  • transform-set
  • ACL del traffico interessante
R1(config-crypto-map)# description VPN connection to R3

Descrizione informativa (utile per leggibilità e troubleshooting).

R1(config-crypto-map)# set peer 10.2.2.2

Specifica il peer VPN remoto (l’altro router).

R1(config-crypto-map)# set transform-set VPN-SET

Associa il transform-set VPN-SET alla crypto map.

R1(config-crypto-map)# match address 110

Associa l’ACL 110: il traffico definito lì è quello che R1 considererà interessante e quindi da cifrare.

R1(config-crypto-map)# exit

Esce dalla configurazione della crypto map.

Stiamo dicendo al router: Questa crypto map userà IPsec e la negoziazione avverrà tramite IKE/ISAKMP.
5) Applicazione della Crypto Map all’interfaccia WAN
R1(config)# interface G0/0
R1(config-if)# crypto map VPN-MAP

Applica la crypto map VPN-MAP all’interfaccia WAN G0/0. Da questo momento il router può intercettare il traffico “interessante” in uscita su quell’interfaccia e trattarlo con IPsec.

In sintesi: ACL + IKE + Transform Set + Crypto Map + Interfaccia WAN sono i blocchi minimi per una VPN IPsec site-to-site funzionante in questo scenario.
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.
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.
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