mardi 14 avril 2009

Tunnel IPSEC sur Cisco ASA


Celà fait quelques jours que votre ami DS cherche à mettre en oeuvre une liaison site à site via un tunnel VPN ipsec en s'appuyant sur deux Cisco ASA 5505 au travers de liaisons ADSL. A priori, rien de compliqué : en s'appuyant sur les 'wizards' présents au sein de l'interface java de l'ASA ou en récupérant les exemples sur le site de Cisco. l'affaire aurait dû être entendue. Mais ce n'est qu'après avoir affiné la configuration via l'interface de commande en ligne (CLI) que le but fut atteint. DS n'étant pas un avare, il vous donne, ci-dessous, un exemple commenté des commandes à passer pour faire fonctionner le tunnel. Bien entendu, il suffit de créer la configuration en miroir sur le second ASA pour finaliser la liaison.


!
hostname RTR1
domain-name mondomain.com
enable password xxxxxxxx encrypted
! mot de passe pour permettre l'accès Telnet
passwd xxxxxxxxx encrypted
names
!
interface Vlan1
! Réseau Interne 192.168.1.X/24

nameif inside
security-level 100
ip address 192.168.1.254 255.255.255.0
!
interface Vlan11
! Réseau Externe, adresse récupérée depuis un modem ADSL via DHCP
nameif outside
security-level 0
ip address dhcp
!

interface Ethernet0/0
! Port branché sur le modem ADSL
switchport access vlan 11
!
interface Ethernet0/1
! Port sur le réseau Interne, par défaut le VLAN est 1
switchport access vlan 1
!
interface Ethernet0/2
! Port sur le réseau Interne, par défaut le VLAN est 1
switchport access vlan 1
!

.../...
interface Ethernet0/7
! Port sur le réseau Interne, par défaut le VLAN est 1
switchport access vlan 1
!
ftp mode passive
dns server-group DefaultDNS
domain-name mondomain.com
!

! Les acls laissent passer le trafic IP et ICMP (ping, traceroute)
access-list outside_1_cryptomap extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
access-list outside_cryptomap_1 extended permit icmp 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
access-list outside_cryptomap_2 extended permit icmp 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
!
! Affichage de la conf sur 24 lignes
pager lines 24

!
! deboggage activé
logging enable
logging asdm informational
!
! Interface Java
asdm image disk0:/asdm-523.bin
no asdm history enable

!
route outside 0.0.0.0 0.0.0.0 [adresse IP locale du modem ADSL X.X.X.X]
!
! Activation de l'interface web accessible en https et autorisation depuis le réseau 192.168.1.X
http server enable
http 192.168.1.0 255.255.255.0 inside
!
! Activation de l'accès via Telnet
telnet 192.168.1.0 255.255.255.0 inside
!

! Paramètres VPN IPSEC & IKE
!
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
crypto map outside_map 1 match address outside_1_cryptomap
crypto map outside_map 1 set pfs
crypto map outside_map 1 set peer [adresse IP publique de l'ASA distant]
crypto map outside_map 1 set transform-set ESP-3DES-SHA

crypto map outside_map interface outside
crypto isakmp enable outside
crypto isakmp policy 10
tunnel-group [adresse IP publique de l'ASA distant] type ipsec-l2l
tunnel-group [adresse IP publique de l'ASA distant] ipsec-attributes
pre-shared-key [CLEPARTAGEE_ENTRE_LES_DEUX_ASA]
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400

!
management-access inside
!
! L'ASA fait office de serveur DHCP pour le réseau qu'il protège
!
dhcpd dns X.X.X.X
dhcpd wins X.X.X.X
! adresses IP distribuées localement de 1 à 20
dhcpd address 192.168.1.1-192.168.1.20 inside

dhcpd enable inside
!
!
class-map inspection_default
match default-inspection-traffic
!
!
policy-map type inspect dns preset_dns_map
parameters
message-length maximum 512
policy-map global_policy

class inspection_default
inspect dns preset_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect netbios
inspect rsh
inspect rtsp
inspect skinny
inspect esmtp

inspect sqlnet
inspect sunrpc
inspect tftp
inspect sip
inspect xdmcp
!
service-policy global_policy global
prompt hostname context
: end




IL suffit de faire un ping sur une adresse du site distant pour vérifier que tout est opérationnel. L'interface Java permet de tracer finement les différentes étapes de la connexion.

# sh vpn-sessiondb L2L

Session Type: LAN-to-LAN

Connection : X.X.X.X
Index : 1 IP Addr : X.X.X.X
Protocol : IPSecLAN2LAN Encryption : 3DES
Hashing : SHA1
Bytes Tx : 33149720 Bytes Rx : 1088689487
Login Time : 10:29:57 UTC Fri Apr 12 2009
Duration : 0h:22m:14s
Filter Name :

... ça marche !

Aucun commentaire: