Cisco ASA Site to Site VPN
Come noto, una VPN (Virtual Private Network) consente di instradare il traffico su una rete IP (generalmente pubblica) usando un tunnel e per garantire integrità, autenticazione, confidenzialità.
Una connessione site-to- site connette due punti remoti e consente di ‘vedere’ un LAN remota come fosse locale.
Un semplice schema è quello nella seguente figura:
La connessione fra i due siti avviene in due fasi. Con la prima il router che inizia la connessione e si presenta al remoto (peer). Per evitare connessioni indesiderate, occorre una autenticazione. Il meccanismo più semplice ricorre ad una password) pre-shared-key. È anche possibile usare certificati. Durante la prima fase vengono negoziati parametri comuni ai due estremi quali, algoritmo di hash, tipo di crittografia ed altro. Ad esempio, se il sito 1 prevede il solo uso della crittografia DES, mentre il sito 2 vuole un meccanismo più sicuro, 3DES, non sarà possibile stabilire un accordo fra le parti e quindi non ci sarà connessione.
Nella fase 2 le parti si accordano sulla chiave di crittografia del canale (simmetrica) ed altri parametri, per il loro scambio in modo sicuro si usa l’algoritmo di Diffie-Hellman .
Vediamo la configurazione (IKEv1 è uno dei possibili meccanismi per negoziare i parametri della VPN) per un router ASA 55xx con software versione successiva alla 8.4. L’esempio è per il sito 1, per il sito 2 i comandi sono simili (speculari). I comandi che iniziano con ! sono un commento.
Naturalmente occorre un default gateway:
route outside 0.0.0.0 22.55.44.53
Bisogna abilitare IKEv1 sulla porta pubblica (outside)
crypto ikev1 enable outside
Conviene definire con un nome le reti che verranno messe in comunicazione. Rende più semplice identificarle.
object locale network subnet 192.168.64.0 255.255.255.0 object network remoto subnet 192.168.11.0 255.255.255.0 exit
I nomi remoto e locale sono di libera scelta.
Il firewall deve consentire il traffico fra le due reti, quindi occorre una regola di accesso:
acl outside-1-cryptomap permit ip object locale object remoto
outside-1-cryptomap è un nome a piacere.
Il traffico dalla rete privata a verso internet non è, normalmente, soggetto a traslazione di indirizzo (NAT), per cui:
nat (inside, outside) 1 source static locale locale destination static remoto remoto
Il tunnel group identifica la controparte (l’indirizzo pubblico del sito 293.85.120.2) e la password di autenticazione
! tunnel group peer type ipsec-l2l (lan-to-lan)<br />
tunnel group 93.85.120.2 type ipsec-l2l<br />
tunnel group 93.85.120.2 ipsec-attributes<br />
pre-shared-key 123456<br />
! non strettamente necessario, questi valori sono di default<br />
isakmp keep alive threshold 10 retry 2 <br />
exit
123456 è la password che ci identifica sul sito remoto.
Le policy consistono nei parametri scelti per la negoziazione del tunnel. Possono essere più di una. Durante la negoziazione i meccanismi di connessione scelgono una policy comune ai due siti. Se non ne esistono la connessione non viene istaurata. Le policy sono identificate con un numero, quelle con numero più basso sono valutate prima, con maggiore priorità.
! Negioziazione (HAGLE: Hash, Authentication, Group, Lifetime, Encryption)
crypto ikev1 policy 10
authentication pre-share
encrypt 3des
hash sha group 2
lifetime 86400
exit
Il valore lifetime è in secondi ed indica la vita della connessione, scaduta la quale i parametri di connessione vengono rinegoziati (in particolare le chiavi). Un valore basso migliora la sicurezza, ma aumenta l’onere a carico del dispositivo.
Le policy possono essere più di una, e riguardano la negoziazione iniziale. I ‘trasform-set’ definiscono i parametri per attuare una politica di sicurezza per il traffico e interessano il tunnel (IPSec): il meccanismo di autenticazione del payload (AH), come viene criptato il payload (ESP) e che tipo di connessione (transport o tunnel).
crypto ipsec ikev1 transform-set ESP-3DES-SHA esp-3des esp-3des esp-sha-hmac
ESP-3DES-SHA è una stringa di libera scelta che identifica il particolare trasform set.
La parte finale della configurazione riunisce le scelte desiderate per il particolare link.
!crypto map (1 è semplicemente un numero di sequenza)
crypto map outside_map 1 match address outside-1-cryptomap
crypto map outside_map 1 set pfs group1
crypto map outside_map 1 peer 93.85.120.2
crypto map outside_map 1 set trasform ESP-3DES-SHA
crypto map outside_map interface outside
In sostanza per il link sito 1 <-> sito 2, peer 92.85.120.2, si adotta la access list identificata con outside-1-cryptomap, quale sicurezza per la negoziazione dei parametri del link (crypto map outside_map 1 set pfs group1 (Perfect Forward Secrecy), il trasforma set (ESP-3DES-SHA) infine la interfaccia interessata al link.