Le VPN
Implementare una VPN IPSec
con Cisco Packet Tracer
Una guida pratica alla configurazione di una VPN site-to-site basata su IPSec, dalla topologia di rete fino alla verifica del tunnel cifrato.
Una VPN (Virtual Private Network) è una tecnologia che consente di creare una connessione sicura e cifrata tra dispositivi collegati tramite Internet. In sostanza, costruisce un tunnel virtuale attraverso la rete pubblica, proteggendo i dati in transito da occhi indiscreti.
In questa esercitazione ci concentriamo su un tipo specifico: la VPN site-to-site basata su IPSec, la soluzione più diffusa in ambito aziendale per collegare sedi geograficamente distanti come se facessero parte della stessa rete locale.
| Caratteristica VPN | Descrizione |
|---|---|
| Confidenzialità | I dati vengono cifrati: anche se intercettati, risultano illeggibili |
| Mascheramento IP | Il traffico sembra provenire dal server VPN, non dall'utente reale |
| Accesso remoto sicuro | Ci si connette a reti aziendali come se si fosse fisicamente presenti |
| Selettività | Solo il traffico specificato viene incapsulato nel tunnel |
La topologia di rete e il cablaggio
Prima di mettere le mani sulla tastiera, vale la pena capire bene la struttura che stiamo costruendo. La topologia prevede tre router Cisco serie 2900 e tre PC distribuiti su altrettante reti locali distinte.
I ruoli nella topologia sono ben definiti:
- R1 è il gateway della LAN sinistra (192.168.1.0/24), dove risiede PC-A
- R2 è il router intermedio che simula la rete Internet pubblica
- R3 è il gateway della LAN destra (192.168.3.0/24), dove risiede PC-C
- PC-B si trova sulla rete 192.168.2.0/24 collegata a R2, e resterà fuori dal tunnel VPN
Creare un tunnel VPN cifrato tra R1 e R3, in modo che PC-A e PC-C comunichino in modo sicuro attraverso la rete pubblica. Il traffico verso PC-B invece non passerà dal tunnel — è proprio questo che verificheremo alla fine per confermare il corretto funzionamento selettivo della VPN.
Il collegamento seriale tra R1 e R2 usa la subnet 10.1.1.0/30, con R1 sull'interfaccia Serial0/0/0.
Aggiungere il modulo WIC per le porte seriali
I router Cisco 2901 e 2911, nella configurazione base, non dispongono di porte seriali integrate: hanno solo porte GigabitEthernet. Per poter utilizzare i cavi seriali DCE/DTE è quindi necessario installare un modulo aggiuntivo.
HWIC-2T (o WIC-2T) in uno slot libero del router| Modulo | Porte seriali | Velocità max |
|---|---|---|
WIC-2T |
2 porte (S0/0/0, S0/0/1) | 2 Mbps |
WIC-1T |
1 porta | 2 Mbps |
HWIC-2T |
2 porte (S0/0/0, S0/0/1) | 8 Mbps — consigliato |
Ripetere l'operazione su tutti e tre i router. Nell'esercitazione utilizzeremo il modulo HWIC-2T.
È possibile collegare R1 e R2 tramite GigabitEthernet con un cavo copper straight-through usando comunque la subnet 10.1.1.0/30. Tuttavia, per questa esercitazione si richiede l'uso del cavo seriale DCE/DTE per finalità didattiche.
Configurare il Clock Rate sul lato DCE
Su un link seriale, uno dei due router deve fare da DCE e fornire il segnale di clock. In Packet Tracer si può configurare direttamente nella scheda Config dell'interfaccia oppure via CLI.
interface Serial0/3/0
clock rate 64000
no shutdown
Per verificare quale lato del link è DCE e quale è DTE, si usa il seguente comando:
show controllers Serial0/3/0
| Indicazione nel log | Comportamento richiesto |
|---|---|
DCE |
Questo router fornisce il clock → configurare clock rate |
DTE |
Lato passivo → non serve clock rate, lo riceve dal DCE |
Configurazione indirizzi del link R1–R2
Cambiamo l'hostname del router e assegniamo l'indirizzo alla seriale. Il link usa la subnet 10.1.1.0/30, una /30 che fornisce esattamente i 2 host necessari per un collegamento punto-punto.
hostname R1
interface Serial0/3/0
ip address 10.1.1.1 255.255.255.252
clock rate 64000
no shutdown
L'indirizzo 10.1.1.x appartiene allo spazio RFC 1918 (Classe A privata), adatto per collegamenti interni tra router. La subnet /30 (255.255.255.252) fornisce esattamente 2 host utilizzabili — R1 con .1 e R2 con .2 — senza alcuno spreco. Questo principio si chiama VLSM (Variable Length Subnet Mask).
Sul router R2, passiamo alla configurazione speculare del lato DTE:
hostname R2
interface Serial0/3/0
ip address 10.1.1.2 255.255.255.252
no shutdown
Collegamento degli altri apparati
Per collegare i restanti dispositivi (switch, PC) utilizziamo i cavi straight-through.
Una volta completato il cablaggio e rinominati tutti i dispositivi (PC0 → PC-A, Switch0 → S1, ecc.), la topologia con i nomi aggiornati e le etichette CIDR deve apparire come mostrato di seguito.
Hostname: è il nome configurato nell'IOS del router (hostname R1), appare nel prompt CLI e viene salvato nella startup-config. Display Name: è solo il nome visivo sull'icona nella canvas grafica di Packet Tracer — non ha alcun effetto sulla configurazione reale.
Tabella degli indirizzi IP
Con la topologia costruita, è il momento di assegnare gli indirizzi IP a ogni interfaccia. La figura seguente riassume il piano di indirizzamento completo.
Procediamo con la configurazione dispositivo per dispositivo.
PC-A
Router R1 — Interfaccia seriale e GigabitEthernet
Router R2
PC-B
Router R3
PC-C
Routing statico
Con gli indirizzi assegnati, i router sanno solo com'è fatta la rete direttamente collegata a loro. Per raggiungere le reti remote è necessario configurare le rotte statiche: percorsi inseriti manualmente dall'amministratore, che restano stabili nel tempo e non richiedono protocolli di routing dinamico.
Senza le static route configurate correttamente, i router non sanno dove instradare i pacchetti e il tunnel VPN non funzionerà mai, anche se configurato alla perfezione. È un prerequisito fondamentale.
R1 — Non conosce le reti oltre R2
R1 manda tutto il traffico verso le reti remote al next-hop 10.1.1.2 (l'interfaccia seriale di R2):
ip route 192.168.2.0 255.255.255.0 10.1.1.2
ip route 192.168.3.0 255.255.255.0 10.1.1.2
ip route 10.2.2.0 255.255.255.252 10.1.1.2
R2 — Il router centrale: conosce entrambe le direzioni
ip route 192.168.1.0 255.255.255.0 10.1.1.1
ip route 192.168.3.0 255.255.255.0 10.2.2.2
R3 — Speculare rispetto a R1
ip route 192.168.1.0 255.255.255.0 10.2.2.1
ip route 192.168.2.0 255.255.255.0 10.2.2.1
ip route 10.1.1.0 255.255.255.252 10.2.2.1
Verifica della connettività di base
Prima di configurare la VPN, verifichiamo che la rete funzioni correttamente eseguendo un ping tra i PC.
Installazione del pacchetto SecurityK9
I router Cisco 2900, di default, non hanno le funzionalità crittografiche attive. I comandi crypto necessari per IPSec semplicemente non esistono finché non si abilita la licenza appropriata. Questo va fatto solo su R1 e R3, i due security gateway della VPN.
R2 simula Internet — è un router pubblico che non fa parte della VPN. Non va toccato.
| Pacchetto | Funzionalità incluse |
|---|---|
ipbase |
Routing base, ACL, NAT — attivo di default |
securityk9 |
IPsec, VPN, Firewall, SSH, Crypto |
datak9 |
MPLS, BGP avanzato |
uck9 |
Voice, telefonia |
Installazione su R1
enable
configure terminal
license boot module c2900 technology-package securityk9
end
copy running-config startup-config
reload
Dopo il riavvio, verifichiamo che la licenza sia attiva:
show version
Installazione su R3
enable
configure terminal
license boot module c2900 technology-package securityk9
write
exit
reload
Pensate al router come a uno smartphone: le app non sono tutte installate di default. SecurityK9 è come installare l'app VPN prima di poterla usare. Senza installarla, i comandi crypto semplicemente non vengono riconosciuti dall'IOS.
Configurazione VPN su R1
La configurazione IPSec si articola in quattro blocchi logici distinti. Seguiamoli nell'ordine corretto — saltare uno step o invertirne l'ordine porta tipicamente a errori difficili da diagnosticare.
5a — Access List: definire il traffico da cifrare
La prima cosa da fare è indicare al router quale traffico deve entrare nel tunnel VPN. Si usa un'Access Control List con wildcard mask (l'inverso della subnet mask).
access-list 110 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
Questa ACL dice: “Il traffico proveniente dalla rete 192.168.1.0/24 e diretto verso 192.168.3.0/24 deve essere trattato dalla VPN.”
5b — Fase 1: ISAKMP (la stretta di mano)
La Fase 1 stabilisce un canale sicuro tra i due router per negoziare i parametri della VPN. I due endpoint si autenticano e concordano gli algoritmi da usare.
crypto isakmp policy 10
encryption aes
authentication pre-share
group 2
exit
crypto isakmp key cisco address 10.2.2.2
| Parametro | Significato |
|---|---|
encryption aes |
Usa AES come algoritmo di cifratura simmetrica |
authentication pre-share |
Autenticazione con chiave pre-condivisa (PSK) |
group 2 |
Gruppo Diffie-Hellman per lo scambio sicuro delle chiavi |
key cisco address 10.2.2.2 |
PSK “cisco” e indirizzo del peer remoto (R3) |
La chiave “cisco” viene usata esclusivamente a scopo didattico. In un ambiente di produzione reale è obbligatorio utilizzare una passphrase lunga e complessa.
5c — Fase 2: IPSec (il tunnel vero e proprio)
crypto ipsec transform-set VPN-SET esp-3des esp-sha-hmac
crypto map VPN-MAP 10 ipsec-isakmp
description VPN connection to R3
set peer 10.2.2.2
set transform-set VPN-SET
match address 110
exit
5d — Applicare la crypto map all'interfaccia
Il passo finale è applicare la configurazione VPN all'interfaccia seriale da cui escono i pacchetti verso la rete pubblica. Senza questo step, la crypto map esiste ma non viene mai attivata.
interface S0/3/0
crypto map VPN-MAP
Configurazione VPN su R3
La configurazione su R3 è speculare a quella di R1, con sorgente e destinazione invertite e il peer che punta all'indirizzo seriale di R1.
access-list 110 permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255
crypto isakmp policy 10
encryption aes
authentication pre-share
group 2
exit
crypto isakmp key cisco address 10.1.1.1
crypto ipsec transform-set VPN-SET esp-3des esp-sha-hmac
crypto map VPN-MAP 10 ipsec-isakmp
description VPN connection to R1
set peer 10.1.1.1
set transform-set VPN-SET
match address 110
exit
interface S0/3/0
crypto map VPN-MAP
Nell'ACL la rete sorgente è 192.168.3.0 e la destinazione è 192.168.1.0 (invertite). Il peer ISAKMP punta a 10.1.1.1 (interfaccia seriale di R1).
Verifica del funzionamento
La verifica è la parte più interessante: non solo confermiamo che la VPN funziona, ma dimostriamo anche che funziona selettivamente, cifrando solo il traffico corretto.
Prima verifica — stato iniziale a zero
show crypto ipsec sa
Seconda verifica — traffico VPN (PC-A → PC-C)
Eseguiamo un ping da PC-A verso PC-C (192.168.3.3). Questo traffico corrisponde esattamente all'ACL 110, quindi verrà cifrato e incapsulato nel tunnel IPSec.
Terza verifica — traffico fuori VPN (PC-A → PC-B)
Eseguiamo ora un ping da PC-A verso PC-B (192.168.2.3). Questo traffico non corrisponde all'ACL 110, quindi viaggia in chiaro senza entrare nel tunnel.
Quarta verifica — secondo pacchetto VPN
Riepilogo concettuale
Quello che abbiamo realizzato è esattamente il modello usato dalle aziende per connettere filiali remote in modo sicuro. I PC non “sanno” di usare una VPN: ci pensano i router gateway, in modo trasparente.
// Traffico cifrato (passa dal tunnel VPN)
R1→
🔒 TUNNEL IPSEC CIFRATO→
R3→
PC-C
// Traffico in chiaro (bypassa il tunnel)
R1→
R2→
PC-B
(no VPN)
