Il Tunneling permette di usare la rete Internet pubblica per creare connessioni protette tra il computer di un utente remoto e una rete aziendale.
Il dispositivo adibito alla sicurezza utilizza gli standard di tunneling ISAKMP e IPsec per costruire e gestire il tunnel. Questi due standard svolgono le seguenti operazioni:
Negoziazione dei parametri del tunnel
Creazione del tunnel
Autenticazione degli utenti e dei dati
Gestione delle chiavi
Criptografia e decriptografia dei dati
Gestione del trasferimento dei dati attraverso il tunnel
Gestione del trasferimento di dati in entrata e in uscita dal tunnel collegato ad un router
Il dispositivo gestisce un flusso bidirezionale di dati verso il tunnel. Riceve pacchetti in chiaro dalla rete aziendale, li incapsula, crea un tunnel e invia i dati all'altro estremo del tunnel, dove vengono estratti e consegnati a destinazione. Viceversa, riceve dalla rete pubblica un pacchetto incapsulato in un altro pacchetto, lo estrae e lo consegna al destinatario nella rete aziendale.
Il dispositivo che applica la sicurezza alle comunicazioni usa IPsec per connessioni da LAN a LAN ma offre la possibilità di usare IPsec anche per connessioni client-LAN, Nella terminologia IPsec, un peer è un client o un router.
Durante la creazione del tunnel, i due peer negoziano le Security Association che servono per regolare l'autenticazione, la criptografia, la decriptografia e la gestione delle chiavi. Questi accordi si svolgono in due momenti: primo, per stabilire il tunnel (Internet Key Exchange Security Association), secondo, regolare il traffico nel tunnel (IPSec Security Association)
Una VPN tra due LAN connette reti geograficamente distanti. Quando la connessione tra due LAN è protetta con IPsec, il dispositivo di sicurezza può iniziare una comunicazione oppure può rispondere ad una comunicazione. In connessioni client-LAN protette con IPsec, il dispositivo può solo rispondere. Chi inizia la comunicazione, propone le Security Association, il ricevitore accetta, rifiuta oppure avanza delle controproposte, secondo i parametri SA configurati. Per stabilire una connessione entrambe le entità si accordano sulle SA.
Il protocollo per lo scambio delle chiavi è denominato ISAKMP: Internet Security Association and Key Management Protocol.
ISAKMP è il protocollo di negoziazione usato da due apparecchiature per costruire le security association.
ISAKMP divide la negoziazione in due fasi.
Nella fase 1 si crea il tunnel, che proteggerà i successivi messaggi ISAKMP. Nella fase 2 si crea il tunnel che proteggerà i dati.
Per impostare i termini della negoziazione, si deve creare una ISAKMP policy, che comprende i seguenti parametri:
Un metodo di autenticazione, per accertare l'identità dei peer
Un algoritmo di criptografia per assicurare la segretezza dei dati
un algoritmo hash per generare l'HMAC (Hashed Message Authentication Code) per garantire l'integrità del messaggio
Un gruppo Diffie-Hellman per scegliere la forza dell'algoritmo di generazione delle chiavi hash e di criptografia
Un tempo di validità delle chiavi di criptografia, prima di sostituirle.
Il peer che comincia la negoziazione ISAKMP invia tutte le sue policy al peer remoto, il peer remoto cerca di individuare una corrispondenza con le sue policy. Il peer remoto controlla tutte le policy proposte e le confronta, in ordine di priorità con quelle che possiede configurate, fino a quando rileva una corrispondenza. Per corrispondenza tra due policy, si intende che i due peer posseggono gli stessi algoritmi di criptografia, le stesse funzioni hash, lo stesso metodo di autenticazione, gli stessi metodi Diffie-Hellman, e una durata di validità delle chiavi minore o uguale a quella proposta. Se la durata non è la stessa il dispositivo sceglie quella minore. Se non si trova una corrispondenza, la connessione viene rifiutata.
Configurare i due router (R0 e R2) per realizzare una VPN, protetta dal protocollo IPsec, attraverso cui scorre il traffico tra le sottoreti sulle altre interfacce dei router. Il traffico VPN attraversa anche un router intermedio che però ignora l'esistenza della VPN. IPSec fornisce la riservatezza alle informazioni sensibili o riservate che devono attraversare la rete pubblica (non protetta). IPsec opera a livello 3 (Rete) proteggendo e autenticando i pacchetti tra i dispositivi IPsec.
Nota: prima di configurare i router per accettare connessioni IPsec, potrebbe essere necessario dover accettare esplicitamente (il router non lo segnala) la licenza di utilizzo delle librerie.
Parametro | Valore possibile | R0 | R2 |
Metodo di distribuzione della chiave | Manuale o ISAKMP | ISAKMP | ISAKMP |
Algoritmo di criptografia | DES, 3DES o AES | AES | AES |
Funzione Hash | MD5 o SHA-1 | SHA-1 | SHA-1 |
Metodo di autenticazione | Pre-Shared o RSA | pre-share | pre-share |
Scambio chiave | DH gruppo 1, 2 o 5 | DH 2 | DH 2 |
durata IKE SA | 86400 secondi o meno | 86400 | 86400 |
password ISAKMP | scelta libera | cisco | cisco |
In grassetto sono stati indicati i valori di default.
Parametro | R0 | R2 |
Transform Set | VPN-SET | VPN-SET |
Nome Host del Peer | R2 | R0 |
Indirizzo IP del peer | 10.2.2.1 | 10.1.1.1 |
Rete da criptare | 192.168.1.0/24 | 192.168.2.0/24 |
nome Crypto Map | VPN-MAP | VPN-MAP |
Security Association | ipsec-isakmp | ipsec-isakmp |
Provare la connettività tra i due PC inviando un pacchetto ping
Assegnare il nome R0 al router 0 e il nome R2 al router 2
Aprire la scheda CLI di programmazione del router R0. Premere Invio.
per entrare in modalità Privileged exec: enable
per passare in modalità Configurazione: config terminal)
Identificare il traffico su R1, proveniente dalla sottorete 192.168.1.0/24 e diretto alla sottorete 192.168.2.0/24,
come traffico da proteggere. Il traffico così individuato sarà criptato con il protocollo
IPsec per attraversare la VPN. Tutti gli altri pacchetti generati dalle due sottoreti non saranno criptati.
R0(config)# access-list 110 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Configurare le proprietà della fase 1 su R0, algoritmo di criptografia, funzione hash, metodo di generazione delle chiavi:
R0(config)# crypto isakmp policy 10
R0(config-isakmp)# encryption aes
R0(config-isakmp)# authentication pre-share
R0(config-isakmp)# group 2
R0(config-isakmp)# exit
R0(config)# crypto isakmp key cisco address 10.2.2.1
Configurare le proprietà della fase 2 su R0. Creare il transform-set per usare esp-3des e esp-sha-hmac, poi creare la mappa VPN-MAP che lega insieme tutti i parametri della fase 2. Usare il numero di sequenza 10 e identificarlo come una corrispondenza ipsec-isakmp
R0(config)# crypto ipsec transform-set VPN-SET esp-3des esp-sha-hmacConfigurare la crypto map sull'interfaccia di uscita.
Associare la criptografia VPN-MAP all'interfaccia di uscita Fa0/1
R0(config)# interface Fa0/1
R0(config-if)# crypto map VPN-MAP
Configurare il router R2 per mantenere una VPN con R0:
Configurare la proprietà crypto ISAKMP in policy 10 insieme alla chiave condivisa cisco
R2(config)# access-list 110 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
Configurare le proprietà ISAKMP della fase 1 su R2:
R2(config)# crypto isakmp policy 10
R2(config-isakmp)# encryption aes
R2(config-isakmp)# authentication pre-share
R2(config-isakmp)# group 2
R2(config-isakmp)# exit
R2(config)# crypto isakmp key cisco address 10.1.1.1
Configurare le proprietà ISAKMP della fase 2 su R3. Come con R0, creare il transform-set per usare esp-3des e esp-sha-hmac, poi creare la mappa VPN-MAP che lega insieme tutti i parametri della fase 2. Usare il numero di sequenza 10 e identificarlo come una corrispondenza ipsec-isakmp
R2(config)# crypto ipsec transform-set VPN-SET esp-3des esp-sha-hmacConfigurare la crypto map sull'interfaccia di uscita.
Associare la criptografia VPN-MAP all'interfaccia di uscita Fa0/0
R2(config)# interface Fa0/0
R2(config-if)# crypto map VPN-MAP
R2(config-if)# exit
R2(config)# end
Su R0 dare il comando show crypto ipsec sa. Notare che il numero di pacchetti incapsulati,
criptati , decapsulati e decriptati vale 0 per tutti i contatori.
R0# show crypto ipsec sa
Creare il traffico interessato alla protezione:
inviare un ping dal PC della sottorete 192.168.2.0 al PC della sottorete 192.168.1.0
Verificare il tunnel dopo il passaggio del traffico criptato
Sul router R0 ripetere il comando show crypto ipsec sa ed osservare i contatori di pacchetti
incapsulati, criptati ecc.
Creare un traffico non interessato al tunnel
dal PC di una delle sottoreti inviare un ping al
Router R1
Verificare il tunnel.
Sul router R0 ripetere il comando show crypto ipsec sa e osservare che i contatori non sono cambiati.