Validation de l’adresse MAC du client DHCPv6 pour empêcher le détournement de session
À partir de la version 18.2R1 de Junos OS, il existe un mécanisme non configurable permettant aux serveurs locaux DHCPv6 et aux agents de relais de déposer des paquets d’un client dont l’adresse MAC est inconnue afin d’empêcher un client malveillant de détourner une session. Lorsqu’un serveur local DHCPv6 ou un agent de relais reçoit un message de sollicitation d’un client pour établir une session, il extrait l’adresse MAC du client (adresse de couche de liaison) du message et l’ajoute à une table locale qui mappe les adresses MAC aux adresses IPv6 ou aux préfixes du client. Le serveur ou l’agent de relais utilise cette table pour comparer les adresses MAC reçues dans les messages ultérieurs du client afin de valider si le client est connu ; Si ce n’est pas le cas, il est considéré comme malveillant et le paquet de contrôle est abandonné. Comme le paquet a échoué à la validation MAC, le compteur de validation MAC client est incrémenté.
L’hypothèse ici est que le client qui envoie le message de sollicitation initial est bénin. Dans ce cas, la validation de l’adresse MAC du client protège contre un client malveillant qui tente de détourner une session client déjà établie ou en cours d’établissement. La validation de l’adresse MAC du client ne protège pas contre un client malveillant qui envoie le message de sollicitation initial.
Lorsqu’aucun agent de relais n’est présent ; Le serveur local partage un lien ou un nœud d’accès avec le client. Dans ce cas, le serveur local extrait l’adresse MAC du client directement à partir de l’en-tête de couche 2 du paquet de contrôle DHCPv6 et valide l’adresse par rapport à la table.
Lorsqu’un agent de relais est présent, la validation est effectuée par l’agent de relais. RFC 6939, Client Link-Layer Address Option in DHCPv6, permet aux agents de relais DHCPv6 connectés au même lien qu’un client DHCPv6 d’extraire l’adresse MAC du client de l’en-tête Ethernet (couche 2) dans le paquet de contrôle DHCPv6 reçu. Le paquet inclut l’adresse de la couche de liaison client comme adresse MAC source dans son en-tête Ethernet. L’agent de relais valide l’adresse MAC par rapport à la valeur de ce client stockée dans sa table locale. Si l’adresse ne correspond pas, le paquet est abandonné.
Si l’adresse est validée par l’agent de relais et que le paquet n’est pas abandonné, l’agent de relais inclut également cette adresse MAC dans l’option 79 (Adresse de couche de liaison client) dans l’en-tête du message de transfert de relais DHCPv6 que l’agent de relais envoie au serveur local. Lorsque le serveur local DHCPv6 reçoit un message de transfert de relais d’un agent de relais, le serveur examine automatiquement le message pour détecter la présence de l’option 79. Lorsque l’option est présente, le serveur local extrait l’adresse MAC et la valide par rapport à la valeur stockée dans la table de ce client. Si l’option 79 n’est pas présente, le serveur local ne peut pas effectuer la validation.
Cependant, comme l’agent de relais a déjà validé l’adresse, le serveur local ne devrait pas découvrir d’incompatibilités d’adresse.
Les scénarios suivants décrivent les configurations possibles de l’agent de relais et leurs implications pour la validation du serveur :
Un seul agent de relais DHCPv6 léger (LDRA ; Couche 2) est connecté entre le client et le serveur. Si la LDRA n’a pas ajouté l’option 79 à l’en-tête, le serveur local extrait l’adresse MAC du client directement à partir de l’en-tête de couche 2 du paquet de contrôle DHCPv6 et valide l’adresse par rapport à la table.
Un ou plusieurs agents de relais DHCPv6 de couche 3 sont connectés entre le client et le serveur. Dans ce cas, le serveur vérifie l’option 79 dans l’en-tête du message de transfert de relais le plus interne envoyé par l’agent de relais. L’en-tête le plus interne est affiché car il s’agit de l’en-tête modifié par le premier agent de relais atteint par le client. D’autres en-têtes sont ajoutés par les agents de relais suivants dans le chemin. Ces agents n’ajoutent pas l’option 79 et ne peuvent pas extraire l’adresse MAC de l’en-tête de couche 2 du premier agent de relais, car cet agent remplace l’adresse par sa propre adresse, comme le fait chaque agent de relais suivant.
Une combinaison d’un agent de relais de couche 2 (LDRA) orienté client et d’un ou plusieurs agents de relais DHCPv6 de couche 3 est connectée entre le client et le serveur. Le serveur vérifie l’option 79 dans l’en-tête le plus interne du message de transfert de relais envoyé par l’agent de relais. Si la LDRA n’a pas ajouté l’option 79 à l’en-tête, elle n’est probablement pas capable de changer l’adresse MAC dans l’en-tête. Par conséquent, le serveur vérifie ensuite le deuxième en-tête interne pour l’option, car le premier agent de relais de couche 3 peut avoir extrait l’adresse MAC et ajouté l’option 79 pour transmettre l’adresse.
Aucune configuration n’est requise pour activer la validation des adresses MAC des clients. Vous pouvez voir combien de paquets de contrôle ont été perdus en raison d’un échec de validation en exécutant la show dhcpv6 server statistics commande.
Avantages de la validation de l’adresse MAC client
La validation de l’adresse MAC du client vous permet d’empêcher un client DHCPv6 avec une adresse MAC inconnue de détourner une session établie par un client connu. L’utilisation des adresses MAC des clients DHCPv6 est susceptible d’augmenter, car elles sont pratiques pour corréler les clients DHCPv4 et DHCPv6 dans un environnement à double pile.
Tableau de l’historique des modifications
La prise en charge des fonctionnalités est déterminée par la plateforme et la version que vous utilisez. Utilisez l’explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.