#liste_articles {display:block}

Interconnexion VPN IPsec sur le réseau ARI

lundi 22 novembre 2004

 

Interconnexion dans l’intranet en VPN IPsec

Introduction

L’intranet Départemental permet aujourd’hui aux communes adhérentes au SRDC de disposer de liaisons intranet haut-débit. Il est donc possible de déployer de nouvelles applications : partage de fichiers, terminaux légers distants, vidéosurveillance, téléphonie sur IP, etc...

Pour ces applications sensibles, il est recommandé de sécuriser autant que possible les liaisons entre les sites. Compte tenu de la topologie et du fonctionnement du réseau ARI, sur lequel chaque usager a la maitrise de son routeur, il n’est pas possible de garantir l’authenticité des flux en provenance d’une adresse IP du réseau.

IPsec peut facilement palier à cet inconvénient. En effet, aujourd’hui, la plupart des routeurs, même d’entére de gamme supportent l’IPsec. Nous présentons ici des configurations utilisables sur Cisco 831 ou 1721 (notez que le Cisco 831 ne peut gérer que 10 tunnels VPNs).

Topologies

ERASME attribue les adresses privées à utiliser sur les sites raccordés au réseau ARI. Dans certains cas, les sites raccordés ne souhaitent pas utiliser ces adresses pour ne pas avoir à migrer un grand nombre de postes internes. Or, si des adresses non ERASME sont utilisées, il n’est pas possible de les annoncer en RIPv2 sur le réseau. La création de tunnels entre deux sites dans cette situation pose donc un problème, puisque pour un routeur d’interconnexion donné, l’adresse WAN est obtenue en DHCP, et l’adresse LAN n’est pas connue du reste du réseau. Il est donc virtuellement injoignable. Pour résoudre ce cas, il y a deux solutions : créer un réseau d’interconnexion en adresses officielles (nécessite l’acquisition d’un routeur supplémentaire), ou utiliser une adresse de loopback annoncée sur le réseau. Dans la mesure ou les configurations présentés sont à destination de routeurs Cisco, nous utiliseront cette dernière technique, plus économique.

Deux cas seront donc présentés ci-dessous (adresses officielles, adresses non officielles) permettant de raccorder, dans notre exemple, une annexe à sa mairie.

Interconnexion en adressage officiel

Cette topologie utilise les adresses officielles qui ont été attribuées au site par ERASME. Si vous ne connaissez pas les adresses qui vous ont été réservées, n’hésitez pas à nous contacter.

Inteconnexion en adressage officiel

La seule difficulté par rapport à une configuration IPsec classique, réside dans le fait que l’interface sur laquelle la crypto map est activée a une adresse DHCP. Il n’est donc pas possible de l’utiliser comme peer dans la configuration du routeur partenaire. Il faut donc utiliser les interfaces LAN comme peers dans la configuration IPsec, mais dans ce cas, il faut aussi forcer le routeur à effectuer sa négociation isakmp. Cette modification se fait facilement avec la commande suivante :

crypto map sites-distants local-address Ethernet0

Cela permet de forcer l’utilisation de l’IP de l’interface Ethernet0 comme adresse IP source lors de la négociation IKE.

Les configurations [1] des deux routeurs peers sont données ci-dessous. Les mots clefs en majuscules (PRE_SHARED_KEY, SECRET) ainsi que les adresse IP (A, B, C et D) doivent être modifiés pour refléter votre configuration. Vous pouvez aussi modifier d’autres paramètres en fonction de vos besoins, notamment ceux liés à la cryptographie (SA lifetimes, algos de chiffrement, etc...).


Configuration de l’annexe

!
service password-encryption
!
hostname cpe-annexe.mairies.lan
!
enable secret 0 SECRET
enable password 0 SECRET
!
username operateur privilege 15 password 0 SECRET
!
ip subnet-zero
!
crypto isakmp policy 1
 encr 3des
 authentication pre-share
 group 2
 lifetime 3600
crypto isakmp key 0 PRE_SHARED_KEY address 172.A.B.1
!
crypto ipsec transform-set default-ts esp-3des esp-sha-hmac 
!
crypto map sites-distants local-address Ethernet0
!
crypto map sites-distants 1 ipsec-isakmp 
 set peer 172.A.B.1
 set security-association lifetime kilobytes 1000000
 set transform-set default-ts 
 set pfs group1
 match address traffic-annexe-mairie
!
interface Ethernet0
 ip address 172.C.D.1 255.255.255.192
 ip tcp adjust-mss 1452
 no cdp enable
 hold-queue 32 in
 hold-queue 100 out
!
interface Ethernet1
 ip address dhcp
 ip tcp adjust-mss 1452
 duplex auto
 no cdp enable
 crypto map sites-distants
!
router rip
 version 2
 passive-interface Ethernet0
 network 172.C.D.0
 network 172.23.0.0
 no auto-summary
!
ip classless
!
ip access-list extended traffic-annexe-mairie
 permit ip 172.C.D.0 0.0.0.63 172.A.B.0 0.0.0.63
!
line vty 0 4
 exec-timeout 30 0
 password 0 SECRET
 login local
 length 0
 escape-character 3
!

Configuration de la mairie

!
service password-encryption
!
hostname cpe-mairie.mairies.lan
!
enable secret 0 SECRET
enable password 0 SECRET
!
username operateur privilege 15 password 0 SECRET
!
ip subnet-zero
!
crypto isakmp policy 1
 encr 3des
 authentication pre-share
 group 2
 lifetime 3600
crypto isakmp key 0 PRE_SHARED_KEY address 172.C.D.1
!
crypto ipsec transform-set default-ts esp-3des esp-sha-hmac 
!
crypto map sites-distants local-address Ethernet0
!
crypto map sites-distants 1 ipsec-isakmp 
 set peer 172.C.D.1
 set security-association lifetime kilobytes 1000000
 set transform-set default-ts 
 set pfs group1
 match address traffic-mairie-annexe
!
interface Ethernet0
 ip address 172.A.B.1 255.255.255.192
 ip tcp adjust-mss 1452
 no cdp enable
 hold-queue 32 in
 hold-queue 100 out
!
interface Ethernet1
 ip address dhcp
 ip tcp adjust-mss 1452
 duplex auto
 no cdp enable
 crypto map sites-distants
!
router rip
 version 2
 passive-interface Ethernet0
 network 172.A.B.0
 network 172.23.0.0
 no auto-summary
!
ip classless
!
ip access-list extended traffic-mairie-annexe
 permit ip 172.A.B.0 0.0.0.63 172.C.D.0 0.0.0.63 
!
line vty 0 4
 exec-timeout 30 0
 password 0 SECRET
 login local
 length 0
 escape-character 3
!

Interconnexion en adressage non-officiel

Dans cette configuration, deux problèmes se posent. Le premier est toujours le même : nous n’avons pas d’adresse WAN fixe. Mais une autre difficulté s’y ajoute : nous désirons garder notre adressage interne, non compatible avec le réseau ERASME, et donc impossible à annoncer. Dans ce cas, aucune des adresses du routeur (et du réseau local) ne peut être atteinte. nous allons malgré tout parvenir à faire communiquer nos deux réseaux, aux adresses incompatibles avec le réseau ERASME, à travers ce dernier.

Interconnexion en adressage non-officiel

Pour cela, il est nécéssaire d’utiliser une adresse de loopback, qui sera annoncée sur le réseau ERASME. Pour cette raison, il est nécessaire d’utiliser une adresse compatible avec l’adressage ERASME ; dans le cas contraire, cela n’aurait aucune utilité. Il est par ailleurs impératif d’utiliser une adresse de loopback distincte de la plage d’adresse qui à été initialement prévue pour le site. En effet, annoncer une loopback revient à annoncer un réseau ne contenant qu’une seule adresse (/32). Inutile donc de gaspiller le réseau initialement alloué (en général, un /26 ou un /27). ERASME à réservé dans son plan d’adressage une plage d’adresses afin de pouvoir attribuer des adresses de loopback aux usagers. N’hésitez pas à nous contacter pour en obtenir une.

interface Loopback0
 ip address 172.C.D.1 255.255.255.255

crypto map sites-distants local-address Loopback0

Cela permet de forcer l’utilisation de l’IP de l’interface Loopback0 comme adresse IP source lors de la négociation IKE.

Les configurations finales des deux routeurs peers sont données ci-dessous. Les mots clefs en majuscules (PRE_SHARED_KEY, SECRET) ainsi que les adresse IP (A, B, C et D) doivent être modifiés pour refléter votre configuration.
D’autre part, IPsec vous permet de vous assurer que votre correspondant est bien celui que vous croyez (en l’occurence, la mairie vérifie que l’annexe est bien l’annexe et vice-versa), mais c’est tout. Il faut donc aussi impérativement implémenter les nécessaires règles de filtrage (non décrites ici) au niveau des deux routeurs, en ne laissant passer, par exemple, que de l’IPsec.


Configuration de l’annexe

!
service password-encryption
!
hostname cpe-annexe.mairies.lan
!
enable secret 0 SECRET
enable password 0 SECRET
!
username operateur privilege 15 password 0 SECRET
!
ip subnet-zero
!
crypto isakmp policy 1
 encr 3des
 authentication pre-share
 group 2
 lifetime 3600
crypto isakmp key 0 PRE_SHARED_KEY address 172.A.B.1
!
crypto ipsec transform-set default-ts esp-3des esp-sha-hmac 
!
crypto map sites-distants local-address Loopback0
!
crypto map sites-distants 1 ipsec-isakmp 
 set peer 172.A.B.1
 set security-association lifetime kilobytes 1000000
 set transform-set default-ts 
 set pfs group1
 match address traffic-annexe-mairie
!
interface Loopback0
 ip address 172.C.D.1 255.255.255.255
!
interface Ethernet0
 ip address 10.1.2.1 255.255.255.0
 ip tcp adjust-mss 1452
!
interface Ethernet1
 ip address dhcp
 crypto map sites-distants
!
router rip
 version 2
 passive-interface Ethernet0
 passive-interface Loopback0
 network 172.C.D.0
 network 172.23.0.0
 no auto-summary
!
ip classless
!
ip access-list extended traffic-annexe-mairie
 permit ip 10.1.2.0 0 0.0.0.255 10.1.1.0 0 0.0.0.255 
!
line vty 0 4
 exec-timeout 30 0
 password 0 SECRET
 login local
 length 0
 escape-character 3
!

Configuration de la mairie

!
service password-encryption
!
hostname cpe-mairie.mairies.lan
!
enable secret 0 SECRET
enable password 0 SECRET
!
username operateur privilege 15 password 0 SECRET
!
ip subnet-zero
!
crypto isakmp policy 1
 encr 3des
 authentication pre-share
 group 2
 lifetime 3600
crypto isakmp key 0 PRE_SHARED_KEY address 172.C.D.1
!
crypto ipsec transform-set default-ts esp-3des esp-sha-hmac 
!
crypto map sites-distants local-address Loopback0
!
crypto map sites-distants 1 ipsec-isakmp 
 set peer 172.C.D.1
 set security-association lifetime kilobytes 1000000
 set transform-set default-ts 
 set pfs group1
 match address traffic-mairie-annexe
!
interface Loopback0
 ip address 172.A.B.1 255.255.255.255
!
interface Ethernet0
 ip address 10.1.1.1 255.255.255.0
 ip tcp adjust-mss 1452
 no cdp enable
 hold-queue 32 in
 hold-queue 100 out
!
interface Ethernet1
 ip address dhcp
 ip tcp adjust-mss 1452
 duplex auto
 no cdp enable
 crypto map sites-distants
!
router rip
 version 2
 passive-interface Ethernet0
 passive-interface Loopback0
 network 172.A.B.0
 network 172.23.0.0
 no auto-summary
!
ip classless
!
ip access-list extended traffic-mairie-annexe
 permit ip 10.1.1.0 0.0.0.255 10.1.2.0 0 0.0.0.255 
!
line vty 0 4
 exec-timeout 30 0
 password 0 SECRET
 login local
 length 0
 escape-character 3
!

Autres configurations

Rien n’interdit de mixer ces configurations : il est possible que, par exemple, la mairie désire utiliser un plan d’adressage incompatible ERASME, alors que le déploiement d’un tel adressage ne pose pas de problème sur le site distant. On emploiera dans ce cas la Loopback sur la mairie, et une configuration plus classique sur le site distant.

D’autres configurations à base d’IPsec sont aussi envisageables sur le réseau. Par exemple, la mairie ci-dessus peut recevoir du traffic en provenance d’autres sites. Il suffit pour cela d’avoir une entrée « crypto map sites-distants n ipsec-isakmp » et une access-list correspondante par site distant.

Autre exemple, il est possible de concentrer tous les flux d’un site distant vers un site central.
Dans l’exemple ci-dessus, si l’access-list de l’annexe avait été :

ip access-list extended traffic-annexe-mairie
 permit ip 10.1.2.0 0 0.0.0.255 any

et celui de la mairie symétrique, tout le trafic non local de l’annexe passerait par la mairie.
Cela permettrait à un site central de fournir, par exemple, un accès internet à tous ses sites distants.

Pour aller plus loin

Toutes les technologies de tunneling [2] [3] (chiffrées ou non) sont utilisables sur le réseau (OpenVPN, cipe, 6in4, 4in4, GRE...).
Il n’y a donc pas qu’IPsec, et en fonction de vos besoins, vous pourrez vous tourner vers d’autres solutions. L’avantage d’IPsec est qu’il est relativement portable d’un fabricant à l’autre.
En revanche, il a un certain nombre de lacunes (support du NAT compliqué et pas systématique, mauvaise scalabilité, ...).
Vous trouverez bientôt sur le site une liste de routeurs que nous avons testé, et qui vous aidera sans doute dans vos choix.

[1Notez que seules les parties ayant un rapport avec cet artcile sont incluses ; par ailleurs, les commandes IOS peuvent varier sensiblement d’une architecture à une autre. your mileage may vary.

Documents :

par Michel Blanc