Implementare una VPN IPsec Site-To-Site con apparati Cisco

head_vpn1Molte aziende con sedi dislocate in varie zone geografiche hanno la necessità di interconnettere le reti per un continuo scambio di dati. In questa situazione l’ideale sarebbe l’acquisto di una linea WAN dedicata, tipo Frame Relay ,con costi molto elevati. Per una soluzione più economica possiamo prendere in considerazione l’utilizzo di una VPN (Virtual Private Network) IPsec (IP Security), la quale ci consente di trasmettere dati in maniera protetta tramite un canale non protetto come una rete internet.

In particolare una VPN Site-TO-Site ci consente di instaurare un tunnel sicuro che passa trà diversi router e provider, rimanendo completamente trasparente ai client, i quali vedranno un solo HOP tra loro e la sede remota.

IPsec è un protocollo che opera a livello 3 del modello ISO/OSI, rimanendo trasparente alle applicazioni che non devono avere nessun particolare prerequisito per interoperare. (beneficiare delle sue funzionalità)

Inoltre ci offre le seguenti caratteristiche di sicurezza:

  • Confidentiality: Tramite crittografia simmetrica dei dati. I principali protocolli utilizzati sono DES 3DES e AES. In questo modo se un malintenzionato dovesse intercettare una comunicazione, non sarà in grado di interpretarla.
  • Integrity: L’integrità dei dati in transito è garantita dal calcolo dell’HASH tramite MD5 o SHA.
  • Authentication: Tramite vari metodi come Pre-Shared-Key e certificati digitali, i due “interlocutori” potranno garantire la propria identità.
  • Secure key Exchange: Consente ai due peers di stabilire una chiave condivisa e segreta utilizzando un canale di comunicazione pubblico, senza la necessità che le due parti si siano scambiate informazioni precedentemente. Questo meccanismo viene messo in atto con il protocollo crittografico Diffie-Hellman. La chiave ottenuta verrà impiegata per cifrare con crittografia simmetrica le comunicazioni successive.

Per offrire queste caratteristiche di sicurezza e scalabilità, IPsec si avvale di vari protocolli: il principale è IKE (Internet Key Exchange), l’obbiettivo di questo protocollo è l’autenticazione delle parti e lo scambio sicuro delle chiavi simmetriche,creando un framework che garantirà comunicazioni sicure.

Un tunnel VPN IPsec viene costruito in due fasi di IKE:

Fase 1 di IKE

All’inizio della prima fase i due endpoint stabiliscono una IKE Security Association negoziando i protocolli di crittografia e autenticazione supportati, se le corrispondenze vengono soddisfatte inizia il processo di scambio sicuro delle chiavi precondivise tramite l’algoritmo Diffie-Hellman.

A questo punto è stato stabilito un primo tunnel chiamato ISAKMP che proteggerà le successive comunicazioni.

Fase 2 di IKE

Nella seconda fase (protetta da ISAKMP) i peers devono stabilire le IPsec Security Association, negoziando il protocollo per la sicurezza (ESP o AH), gli algoritmi di integrity e quelli crittografici (3DES o AES).

A questo punto viene stabilito il vero tunnel IPsec attraverso il quale transiteranno i dati criptati.

C’è da dire che contrariamente alla prima fase, nella seconda il tunnel creato è mono direzionale, quindi per una corretta comunicazione full-duplex vengono instaurati due tunnel.

Come è stato anticipato, per garantire Integrity e Authentication possono essere utilizzati due protocolli: AH(Authentication Header) o ESP(Encapsulating Security Payload) ,quest’ultimo è consigliato in quanto offre anche crittografia. Entrambi possono operare in due modalità, Transport Mode e Tunnel Mode. Con il Transport, l’header ip del pacchetto rimane inalterato, ed è solitamente utilizzato nelle reti dove un incremento della dimensione del pacchetto può generare problemi (remote vpn client), mentre con il tunnel l’intero pacchetto viene incapsulato in un Header IPsec ed è maggiormente utilizzato per vpn Site-TO-Site.

tunnel

Considerazioni

Quando si progetta una vpn si deve cercare di evitare il nat tra le due reti private, infatti quest’ultimo alterando l’header dei pacchetti contrasterebbe con la verifica dell’integrità eseguita da IPsec. Qualora ciò non fosse possibile, cioè nel caso di overlap tra le due network private, sarà necessario attivare la funzione NAT Traversal, che verrà negoziata durante la fase 1 di IKE.

 

Implementazione

Per questo scenario utilizzeremo due Cisco ASA 5505 come Headend Vpn Device

ASA-1

Inside 192.168.1.0/24

Outside 172.6.3.1/24

ASA-2

Inside 192.168.2.0/24

Outside 172.6.4.1/24

VPN_schema

Partiamo con la configurazione di ASA-1

Configurazione ike fase1

ASA-1# conf term

ASA-1(config)# crypto isakmp policy 1

Entra nella modalità isakmp

ASA-1(config)# crypto isakmp enable outside

Abilita nell’interfaccia outside

ASA-1(config-isakmp)# authentication pre-share

Indica che l’autenticazione è con chiave pre-condivisa

ASA-1(config-isakmp)# hash sha

Indica che per l’hash utilizzeremo l’algoritmo sha

ASA-1(config-isakmp)# encryption aes 128

Per la crittografia verrà utilizzato AES a 128bit

ASA-1(config-isakmp)# group 2

Per lo scambio di chiavi viene utilizzato l’algoritmo DH group2 a 1024Bit

ASA-1(config-isakmp)# lifetime 86400

Tempo di validità delle SA espresso in secondi(24 ore)

ASA-1(config-isakmp)# exit

Configurare ike fase2 (protetta da isakmp)

ASA-1(config)# crypto ipsec transform-set MYSET esp-aes esp-sha-hmac

ASA-1(cfg-crypto-trans)# exit

Crea un transform set chiamato MYSET, ed indica che deve usare AES come crittografia e SHA come hash

ASA-1(config)# access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.254

Questa ACL identifica il traffico che sarà protetto da IPsec

ASA-1(config)# crypto map Cmap1 1 match address 101

Crea un crypto map e associa l’acl 101

ASA-1(config)# crypto map Cmap1 1 set peer 172.6.4.1

Specifica l’indirizzo ip dell’altro peer

ASA-1(config)# crypto map Cmap1 1 set transform-set MYSET

Applica al crypto map il transform-set precedentemente creato

ASA-1(config)# crypto map Cmap1 1 interface outside

Applica il crypto-map all’interfaccia outside

ASA-1(config)# tunnel-group 172.6.4.1 type ipsec-l2l

ASA-1(config)# tunnel-group 172.6.4.1 ipsec-attributes

ASA-1(config)# pre-shared-key Pa$$word

Creo un tunnel group di tipo IPsec e assegno la pre-shared key

La configurazione dell’ ASA-2 sarà grosso modo speculare:

ASA-1# conf term

ASA-1(config)# crypto isakmp policy 1

ASA-1(config)# crypto isakmp enable outside

ASA-1(config-isakmp)# authentication pre-share

ASA-1(config-isakmp)# hash sha

ASA-1(config-isakmp)# encryption aes 128

ASA-1(config-isakmp)# group 2

ASA-1(config-isakmp)# lifetime 86400

ASA-1(config-isakmp)# exit

ASA-1(config)# crypto ipsec transform-set MYSET esp-aes esp-sha-hmac

ASA-1(cfg-crypto-trans)# exit

ASA-1(config)# access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.254

ASA-1(config)# crypto map Cmap1 1 match address 101

ASA-1(config)# crypto map Cmap1 1 set peer 172.6.3.1

ASA-1(config)# crypto map Cmap1 1 set transform-set MYSET

ASA-1(config)# crypto map Cmap1 1 interface outside

ASA-1(config)# tunnel-group 172.6.3.1 type ipsec-l2l

ASA-1(config)# tunnel-group 172.6.3.1 ipsec-attributes

ASA-1(config)# pre-shared-key Pa$$word

Ora basterà eseguire un “ping” da una delle due reti verso l’altra per far salire il tunnel,il primo pacchetto potrebbe scadere perché sarà proprio quello che indicherà al primo dispositivo detto Initiator di fare la proposta al secondo detto Responder.

ipsec_ping

Debug e Troubleshooting

Debug crypto isakmp

Per esaminare la negoziazione IKE

show crypto isakmp sa

Per vedere se le ISAKMP SA sono state negoziate con successo

Show crypto isakmp key

Per vedere la corrispondenza dei peer con le preshared key

Show crypto isakmp policy

Per visualizzare le policy

Show crypto ipsec sa

Per vedere se le IPsec SA sono state negoziate correttamente

Show isakmp stat

Per statistiche di vario tipo

Debug crypto ipsec

Per il debug di IPsec

Share

8 pensieri su “Implementare una VPN IPsec Site-To-Site con apparati Cisco

  1. Interessante, è quasi quello che devo fare io, site-to-site, ma non ho la nuvolina di internet bensi una rete mpls, e 2 fw diversi, 1 asa 5505 e un watchguard firebox 😉

    • Ciao, beh IPsec può essere implementata su qualsiasi tecnologia che consente il trasporto IP.
      Per quanto riguarda gli apparati misti, in TEORIA non ci dovrebbero essere problemi, l’importante è far matchare i protocolli di crittografia, autenticazione,ash ed i timeout. Personalmente ho realizzato con successo vpn trà cisco pix e zyxel zywall.

      Ciao

      • Ho visto la tua competenza, ti chiedo un parere per una vpn fra IPAD e router ZyWALL USG100, sull’IPAD ho configurato L2TP e la stessa cosa sullo ZyWALL, non sono riuscito a fare funzionare il tuttto, l’help desk mi ha detto che la vpn non funziona se il router si trova a valle di un nat (fatto dal router per provider che da la connessione Internet). Considerato che sta funzionando un client ipsec su pc, ho pensato di utilizzare il client ipsec cisco dell’IPAD ma non so come configurare sullo ZxWALL quello che CISCO chiama “nome gruppo”
        Grazie

        • Ciao, effettivamente un firewall dietro nat può dare diversi problemi con le vpn,se ci fai caso l’ho scritto anche nell’articolo.
          Gli apparati zyxel non li conosco, comunque nome gruppo potrebbe indicare l’algoritmo di scambio chiavi, prova a mettere il numero “2” come DH Group2.
          Qui comunque ho trovato una buona guida:
          ftp://ftp.zyxel.it/guide/utm/utm_rsc_vpn.pdf

  2. Grazie per per l’articolo su richiesta 🙂
    Ero già riuscito a configurare la vpn, ma in questo modo sò quello che stò facendo.

Lascia un commento

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