vendredi 20 février 2015

Remote VPN IPSEC sur ASA

Cet article va monter le detail d’une configuration remote vpn sur un asa. De nombreuses notions ont déjà été abordée sur mon article sur le remote VPN avec des routeurs, aussi je ne m’étendrai pas forcément dessus, le but ici est de comprendre la méthode de configuration. Certains préfèreront peut être ASDM, pourquoi pas, mais il est beaucoup plus simple pour le débogage d’utiliser la CLI. A ce propos, le déboguage sur un asa se fait via plusieurs niveaux de verbosité.
ciscoasa#debug crypto isakmp {1-255}
Par défaut à 1, vous n’aurez quasiment pas d’informations. A 100 c’est un peu plus bavard, et à 255 c’est trop bavard (on a les dumps des paquets etc…), cependant, il n’existe pas de niveau intermédiaire (ou je ne les ai pas trouvé), et le niveau 255 est le seul qui fasse apparaitre les SA proposal envoyé par le client distant. Bref, je préfère le débogage sur un bon vieux routeur 


! Définition des IP et paramètres des interfaces
interface Ethernet0/0
 nameif inside
 security-level 100
 ip address 192.168.7.3 255.255.255.0
!
interface Ethernet0/1
 nameif outside
 security-level 0
 ip address 192.0.0.1 255.255.255.0
!
crypto ipsec transform-set TSET esp-aes esp-sha-hmac ! Creation d'un transform set
crypto dynamic-map remote_vpn_dynmap 1 set transform-set TSET !creation d'une crypto map dynamique 
!(rappelez vous, pour le remote VPN on ne dispose pas de l'IP distante, il faut donc une CM Dynamique)
crypto dynamic-map remote_vpn_dynmap 1 set reverse-route ! Activation du reverse route (une route statique par client)
crypto map remote_vpn_map 1 ipsec-isakmp dynamic remote_vpn_dynmap
!(creation d'une crypto map qui utilisera le modèle de la CM Dynamique)
crypto map remote_vpn_map interface outside !application de cette crypto map sur l'interface outside
crypto isakmp enable outside ! activation ISAKMP sur l'interface outside
crypto isakmp policy 1 !creation d'une policy: auth presahre, AES/SHA/DH Group2
 authentication pre-share
 encryption aes
 hash sha
 group 2
 lifetime 86400
no crypto isakmp nat-traversal ! à activer sur l'on traverse du nat (coté client ou server)
!Creer le groupe en premier, sinon vous aurez une erreur lors de l'affectation au tunnel group ou au client
group-policy remote_vpn_group internal !creation d'un groupe d'utilisateurs, le split tunneling, IP dns/wins/... est à définir ici
group-policy remote_vpn_group attributes !définition des attributs de ce groupe
 vpn-tunnel-protocol IPSec  ! actif que pour IPSEC (autre possibilités: L2TP, WEBVPN, ...)
 default-domain value dom.lan
username vpnuser password CsQTPU4apf7BtSoe encrypted ! ajout d'un utilisateur à ce groupe.
username vpnuser attributes
 vpn-group-policy remote_vpn_group
!
tunnel-group remote_vpn type remote-access ! Creation d'un tunnel groupe type remote-access: contient l'ensemble des paramètres (group policy, psk, adresses)
! pour une connexion VPN. Des groupes par défauts sont créés, les options non explicitée utilisent celles de ces groupes
!il faudra utiliser le nom du tunnel group dans la configuration du client VPN, pas celui du group-policy (objet interne)
tunnel-group remote_vpn general-attributes
 address-pool remote_vpn_pool
 default-group-policy remote_vpn_group
tunnel-group remote_vpn ipsec-attributes
 pre-shared-key * !dans la config la clé n'apparaît pas, c'est normal
!
ip local pool remote_vpn_pool 192.168.10.1-192.168.10.100



Les points qui n’ont pas été abordés mais qui peuvent être importants
  • Exemption du nat pour le traffic tunnelé : Creation d’une ACL et utilisation du NAT0
  • Utilisation d’un serveur externe pour l’authentification : Dans le tunnel group, spécifier le authentication-server-group
  • Redistribution des routes statiques dans un protocole de routage
  • Activer le nat traversal, pour encapsuler les packets IPSEC dans un segment UDP afin de ne pas être sensible au nat (uniquement si on utilise HMAC).
  • Renseigner les paramètres de DNS/WINS dans le group-policy
Ceux qui ont du mal avec ces configurations, ASDM peut être un bon outil, assurez vous de cocher la case qui permets de voir les commandes qu’ASDM envoi à l’ASA avant de les envoyer, de cette manière vous pouvez voir les paramètres et leurs commandes associées.
Note: Pour le passage de la SNAF, ces commandes ne sont pas à savoir, il faut simplement savoir les réaliser avec ASDM.
!
interface Ethernet0/0
nameif inside
security-level 100
ip address 192.168.7.3 255.255.255.0
!
interface Ethernet0/1
nameif outside
security-level 0
ip address 192.0.0.1 255.255.255.0
!
crypto ipsec transform-set TSET esp-aes esp-sha-hmac
crypto dynamic-map remote_vpn_dynmap 1 set transform-set TSET
crypto dynamic-map remote_vpn_dynmap 1 set reverse-route
crypto map remote_vpn_map 1 ipsec-isakmp dynamic remote_vpn_dynmap
crypto map remote_vpn_map interface outside
crypto isakmp enable outside
crypto isakmp policy 1
authentication pre-share
encryption aes
hash sha
group 2
lifetime 86400
no crypto isakmp nat-traversal
!
group-policy remote_vpn_group internal
group-policy remote_vpn_group attributes
vpn-tunnel-protocol IPSec
default-domain value dom.lan
username vpnuser password CsQTPU4apf7BtSoe encrypted
username vpnuser attributes
vpn-group-policy remote_vpn_group
username cisco password 3USUcOPFUiMCO4Jk encrypted
tunnel-group remote_vpn type remote-access
tunnel-group remote_vpn general-attributes
address-pool remote_vpn_pool
default-group-policy remote_vpn_group
tunnel-group remote_vpn ipsec-attributes
pre-shared-key *
!