1.4.7 - Le fasi di creazione di un tunnel IPsec

La creazione di una VPN con linea di comando IOS, sugli apparati Cisco, richiede circa 15 comandi, che di seguito sintetizziamo, per mostrare tutto ciò che è implicato dalla creazione di un tunnel IPsec. È necessario premettere che tale operazione viene svolta in più Fasi:

  1. Per prima cosa viene creato un tunnel di servizio di tipo IKE-Internet Key-Exchange protocol, definito dalla RFC 2409, per lo scambio sicuro dei parametri che poi verranno usati per aprire il vero tunnel IPsec, destinato a trasportare invece i dati dell’utente.      
    I parametri scambiati per creare questo tunnel IKE consentono la creazione di una IKE SA-Security Association. Il protocollo IKE è un ibrido tra il protocollo ISAKMP-Internet Security Association & Key Management Protocol, e un metodo di scambio chiavi di tipo Oakley and Skeme, come DH-Diffie Hellman (a scelta tra i Gruppi 1, 2 e 5, rispettivamente per la generazione di chiavi asimmetriche da 768, 1024 e 1536 bit).    
    Questa Fase 1 per la creazione del tunnel IKE/ISAKMP prevede le seguenti sotto-fasi: 
    1.1 - un primo accordo sui parametri da usare per aprire il tunnel IKE stesso (la policy da usare, l’algoritmo di cifratura, quello di hashing, se la chiave simmetrica deve essere PSK o generata da DH e, in tal caso, di quale Gruppo; infine, il “lifetime” massimo del tunnel)      
    1.2 - la mutua autenticazione tra i due partner (o “peer”)
  2. In Fase 2, nel tunnel IKE così creato, i partner negoziano per conto (on behalf) di IPsec, tutti i parametri per creare la IPsec SA, detti complessivamente “IPsec transform-set”.
  3. Alla fine della IKE Fase 2 viene quindi creata la IPsec SA, cioè aperto il tunnel IPsec.


È inoltre utile sapere che il tunnel IPsec viene usato solo dal traffico definito “interessante”, in uscita dall’interfaccia configurata per la VPN (ad esempio quello destinato alla sede remota dell’azienda), mentre l’altro traffico “non interessante” (ad esempio quello destinato a Internet) viene inoltrato sull’interfaccia senza alcun incapsulamento di sicurezza. Il traffico “interessante” viene intercettato da una Lista di controllo (detta Crypto ACL-Access Control List), e scatena tutte le fasi suddette per l’apertura del tunnel IPsec.

Inoltre, le eventuali ACL che, normalmente, bloccano tutto il traffico entrante nell’interfaccia (come deve fare ogni buon Firewall) devono essere modificate per consentire l’ingresso dei messaggi di tipo ISAKMP (su porta UDP n. 500) per espletare le prime due fasi, e di tipo AH ed ESP per consentire il traffico dati nel tunnel IPsec.

parametri negoziati per la gestione delle varie fasi sono in definitiva:

  • Quelli della “IKE Policy” (detta nei comandi IOS “crypto isakmp policy”):       
    - il tipo di mutua autenticazione (tra: pre-share, rsa-encr e rsa-sig)           
    - il tipo di cifratura (tra: des, 3des, aes, aes192 e aes256) 
    - il gruppo DH prescelto per la generazione delle chiavi simmetriche (tra: 1, 2 e 5)         
    - il tipo di hash da usare per la conferma di integrità e l’autenticazione (tra: md5 e sha)  
    - il lifetime della IKE SA (di solito un giorno = 86400 secondi)    
    (NB: se l’autenticazione avviene col metodo “pre-share”, occorre anche fornire, tramite altri comandi, tale chiave PSK, e l’indirizzo IP o il nome del partner con cui confrontarla)
  • Seguono poi i comandi necessari per la definizione degli “IPsec transform-set” (col comando “crypto ipsec transform-set”), con un nome, e che sono fino a 4, specifici dei protocolli AH, ESP e di Compressione IP:           
    - il tipo di AH Transform previsto (tra: ah-md5-hmac e ah-sha-hmac)     
    - il tipo di ESP Encryption Transform (tra: esp-des, esp-3des, esp-aes e altri 4 tipi)     
    - il tipo di ESP Authentication Transform (tra: esp-md5-hmac e esp-sha-hmac)           
    - il tipo opzionale di IP Compression (se presente, solo: comp-lzs).         
    (NB: L’eventuale Modo IPsec, tra Tunnel e Transport, viene indicato come sotto-comando del tipo di transform-set prescelto)
  • Infine, va creato un contenitore finale di tutti i parametri necessari (detto nei comandi IOS “crypto map”), con un nome, che raccoglie:  
    - il tipo di crypto map stessa (tra ipsec-manual -non vista finora-, ipsec-isakmp e cisco, che implica invece l’uso di una cifratura CET-Cisco Encryption Technology proprietaria)     
    - la crypto ACL che definisce il traffico interessante (col comando “match address n.acl”)
    - il partner con cui aprire il tunnel IPsec (col comando “set peer IP-address”)     
    - il tipo di PFS-Perfect Forward Secrecy di Diffie-Hellman (tra: group1 e group2)        
    - nome dell’IPsec transform-set precedentemente definito (con “set transform-set name”)
    - il lifetime della IPsec SA (col comando “set security-association lifetime seconds”)
  • La crypto map va finalmente applicata all’interfaccia dove si attesta la VPN, col comando di interfaccia “crypto map map-name”.

Come si vede, una “gimkana” di tutto rispetto, da configurare in modo coerente sui due partner!

Ultime modifiche: giovedì, 15 aprile 2021, 20:00