Una Virtual Private Network o VPN è una rete privata sicura instaurata tra la sede e soggetti che utilizzano un sistema di trasmissione pubblico e condiviso, come Internet. Con l’aumento costante di client mobili e la disponibilità di connessione sempre più capillare, è necessario implementare una soluzione con ampia compatibilità e soprattutto di facile utilizzo da parte degli utenti.
Come requisito di questo tutorial, dobbiamo avere un firewall ASA configurato e funzionante per le proprie funzioni di base, noi andremo ad implementare la soluzione VPN SSL Anyconnect con SPLIT-TUNNEL. In questo modo i client remoti saranno in grado di collegarsi alla rete aziendale, senza perdere la possibilità di navigare attraverso il proprio povider.
Prenderemo questo semplice schema di rete come esempio:
Dopo aver effettuato la prima configurazione dell’ASA, andiamo ad abilitare il protocollo webvpn sull’interfaccia outside ed indichiamo almeno un pacchetto da distribuire per l’installazione del client.
asa5505(config)#Webvpn
asa5505(config-webvpn)#svc image disk0:/anyconnect-win-2.5.2014-k9.pkg
asa5505(config-webvpn)# enable outside
asa5505(config-webvpn)# svc enable
asa5505(config-webvpn)# exit
Creiamo un nuovo pool di indirizzi da assegnare ai client remoti.
asa5505(config)#ip local pool SSLClientPool 192.168.100.50-192.168.100.100 mask 255.255.255.0
Permettiamo il traffico tra le due reti con una ACL.
asa5505(config)#access-list NONAT extended permit ip 10.11.100.0 255.255.255.0 192.168.100.0 255.255.255.0
Creo due oggetti per gli host Lan e per il Pool, poi escludo il nat tra le due reti.
asa5505(config)# object network SSL_subnet
asa5505(config-network-object)# subnet 192.168.100.0 255.255.255.0
asa5505(config-network-object)# exit
asa5505(config)# object network Lan_subnet
asa5505(config-network-object)# subnet 10.11.100.0 255.255.255.0
asa5505(config-network-object)# exit
asa5505(config)# nat (inside,outside) source static Lan_subnet Lan_subnet destination static SSL_subnet SSL_subnet
Definiamo almeno un utente ed assegniamo il servizio remote-access
asa5505(config)#username userA password test123
asa5505(config)#username userA attributes
asa5505(config-username)# service-type remote-access
Creiamo una ACL per identificare il traffico dello split tunnel
asa5505(config)#access-list split-tunnel standard permit 10.11.100.0 255.255.255.0
Creiamo la policy per i client, assegniamo vari attributi, compreso il dns interno della rete.
asa5505(config)#group-policy SSLCLientPolicy internal
asa5505(config)#group-policy SSLCLientPolicy attributes
asa5505(config-group-policy)# dns-server value 192.168.1.100
asa5505(config-group-policy)# vpn-tunnel-protocol svc webvpn
asa5505(config-group-policy)# address-pools value SSLClientPool
asa5505(config-group-policy)# split-tunnel-policy tunnelspecified
sa5505(config-group-policy)# split-tunnel-network-list value split-tunnel
(config-group-policy)# webvpn
(config-group-webvpn)# svc keep-installer installed
(config-group-webvpn)# svc rekey time 30
(config-group-webvpn)# svc rekey method ssl
(config-group-webvpn)# svc ask enable default svc timeout 20
(config-group-webvpn)# exit
(config-group-policy)# exit
(config)# sysopt connection permit-vpn
Definiamo un nuovo profilo per lo split-tunnel ed abilitiamolo.
asa5505(config)#tunnel-group SSLClientProfile type remote-access
asa5505(config)#tunnel-group SSLClientProfile general-attributes
(config-tunnel-general)# default-group-policy SSLCLientPolicy
(config-tunnel-general)# tunnel-group SSLClientProfile webvpn-attributes
(config-tunnel-webvpn)# group-alias SSL_VPN_Client enable
(config-tunnel-webvpn)# webvpn
(config-webvpn)# tunnel-group-list enable
(config-webvpn)# exit
La configurazione dell’ASA è terminata, possiamo puntare con il browser all’indirizzo dell’interfaccia outside per avere il form di login.
Per vedere le sessioni attualmente instaurate, possiamo eseguire questo comando:
asa5505#show vpn-sessiondb
Mentre per disconnettere una o più sessioni possiamo utilizzare:
asa5505#vpn-sessiondb logoff [all | IP]