Dans ce laboratoire, vous apprendrez à utiliser Wireshark, un puissant analyseur de protocoles réseau, pour capturer et analyser le trafic réseau IPv6. IPv6, le protocole Internet de nouvelle génération, offre un espace d'adressage plus vaste et des fonctionnalités de sécurité améliorées par rapport à IPv4.
À mesure que l'adoption d'IPv6 se développe, il est essentiel pour les professionnels de la cybersécurité de savoir comment surveiller et dépanner les réseaux IPv6 à l'aide d'outils tels que Wireshark. Ce laboratoire pratique vous donnera une expérience pratique de la surveillance du trafic IPv6, applicable dans des environnements réseau réels.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"])
wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture")
wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters")
wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets")
wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis")
wireshark/WiresharkGroup -.-> wireshark/ipv6_support("IPv6 Support")
subgraph Lab Skills
wireshark/packet_capture -.-> lab-415950{{"Analyser le trafic IPv6 avec Wireshark"}}
wireshark/display_filters -.-> lab-415950{{"Analyser le trafic IPv6 avec Wireshark"}}
wireshark/export_packets -.-> lab-415950{{"Analyser le trafic IPv6 avec Wireshark"}}
wireshark/packet_analysis -.-> lab-415950{{"Analyser le trafic IPv6 avec Wireshark"}}
wireshark/ipv6_support -.-> lab-415950{{"Analyser le trafic IPv6 avec Wireshark"}}
end
Capture du trafic IPv6
Dans cette étape, nous allons nous concentrer sur la capture du trafic réseau IPv6. IPv6 est la dernière version du protocole Internet, conçue pour pallier les limitations d'IPv4, telles que l'épuisement des adresses IP disponibles. Pour capturer et observer les paquets IPv6 qui transitent par vos interfaces réseau, nous utiliserons Wireshark, un analyseur de protocoles réseau puissant et largement utilisé. Il vous permet de voir les détails du trafic réseau, ce qui est essentiel pour la surveillance et le dépannage du réseau.
Activation d'IPv6 sur votre système
Avant de pouvoir commencer à capturer le trafic IPv6, nous devons nous assurer qu'IPv6 est activé sur votre système. En effet, si IPv6 est désactivé, votre système ne pourra pas envoyer ou recevoir de paquets IPv6, et nous ne pourrons capturer aucun trafic pertinent.
Ouvrez une fenêtre de terminal. Vous pouvez le faire en cliquant sur l'icône du terminal dans la barre des tâches ou en appuyant sur Ctrl+Alt+T. Le terminal est une interface de ligne de commande où vous pouvez entrer des commandes pour interagir avec votre système.
Naviguez jusqu'au répertoire du projet. C'est là que se trouve le script pour activer IPv6. Utilisez la commande suivante :
cd /home/labex/project/
La commande cd signifie "change directory" (changer de répertoire). Elle vous permet de passer d'un répertoire à un autre dans votre système de fichiers.
Exécutez le script pour activer IPv6 sur votre système. Utilisez la commande suivante :
sudo ./enable_ipv6.sh
La commande sudo est utilisée pour exécuter des commandes avec des privilèges administratifs. Le ./ indique que le script se trouve dans le répertoire courant. Ce script active la fonctionnalité IPv6 sur votre machine Linux en configurant les interfaces réseau et en s'assurant qu'IPv6 n'est pas désactivé dans les paramètres du système.
Ces lignes indiquent qu'IPv6 est activé pour toutes les interfaces réseau, l'interface par défaut et l'interface de bouclage (loopback interface) respectivement.
Démarrage de Wireshark et configuration de la capture
Maintenant qu'IPv6 est activé, nous pouvons démarrer Wireshark et le configurer pour capturer le trafic réseau.
Lancez Wireshark en exécutant la commande suivante dans votre terminal :
wireshark &
Le symbole & à la fin de la commande exécute Wireshark en arrière-plan. Cela signifie que vous pouvez continuer à utiliser le terminal pendant que Wireshark est en cours d'exécution.
Lorsque Wireshark s'ouvre, vous verrez une liste des interfaces réseau disponibles. Ce sont les connexions physiques ou virtuelles par lesquelles votre système peut envoyer et recevoir du trafic réseau. Recherchez l'interface étiquetée any. La sélection de cette interface permet à Wireshark de capturer les paquets de toutes les interfaces réseau de votre système.
Pour démarrer la capture de paquets, vous pouvez soit double-cliquer sur l'interface any, soit la sélectionner et cliquer sur le bouton bleu en forme d'aileron de requin dans la barre d'outils.
Wireshark va maintenant commencer à capturer tout le trafic réseau sur votre système. Au fur et à mesure que les paquets sont capturés, vous les verrez s'afficher dans la fenêtre principale. Chaque entrée de paquet affiche des informations telles que les adresses IP source et de destination, le protocole utilisé et l'heure de capture.
Génération de trafic IPv6 pour la capture
Pour nous assurer que nous avons du trafic IPv6 à analyser, nous allons générer des paquets IPv6 en effectuant un ping sur une adresse IPv6. Le ping est un moyen simple de tester la connectivité entre deux périphériques réseau.
Pendant que Wireshark est en cours d'exécution et capture des paquets, ouvrez une nouvelle fenêtre de terminal. Cela vous permet d'exécuter des commandes pour générer du trafic sans interférer avec le processus de capture de paquets.
Tout d'abord, trouvons l'adresse IPv6 de votre interface eth1. Exécutez la commande suivante :
ip addr show dev eth1 | grep inet6
La commande ip addr show affiche les adresses IP attribuées à vos interfaces réseau. L'argument dev eth1 spécifie que nous voulons voir les adresses de l'interface eth1. Le | est un opérateur de pipe, qui prend la sortie de la commande de gauche et l'utilise comme entrée pour la commande de droite. La commande grep inet6 filtre la sortie pour afficher uniquement les lignes qui contiennent la chaîne inet6, qui sont les adresses IPv6.
La sortie affichera les adresses IPv6 associées à l'interface eth1. Vous devriez voir une adresse IPv6 locale au lien (link-local IPv6 address) qui commence par fe80::. Il s'agit de votre adresse IPv6 locale, qui est utilisée pour la communication au sein du segment de réseau local.
Exemple de sortie :
inet6 fe80::42:acff:fe14:3/64 scope link
Maintenant, effectuez un ping sur cette adresse IPv6 pour générer du trafic IPv6. Utilisez la commande ping6, qui est spécialement conçue pour effectuer un ping sur les adresses IPv6. Incluez le nom de l'interface (eth1) car il s'agit d'une adresse locale au lien. Le nom de l'interface est nécessaire pour spécifier quelle interface réseau doit être utilisée pour la communication.
ping6 -c 4 fe80::42:acff:fe14:3%eth1
Remarque : Remplacez fe80::42:acff:fe14:3 par l'adresse IPv6 réelle affichée sur votre système.
Le paramètre -c 4 indique à ping d'envoyer 4 paquets, puis de s'arrêter. Ceci est utile pour limiter la quantité de trafic généré.
Résultat attendu :
PING fe80::42:acff:fe14:3%eth1(fe80::42:acff:fe14:3%eth1) 56 data bytes
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=4 ttl=64 time=0.064 ms
--- fe80::42:acff:fe14:3%eth1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3060ms
rtt min/avg/max/mdev = 0.049/0.060/0.064/0.007 ms
Cette sortie affiche les détails du processus de ping, y compris le temps qu'il a fallu à chaque paquet pour se rendre à la destination et revenir, ainsi que le taux de perte de paquets.
Revenez à la fenêtre Wireshark. Vous devriez maintenant voir plusieurs nouveaux paquets dans la liste de capture, y compris les paquets ICMPv6 générés par votre commande ping. ICMPv6 est le protocole ICMP (Internet Control Message Protocol) pour IPv6, qui est utilisé pour la signalisation d'erreurs et à des fins de diagnostic.
Arrêtez la capture de paquets en cliquant sur le bouton carré rouge "Stop" dans la barre d'outils de Wireshark.
Vous avez maintenant capturé avec succès du trafic IPv6 à l'aide de Wireshark. Dans l'étape suivante, vous apprendrez à filtrer et à analyser ce trafic.
Filtrage et analyse du trafic IPv6
Maintenant que vous avez capturé du trafic IPv6, il est temps d'apprendre à filtrer et à analyser ce trafic. Wireshark, un puissant analyseur de protocoles réseau, offre d'excellentes capacités de filtrage. Le filtrage du trafic capturé vous aide à vous concentrer sur les types spécifiques de paquets IPv6 que vous souhaitez examiner. Au lieu d'examiner un ensemble vaste et mixte de données réseau, le filtrage vous permet d'isoler les informations pertinentes, ce qui rend votre analyse plus efficace.
Utilisation des filtres d'affichage pour IPv6
Les filtres d'affichage (display filters) dans Wireshark sont un excellent outil. Ils vous permettent de visualiser uniquement les paquets qui correspondent à des critères spécifiques. Dans ce cas, nous allons nous concentrer sur les paquets IPv6.
Dans la fenêtre principale de Wireshark, vous verrez une liste de paquets. En haut de cette liste, il y a une barre de filtre d'affichage. Elle comporte un champ de texte avec l'invite "Apply a display filter" (Appliquer un filtre d'affichage). C'est dans cette barre que vous entrerez vos critères de filtre.
Pour afficher uniquement les paquets IPv6, tapez le filtre suivant dans la barre de filtre d'affichage :
ipv6
Ce filtre indique à Wireshark d'afficher uniquement les paquets qui utilisent le protocole IPv6.
Après avoir tapé le filtre, appuyez sur Entrée ou cliquez sur le bouton flèche bleue pour l'appliquer. Une fois appliqué, la liste des paquets n'affichera plus que les paquets IPv6. Cela signifie que tous les paquets IPv4 ou d'autres protocoles seront filtrés, ne vous laissant que le trafic IPv6.
Si vous souhaitez affiner davantage votre filtre pour afficher uniquement les paquets ICMPv6 (comme ceux générés par la commande ping6), tapez le filtre suivant :
icmpv6
ICMPv6 est un protocole clé pour les réseaux IPv6, utilisé pour des tâches telles que la signalisation d'erreurs et les messages de diagnostic. En utilisant ce filtre, vous pouvez vous concentrer sur ces types spécifiques de paquets.
Appliquez le filtre comme précédemment. Maintenant, vous ne devriez voir que les paquets ICMPv6 de vos commandes ping dans la liste des paquets.
Examen des détails des paquets IPv6
Wireshark fournit des informations détaillées sur chaque paquet. Examinons de plus près la structure d'un paquet IPv6.
Dans la liste des paquets filtrés, trouvez un paquet ICMPv6 Echo Request. Vous pouvez l'identifier en recherchant "Echo (ping) request" dans la colonne Info. Cliquez sur ce paquet pour le sélectionner.
Lorsque vous sélectionnez un paquet, le panneau central affiche une ventilation détaillée de ce paquet. Recherchez la section intitulée "Internet Protocol Version 6". Si elle n'est pas déjà développée, cliquez sur la flèche à côté pour la développer. Cela vous montrera tous les champs de l'en-tête IPv6.
Dans les informations d'en-tête IPv6, il y a plusieurs champs importants à observer :
Version : Ce champ doit être 6 pour IPv6. C'est un moyen simple de confirmer que le paquet utilise le protocole IPv6.
Traffic Class (Classe de trafic) : Ce champ est utilisé pour la QoS (Quality of Service - Qualité de service). Il aide à hiérarchiser différents types de trafic sur le réseau.
Flow Label (Étiquette de flux) : Il peut être utilisé pour maintenir l'état des paquets appartenant au même flux. Il est utile pour suivre les paquets associés.
Payload Length (Longueur de la charge utile) : Cela indique la taille des données après l'en-tête IPv6. Il vous aide à comprendre la quantité de données transportées dans le paquet.
Next Header (En-tête suivant) : Ce champ identifie le type d'en-tête qui suit l'en-tête IPv6. Il pourrait s'agir d'un autre en-tête de protocole comme TCP ou UDP.
Hop Limit (Limite de sauts) : Semblable à TTL (Time To Live - Durée de vie) dans IPv4, cette valeur diminue à chaque routeur. Il empêche les paquets de circuler indéfiniment sur le réseau.
Source Address (Adresse source) : Il s'agit de l'adresse IPv6 de l'expéditeur. Il vous indique d'où provient le paquet.
Destination Address (Adresse de destination) : Il s'agit de l'adresse IPv6 du destinataire. Il montre où va le paquet.
Notez la différence entre les adresses IPv6 et IPv4. IPv6 utilise des adresses de 128 bits, qui sont généralement écrites sous forme de huit groupes de quatre chiffres hexadécimaux. En revanche, IPv4 utilise des adresses de 32 bits. Cela rend les adresses IPv6 beaucoup plus longues et offre un espace d'adressage beaucoup plus grand.
Maintenant, développez la section "Internet Control Message Protocol v6" pour voir les détails du paquet ICMPv6 :
Type : Cela indique le type de message ICMPv6. Par exemple, 128 est pour Echo Request, et 129 est pour Echo Reply.
Code : Cela spécifie davantage le type de message. Il fournit des informations plus détaillées sur le message ICMPv6.
Checksum (Somme de contrôle) : Ceci est utilisé pour détecter les erreurs dans le message ICMPv6. Il aide à assurer l'intégrité des données.
Identifier : Ceci est utilisé pour faire correspondre les requêtes avec les réponses. Il permet à l'expéditeur de suivre quelle réponse correspond à quelle requête.
Sequence (Séquence) : Il s'agit d'un numéro de séquence qui s'incrémente pour chaque paquet dans une session ping. Il aide à ordonner les paquets.
Enregistrement des paquets capturés
Il est souvent utile d'enregistrer vos captures de paquets pour une analyse ou une documentation ultérieure. Voici comment vous pouvez le faire :
Dans Wireshark, cliquez sur le menu File (Fichier), puis sélectionnez Save As (Enregistrer sous). Cela ouvrira une boîte de dialogue où vous pourrez choisir où enregistrer le fichier et comment le nommer.
Naviguez jusqu'au répertoire /home/labex/project/. C'est l'endroit où nous voulons enregistrer notre capture de paquets.
Entrez capture.pcapng comme nom de fichier. C'est le nom qui sera utilisé pour identifier la capture de paquets enregistrée.
Cliquez sur le bouton Save (Enregistrer) pour enregistrer votre capture de paquets. Le fichier sera enregistré au format PCAPNG, qui est le format standard pour les captures de paquets Wireshark. Ce format est largement pris en charge et peut être ouvert dans d'autres outils d'analyse de réseau.
Vous pouvez vérifier que le fichier a été enregistré correctement en exécutant la commande suivante dans un terminal :
ls -l /home/labex/project/capture.pcapng
Cette commande liste les détails du fichier, y compris ses permissions, son propriétaire, sa taille et sa date de création.
Vous avez maintenant appris à filtrer le trafic IPv6, à examiner les détails des paquets IPv6 et à enregistrer vos captures de paquets pour référence future. Dans l'étape suivante, vous explorerez plus en détail les en-têtes d'extension IPv6.
Examen des en-têtes d'extension IPv6
Dans cette étape, nous allons explorer les en-têtes d'extension IPv6. IPv6 est le protocole Internet de nouvelle génération qui offre de nombreuses améliorations par rapport à IPv4. L'une de ces améliorations clés est l'utilisation d'en-têtes d'extension (extension headers). Ces en-têtes sont cruciaux car ils offrent des fonctionnalités améliorées, telles que de meilleures fonctions de routage et de sécurité. Les comprendre est essentiel pour toute personne impliquée dans la surveillance du réseau IPv6 et l'analyse de la sécurité, car ils peuvent révéler des informations importantes sur la façon dont les paquets sont gérés dans le réseau.
Identification des en-têtes d'extension dans Wireshark
Maintenant, utilisons Wireshark pour identifier et comprendre les en-têtes d'extension IPv6 dans les paquets que nous avons capturés précédemment.
Tout d'abord, assurez-vous que Wireshark est ouvert. Si ce n'est pas le cas, vous pouvez l'ouvrir en utilisant la commande suivante dans le terminal :
wireshark &
Le & à la fin permet à la commande de s'exécuter en arrière-plan, vous pouvez donc continuer à utiliser le terminal pour d'autres tâches.
Ensuite, ouvrez le fichier de capture que vous avez enregistré à l'étape précédente. Voici comment :
Cliquez sur File (Fichier) > Open (Ouvrir) dans le menu Wireshark.
Sélectionnez le fichier nommé capture.pcapng et cliquez sur Open (Ouvrir). Ce fichier contient le trafic réseau que vous avez capturé précédemment.
Dans la barre de filtre en haut de Wireshark, entrez le filtre suivant :
ipv6
Ce filtre affiche tous les paquets IPv6. Nous allons examiner le champ "Next Header" (En-tête suivant) dans ces paquets pour identifier les en-têtes d'extension.
Sélectionnez n'importe quel paquet IPv6 dans la liste des paquets sur le côté gauche de Wireshark. Dans le panneau central, développez la section "Internet Protocol Version 6". Cela vous montrera les détails de l'en-tête IPv6.
Recherchez le champ "Next Header" (En-tête suivant) dans l'en-tête IPv6 développé. Ce champ est très important car il nous indique ce qui vient immédiatement après l'en-tête IPv6. Il pourrait s'agir d'un en-tête d'extension ou d'un protocole de couche supérieure comme TCP ou UDP.
La valeur "Next Header" (En-tête suivant) correspond à un numéro de protocole spécifique :
Si un en-tête d'extension est présent dans le paquet, il apparaîtra comme une section extensible sous l'en-tête IPv6 dans le panneau des détails du paquet. Développez-le pour voir son contenu, qui peut fournir des informations précieuses sur la gestion du paquet.
Exportation des octets de paquets pour l'analyse
Pour analyser davantage le champ "Next Header" (En-tête suivant), nous allons exporter les octets d'un paquet le contenant.
Sélectionnez n'importe quel paquet IPv6 dans la liste des paquets.
Dans le panneau central, assurez-vous que la section "Internet Protocol Version 6" est développée. Si ce n'est pas le cas, développez-la pour afficher les détails de l'en-tête IPv6.
Trouvez le champ "Next Header" (En-tête suivant). Il se trouve généralement près du haut des détails de l'en-tête IPv6.
Faites un clic droit sur le champ "Next Header" (En-tête suivant) et sélectionnez "Export Selected Packet Bytes" (Exporter les octets du paquet sélectionné).
Dans la boîte de dialogue qui apparaît, naviguez jusqu'au répertoire /home/labex/project/. C'est là que nous allons enregistrer les octets exportés.
Entrez extension_header.txt comme nom de fichier.
Cliquez sur "Save" (Enregistrer) pour enregistrer le fichier.
Vous pouvez vérifier que le fichier a été créé avec succès en exécutant la commande suivante dans le terminal :
cat /home/labex/project/extension_header.txt
La sortie sera probablement un seul caractère représentant la valeur de l'en-tête suivant. Cela peut être utile pour une analyse ou un script plus approfondi.
Analyse de la chaîne d'en-têtes d'extension
Dans IPv6, un paquet peut avoir plusieurs en-têtes d'extension, formant une chaîne. Chaque en-tête d'extension a un champ "Next Header" (En-tête suivant) qui indique ce qui le suit.
Par exemple, un paquet IPv6 peut avoir la structure suivante :
L'en-tête IPv6 principal avec une valeur "Next Header" (En-tête suivant) de 0, ce qui signifie que l'en-tête suivant est un en-tête Hop-by-Hop Options (Options saut par saut).
L'en-tête Hop-by-Hop Options (Options saut par saut) avec une valeur "Next Header" (En-tête suivant) de 43, indiquant que l'en-tête suivant est un en-tête Routing (Routage).
L'en-tête Routing (Routage) avec une valeur "Next Header" (En-tête suivant) de 6, ce qui signifie que l'en-tête suivant est un en-tête TCP.
Enfin, l'en-tête TCP et la charge utile (payload).
Ce mécanisme de chaînage offre beaucoup de flexibilité dans la gestion des paquets. Cependant, il peut également être utilisé à mauvais escient pour des attaques de sécurité, comme tenter de contourner les règles du pare-feu (firewall). C'est pourquoi la compréhension des en-têtes d'extension est cruciale pour la surveillance de la sécurité du réseau.
Vous avez maintenant appris à identifier et à examiner les en-têtes d'extension IPv6 dans Wireshark. C'est une compétence essentielle pour toute personne impliquée dans la surveillance du réseau IPv6 et l'analyse de la sécurité.
Résumé
Dans ce labo, vous avez acquis des compétences essentielles pour la surveillance de réseau IPv6 à l'aide de Wireshark. Vous avez commencé par capturer du trafic IPv6 et générer des paquets avec des commandes ping6. Ensuite, vous avez exploré le filtrage et l'analyse des paquets capturés, en mettant l'accent sur la structure et les champs uniques des en-têtes IPv6.
Les compétences clés acquises comprennent la capture du trafic IPv6, l'utilisation de filtres d'affichage (display filters) pour des types de paquets spécifiques, l'examen des structures et des en-têtes de paquets, l'enregistrement des captures pour une analyse ultérieure, l'identification des en-têtes d'extension IPv6 et la compréhension du champ "Next Header" (En-tête suivant) et de la chaîne d'en-têtes d'extension. Ces compétences sont essentielles pour les administrateurs réseau et les professionnels de la cybersécurité dans les environnements où IPv6 est prédominant, cruciales pour la sécurité du réseau, le dépannage et la compréhension du comportement du réseau. À mesure que l'adoption d'IPv6 se développe à l'échelle mondiale, ces connaissances fournissent une base solide pour les concepts avancés.