Comprendre les tunnels IPSec (L2L)

Dans mon rôle actuel, je traite assez fréquemment des tunnels L2L (LAN to LAN). Ils sont le moyen “bon marché” de connecter deux emplacements par rapport aux circuits d’accès dédiés. La seule exigence est d’avoir le bon matériel et une adresse IP statique “toujours active” à chaque emplacement. Je plaisante souvent que la configuration d’un tunnel L2L sur une ASA est facile et ne prend que 20 lignes de configuration dans la CLI. Cela étant dit comme toute autre chose dans le monde des réseaux, si vous ne comprenez pas comment fonctionne la technologie, vous allez vous retrouver coincé un jour. Taper 20 lignes de configuration dans une console et comprendre ce qui se passe sont deux choses entièrement différentes. Dans cet article, je parlerai des bases d’IPSec, de la forme des tunnels et de certaines étapes de dépannage que vous pouvez suivre lorsque vous rencontrez des problèmes.

Terminologie
IPSec (Sécurité du protocole Internet) – Ce dont nous parlons

IKE (Échange de clés Internet) – Considérez IKE comme l’ensemble d’outils requis pour établir et maintenir une connexion sécurisée entre deux points de terminaison. Fondamentalement, IKE permet à la connexion de former et de maintenir des SAs (Associations de sécurité) qui sont la partie clé d’un tunnel IPSec

ISAKMP (Internet Security Association and Key Management Protocol) – ISAKMP est la norme qui définit comment travailler avec SAs. En d’autres termes, ISAKMP gère la façon dont les SAS sont créés, maintenus, modifiés et démolis. Avez-vous remarqué le chevauchement? IKE et ISAKMP semblent terriblement similaires, n’est-ce pas? C’est parce qu’ils le sont. En fait, Cisco le note même dans sa documentation.

” L’Association de sécurité Internet et le Protocole de gestion des clés, également appelé IKE, est le protocole de négociation qui permet à deux hôtes de s’entendre sur la façon de créer une association de sécurité IPSec. Chaque négociation ISAKMP est divisée en deux sections appelées Phase 1 et Phase 2.”

Adresse de pair – Selon le contexte, il s’agit de l’adresse publique à une extrémité du tunnel ou à l’autre extrémité du tunnel.

DH(Diffie-Hellman) – DH permet à deux parties de partager une clé secrète sur un canal non sécurisé. DH est utilisé pendant la phase IKE 1 pour échanger des clés et établir une clé secrète sécurisée.

Ensembles de stratégies ISAKMP – Un ensemble de stratégies spécifiant l’algorithme de chiffrement IKE, l’algorithme d’authentification IKE, le type d’authentification IKE, la version DH et la durée de vie du tunnel IKE. L’ensemble de politiques ISAKMP est utilisé lors des négociations de la phase 1 de l’IKE. Pour rendre cela encore plus déroutant, les ensembles de stratégies ISAKMP sont également appelés ensembles de transformations ISAKMP, ensembles de transformations IKE ou tout simplement d’anciens ensembles de transformations

Ensembles de transformations IPSec – Un ensemble de transformations se compose de paramètres pertinents pour la création de tunnel IPSec. L’ensemble de transformations réel est utilisé pendant la phase IKE 2 et se compose généralement uniquement du type de cryptage et d’authentification IKE. Encore une fois, la partie déroutante est que, souvent, certaines personnes appellent simplement ces ensembles de transformations.

SAs (Associations de sécurité) – Fondamentalement, c’est l’ensemble des paramètres IPSec sur lesquels les deux côtés du tunnel sont d’accord. Je ferai une distinction essentielle ici pour ceux d’entre nous au pays Cisco. Il y aura une SA ISAKMP et une SA IPSec. Plusieurs tunnels sont créés pendant la création du tunnel IPSec. N’oubliez pas que l’ISAKMP SA est considéré comme le résultat de la phase IKE 1 et l’IPSec SA est considéré comme le résultat de la phase IKE 2. De plus, une SA n’est qu’une connexion à sens unique. Puisque la plupart du trafic entre les terminaux nécessitent une communication bidirectionnelle, chaque ASA créera sa propre SA pour parler à l’autre homologue.

Nonce – Un nombre, généralement utilisé pour une clé sécurisée, qui n’est utilisé qu’une seule fois. S’il est utilisé une deuxième fois, c’est généralement le signe d’une tentative de connexion frauduleuse.

Résumé terminologique – La terminologie VPN est vraiment, vraiment, vraiment déroutante. Essayez simplement de vous rappeler qu’ISAKMP et IKE sont parfois utilisés de manière interchangeable. De plus, les ensembles de transformations sont un terme général pour un groupe de paramètres. J’essaie d’utiliser l’expression uniquement en faisant référence à ce que je tape après “transform-set” dans la CLI qui est utilisée pour spécifier le type d’authentification et de cryptage pour la phase IKE 2.

Le processus
Maintenant que nous connaissons certains des termes clés, nous pouvons commencer à parler de la forme du tunnel IPSec. À mon avis, il y a 4 phases dans la vie d’un tunnel IPSec. Je vais les exposer ci–dessous, puis nous en parlerons

Phase 1 – Un trafic intéressant génère la création du tunnel
Phase 2 – IKE Phase 1
Phase 3 – IKE Phase 2
Phase 4 – Terminaison du tunnel

Certaines personnes jettent une phase entre ma phase 3 et 4 et la listent comme “Tunnel IPSec créé” qui, à mon avis, n’est pas réellement une phase. Lister le produit des phases 1 à 3 ne semble pas justifier sa propre phase dans mon esprit. En tout cas, entrons dans le détail de chacun.

Phase 1 – Un trafic intéressant génère la création du tunnel
Ce que beaucoup de gens ne savent pas d’IPSec, c’est que c’est ce que j’appelle un service “à la demande”. Autrement dit, une fois que vous créez un tunnel, il n’est pas opérationnel tout le temps. Ce que nous appelons “trafic intéressant”, déclenche la création d’un tunnel. La création du tunnel ne prend pas beaucoup de temps mais peut, dans la plupart des cas, être remarquée lors de l’utilisation de ping pour tester. Dans la plupart des cas, lorsque j’essaie de lancer un ping depuis une machine cliente à travers le tunnel, la première demande ICMP échouera car le tunnel est en cours de chargement. Les ICMP suivants passent correctement. Le trafic intéressant est défini sur l’ASA avec un ACL. Ensuite, l’ACL est spécifiée dans la carte crypto des tunnels avec une commande ‘adresse de correspondance’. Un exemple d’ACL pourrait ressembler à ceci

liste d’accès L2LCryptoMap ip de permis étendu < Sous-réseau local > < Masque local > < Sous-réseau de destination > < Masque de destination >

Vous dites à l’ASA de faire correspondre le trafic provenant de votre sous-réseau au sous-réseau de l’autre côté du tunnel. Cela soulève la question des sous-réseaux privés en double. Si votre sous-réseau sur l’interface interne des deux ASA est le même, vous allez avoir des problèmes. Pensez-y de cette façon, lorsqu’un client d’un côté essaie d’accéder à une ressource de l’autre sous-réseau, il n’ira nulle part. Par défaut, le client recherchera une réponse car il pense que le client distant auquel vous essayez d’accéder se trouve sur son sous-réseau local. Puisqu’il n’essaie pas de quitter le sous-réseau, le client ne contactera jamais la passerelle par défaut (l’interface interne de l’ASA) et vous ne formerez jamais de tunnel. Même si vous le faisiez, le trafic ne coulerait toujours pas. Il y a des choses “délicates” que nous pouvons faire pour résoudre ce problème, mais elles ne relèvent pas du domaine de cette entrée de blog. La meilleure situation est d’avoir des réseaux privés uniques à chaque emplacement.

Phase 2 – Phase 1 d’IKE
Une fois que l’ASA obtient une demande pour un sous-réseau distant, qu’elle assortit à une carte de crypto, la phase 1 d’IKE commence. L’objectif de la phase IKE 1 est de configurer la connexion pour la phase IKE 2. Fondamentalement, la phase 1 d’IKE établit le travail de base pour que la connexion réelle se produise. Il crée en fait sa propre SA, parfois appelée SA de gestion. Cette SA de gestion est utilisée par IKE phase 2 pour créer les tunnels de données réels. D’un point de vue technique, la phase 1 comporte trois étapes. La première étape s’appelle la négociation de politiques. La négociation de stratégie se résume à trouver des ensembles de transformations correspondants sur chaque point de terminaison. Avant que l’ISAKMP SA ne se forme, chaque point de terminaison doit convenir d’un ensemble de stratégies IKE correspondant. Les éléments suivants doivent correspondre à la stratégie définie de chaque côté du tunnel.

– L’algorithme de chiffrement IKE
– L’algorithme d’authentification IKE
– La définition de clé IKE
– La Version Diffie Hellman
– La durée de vie IKE

N’oubliez pas que les ensembles de stratégies IKE sont associés à l’achèvement de la phase 1 IKE. Un point de terminaison peut avoir n’importe quel nombre d’ensembles de stratégies qui sont évalués dans un ordre. Par exemple, vous pouvez avoir des stratégies définies 10, 20 et 30. Les points de terminaison parcourront les ensembles de stratégies dans l’ordre, en commençant par le plus bas en premier jusqu’à ce qu’ils trouvent une correspondance. Par conséquent, il est logique de définir d’abord des ensembles de politiques plus solides. S’ils sont définis après des ensembles de stratégies plus faibles, vous risquez de trouver d’abord une correspondance plus faible.

Maintenant, avant d’aller trop loin dans la phase IKE 1, il est pertinent d’expliquer qu’il existe deux types différents de phase IKE 1. Celui utilisé le plus souvent est appelé “mode principal” et consiste en 6 messages échangés entre pairs. L’autre type est appelé mode “agressif” et condense les messages envoyés entre pairs en 3 messages. Le mode principal est plus lent dans la configuration mais plus sécurisé. Le mode agressif est plus rapide dans la configuration mais moins sécurisé. Ne me citez pas à ce sujet, mais je crois que le mode principal est utilisé par défaut. Je ne vais pas plonger dans les détails ici, ils accomplissent tous les deux la même chose et les détails que j’ai énumérés ci-dessus devraient vous indiquer les grandes différences.

Notre première étape vers la phase 1 de l’IKE a été la négociation de politiques – les pairs doivent s’entendre sur un ensemble de politiques correspondant. Pour ce faire, ils s’envoient des ensembles de stratégies pour les comparer et trouvent l’ensemble de stratégies correspondant le plus bas. Une fois cela terminé, nous pouvons passer à l’étape suivante qui est l’échange de clés DH. Au cours de ce processus, les pairs échangent des clés publiques qui sont utilisées pour établir le secret partagé. Une fois ce processus terminé, la phase 1 SA (ISAKMP SA) est formée et nous passons à la dernière étape qui est l’authentification par les pairs.

Pendant l’authentification par les pairs, la méthode d’authentification définie est utilisée pour s’assurer que les périphériques indésirables ne forment pas de connexions sécurisées sur votre réseau. La plupart du temps, cela se fait avec des clés pré-partagées. Cette étape est assez simple, les pairs vérifient que les clés correspondent. Si ce n’est pas le cas, l’authentification échoue. S’ils correspondent, nous passons à la phase IKE 2.

Phase 3 – IKE Phase 2
J’aime penser à IKE phase 2 comme la construction réelle du tunnel de données. Jusqu’à présent, le travail consistait principalement à s’assurer que nous disposions d’un canal de communication sécurisé afin de pouvoir construire le SAS IPSec proprement dit. Par rapport à IKE phase 1, IKE phase 2 n’a qu’un seul type de mode appelé “mode rapide”. Le mode rapide utilise la SA ISAKMP existante créée dans la phase 1 d’IKE et crée le SAs IPSec et gère les échanges de clés. La première étape du mode rapide consiste à négocier les ensembles de transformations IPSec (pas les mêmes que les ensembles de stratégies ISAKMP !!). Les éléments suivants doivent correspondre aux deux extrémités pour que le SAS IPSec se forme.

– Le Protocole IPSec
– Le type de cryptage IPSec
– Le type d’authentification IPSec
– Le mode IPSec
– La durée de vie IPSec SA

Prenons maintenant un bref moment pour comparer les ensembles de transformations de la phase 1 et de la phase 2 d’IKE. Ce qui suit est une configuration typique hors d’une ASA.

Ensemble de stratégies ISAKMP
crypto politique isakmp 10
pré-partage d’authentification
cryptage 3des
hachage sha
groupe 2
durée de vie 86400

transformation IPSec
ensemble de transformations ipsec crypto ESP-3DES-SHA esp-3des esp-sha-hmac

Vous voyez quelque chose d’étrange ? Dans l’ensemble de stratégies ISAKMP, vous pouvez clairement voir les 5 éléments requis de l’ensemble de transformations qui doivent être convenus. Dans la transformation IPSec, ce n’est pas si clair. En effet, la transformation ne définit vraiment que 3 des 5 pièces requises. L’exemple ci-dessus définit le protocole IPSec (ESP), le type d’authentification IPSec (SHA) et le type de cryptage IPSec (3DES). Le mode IPSec et la durée de vie IPSec SA n’ont pas besoin d’être définis. Quand ils ne le sont pas, l’ASA suppose simplement les valeurs suivantes de 28 800 pour la durée de vie de SA et le mode ” tunnel ” pour tous les ensembles de transformations. Je ne change généralement pas ces valeurs à moins que l’autre côté ne les change.

Donc, une fois que les ensembles de transformations ont été négociés et appariés, nous pouvons créer le SAS IPSec. Comme indiqué ci-dessus, une SA est une connexion unidirectionnelle. Donc, pour que le trafic circule dans chaque sens, deux SAS IPSec doivent se former. L’ASA fait ce travail pour vous bien sûr, il n’y a donc pas beaucoup de détails à partager ici. Le mode rapide utilise des nonces pour générer de nouveaux éléments clés qui empêchent les attaques par rediffusion. La troisième étape est le processus de renégociation périodique de la connexion. Le SAs doit être régénéré avant l’expiration de la durée de vie du tunnel. Le mode rapide surveille cela et génère de nouveaux SAS avant l’expiration des anciens.

Phase 4 – Terminaison du tunnel
À ce stade, nous avons un tunnel VPN entièrement fonctionnel! La circulation devrait passer dans les deux sens. La seule chose à faire est de démolir le tunnel s’il n’y a pas de trafic intéressant. Les SAS ne sont régénérés que si un trafic intéressant continue de circuler. Si le trafic intéressant cesse de venir dans le SA est autorisé à expirer après que sa durée de vie a été atteinte. Si l’AS est autorisé à expirer, TOUTES les données concernant le SAS sont éliminées de l’AS. La prochaine fois que du trafic intéressant sera généré, l’ensemble du processus partira de zéro.

Dépannage
Le problème le plus courant dans la connectivité IPSec ne trouve pas de correspondances d’ensembles de transformations pour les phases IKE 1 et 2. Si vous rencontrez des problèmes, la première chose à faire est de vérifier les paramètres des deux côtés pour vous assurer qu’ils correspondent à 100%. La prochaine chose que vous pouvez faire est de regarder les SAS sur l’ASA et de déterminer s’ils sont créés et s’ils le sont, quel statut ils ont.

Pour voir la SA de phase 1 IKE émettre cette commande
ASA # show crypto isakmp sa

Pour voir la SA de phase 2 IKE émettre cette commande
ASA # show crypto ipsec sa

Si vous n’avez pas de SA de phase 1, vous n’irez pas très loin. L’état de l’AS vous dit quelques choses. Il vous indique si l’AS a été créé ou non avec le mode principal ou agressif, de quel côté a fait monter le tunnel, et vous indique également l’état des négociations. Un aperçu d’une SA de phase 1 typique est présenté ci-dessous.

ASA # afficher la crypto isakmp sa
Active SA: 1
Rekey SA: 0 (Un tunnel signalera 1 SA actif et 1 SA Rekey pendant la rekey)
Total SA IKE: 1

1 Peer IKE: < Adresse IP du Peer >
Type: L2L Role: responder
Rekey: no State: MM_ACTIVE

Comme vous pouvez le voir sur la sortie ci-dessus, nous avons une SA IKE phase 1. Le type est ‘L2L’ (ce qui indique qu’il s’agit d’un tunnel IPSec de site à site), le rôle est ‘responder’ (ce qui signifie que le pair a déclenché le tunnel) et l’état est MM_Active (ce qui signifie qu’il utilise le mode principal (MM) et que la phase IKE 1 fonctionne (ACTIVE)). MM_ACTIVE est ce que nous voulons voir sur une phase 1 IKE SA. Cela signifie que tout est prêt pour la phase IKE 2. Alors, que devez-vous faire si vous n’avez pas l’état ACTIF? Ou pas de SA du tout?

Plusieurs autres états peuvent vous indiquer ce qui se passe avec l’ISAKMP SA.

Remarque: Ces codes d’état sont uniquement pour la version ASA la plus récente, le code IPSec plus ancien utilisait des messages d’état différents.
Les deux premières lettres vous indiquent si la connexion a été établie avec le mode principal (MM) ou le mode agressif (AM). Comme il peut s’agir d’un mode principal ou agressif, je listerai simplement ‘XX’ ci-dessous. Certes, vous ne verrez que certains d’entre eux en mode principal ou agressif. Les définitions que j’énumère à chaque État sont ce que j’ai trouvé être le problème dans la plupart des cas.

XX_Active–Connected
XX_KEY_EXCH – Erreur d’authentification, vérifiez votre méthode d’authentification
XX_INIT_EXCH – Erreur d’authentification, vérifiez votre méthode d’authentification
XX_NO_STATE – Impossible de faire correspondre les stratégies IKE Phase 1, vérifiez de chaque côté
XX_WAIT_MSG2 – En attente de réponse de l’homologue

De plus si vous n’avez pas a SA du tout, commencez par vérifier l’évidence. Commencez à la couche 1 et remontez en vous assurant que les deux unités ont une connectivité et que les adresses des homologues sont correctes.

99% du temps, un problème concerne l’IKE phase 1 SA. Si vous obtenez un état ACTIF sur la phase 1, vous êtes probablement en bonne forme. Si vous rencontrez toujours des problèmes, jetez un œil à votre SA IKE phase 2. Je ne vais pas en montrer un exemple car ce ne sont que des statistiques. Le même concept s’applique cependant, si vous n’avez pas de SA IPSec, vous n’avez pas de tunnel VPN.

Débogage
Si vous rencontrez toujours des problèmes, comme toute autre chose sur l’ASA, essayez le débogage. Les deux commandes que vous recherchez seraient…

ASA # debug crypto isakmp
ASA # debug crypto ipsec
ASA # terminal monitor

Assurez-vous d’activer terminal monitor si vous n’êtes pas sur le port de la console

Le gros correctif
Je ne peux pas vous dire combien de fois j’ai passé des heures à essayer de charger un tunnel sans aucun succès . En fin de compte, deux commandes ont toujours résolu mes problèmes. Lorsque tout le reste échoue, effacez tous vos SAS ISAKMP et IPSEC. Cela éliminera bien sûr TOUTES les connexions IPSec à la boîte. Quelque chose à propos de simplement souffler toutes les autres connexions et de repartir de zéro semble le réparer. Pour ce faire ….

ASA # clear crypto ipsec sa
ASA #clear crypto isakmp sa

Conclusion
J’espère que vous avez vu, à travers cet article, qu’avoir une compréhension de base du fonctionnement d’IPSec fait toute la différence. Savoir où rechercher les erreurs et comment les interpréter est la clé du dépannage des tunnels IPSec L2L.

Leave a Reply