mercredi 29 mai 2013

VPN 1ère partie, Pre-shared key

Bonsoir tous,

Ce soir topic sur la configuration d’un tunnel IPSEC.
Attention accrochez-vous, ça va être long … Les VPN ne sont pas difficiles à configurer mais ils demandent du temps et de la concentration.

Ci-joint mon lab réalise sur GNS3.

J’ai pu configurer différents VPN s’appuyant sur différents protocoles du pre-shared key au certificat en passant par une interface tunnel template. La gestion des certificats n’étant pas du tout ma chose préférée, je ne m’étendrai pas trop sur le sujet …. dans cet article mais je réserve une autre page sur le sujet.

Je ne parlerai dans cet article que de VPN point à point entre des routeurs Cisco, j’essaierai a l’occasion de mélanger les genres avec quelques Alcatels. Pas de Cisco Easy Connect ou autre joyeuseté de ce genre pour l’instant.

Pour la théorie de la chose je vous laisse à Wikipédia pour l'instant !



1. Création d’une Policy ISAKMP (Phase 1, IKE)


En préambule sachez que des profils existent par défaut. Si je tape auth sha par exemple, la ligne n’apparait pas à moins de faire un show run all. Voir tableau récapitulatif.

Nous allons définir les protocoles que nous souhaiterions utiliser lors de la négociation de l’ouverture du tunnel :

crypto isakmp policy 20
 encr aes 256
 authentication pre-share

Typiquement cet exemple renvoie à la configuration de R1

Explications :

Le premier attribut va négocier le protocole utiliser pour l encryption, ici AES avec 256 bits

Le deuxième attribut défini la manière dont on va authentifier le distant. J’utilise ici une clef partagée, c’est la solution la plus simple, on peut la substituer par l’utilisation de certificats. La création de la clef est expliquée un peu plus tard.

crypto isakmp policy 10
 encr 3des
 hash md5
 authentication pre-share
 group 5


Même chose pour le routeur R2 mais en utilisant des protocoles différents. Vous noterez qu’ici le groupe pour DH apparait ainsi que le hash, n’étant pas configures par défaut
Le routeur va donc essayer les règles de la plus basse a la plus élevée pour trouver un terrain d’entente avec son distant. Si aucun paramètre ne concorde, la connexion ne fonctionnera pas.


2. Création de la pre-share key.


Attention, cette étape est inutile au cas où vous utiliseriez des certificats.

crypto keyring vpn 
  pre-shared-key address 30.0.0.1 key test2

Explications :

Le nom de la clef est vpn

La valeur de la clef est « test2 », associée à l’interface du routeur distant (interface physique de R4 dans notre cas)

Le changement de clef peut être fastidieux sur plusieurs éléments actifs, configurez qqch de costaud, de long et complexe pour pouvoir être tranquil très longtemps.

3. Création du profile ISAKMP


Beaucoup d’options disponibles dans ce profil, cependant celle de matching du distant ne peut pas passer à la trappe. On doit aussi spécifier notre clef définie plus tot !

crypto isakmp profile VPN
   keyring vpn
   match identity address 20.0.0.1 255.255.255.255 
   local-address 20.0.0.2


Tableau résumé :



4. IPSEC et Transform-set


La première étape de la négociation du tunnel est achevée, passons maintenant à celle du protocole IPSEC.

crypto ipsec transform-set IPSECVpn ah-sha-hmac esp-aes 
crypto ipsec transform-set IPSECVpn2 esp-aes esp-sha-hmac 

Ici, comme pour le profil ISAKMP on définit les protocoles utilisés pour l’authentification, le hash et l encryption.
On va préférer les versions en esp par rapport au ah pour des raisons de sécurité.

5 Profil IPSEC


Avant dernière étape de configuration, on lie le tout !

crypto ipsec profile VPN
 set transform-set IPSECVpn 
 set isakmp-profile VPN
!
crypto ipsec profile VPN2
 set transform-set IPSECVpn2 
 set isakmp-profile VPN
!
crypto ipsec profile VPNVirtuel
 set transform-set IPSECVpn2 
 set isakmp-profile VPNVirtuel

Plusieurs profils, … on est libre de faire ce que l’on veut.

6 Application au tunnel


On applique le profil IPSEC au tunnel, tunnel protection ipsec profile VPN. On modifie l’encapsulation du tunnel, tunnel mode ipsec ipv4.

interface Tunnel1
 ip unnumbered FastEthernet1/0
 tunnel source FastEthernet1/0
 tunnel mode ipsec ipv4
 tunnel destination 10.0.0.2
 tunnel protection ipsec profile VPN

Le tunnel tombe et remonte au bout de quelques secondes.

Pour ce qui est de la création du template :

interface Virtual-Template1 type tunnel
 ip unnumbered FastEthernet2/0
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile VPNVirtuel

Rien de bien complexe là-dedans.

Pour vérifier le bon fonctionnement du tunnel, show crypto session, les commandes debug du type debug crypto isakmp sont aussi très utiles.

Crypto session current status
Interface: Tunnel2
Profile: VPN
Session status: UP-ACTIVE
Peer: 20.0.0.1 port 500
  IKE SA: local 20.0.0.2/500 remote 20.0.0.1/500 Active
  IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 0.0.0.0/0.0.0.0
        Active SAs: 2, origin: crypto map

show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id status
20.0.0.1        20.0.0.2        QM_IDLE           1002 ACTIVE
IPv6 Crypto ISAKMP SA


Voilà pour le premier chapitre concernant les tunnels VPN. Je reviendrai dessus pour la configuration des pki dans un prochain article .

Bon clic a tous,

1 commentaire:

  1. Pour ce qui est du SA pour la distrie des certificats, je passe sur un serveur windows 2003, ma conf cisco est très instable même après avoir reconfig ntp

    RépondreSupprimer