alotofpeople - stock.adobe.com

Réseau : comment interpréter un paquet capturé par Wireshark

Wireshark est un outil utile pour capturer les données de trafic réseau. Les administrateurs réseau peuvent tirer le meilleur parti de cet outil en analysant les paquets capturés afin de comprendre comment résoudre un dépannage.

Il est facile de capturer le trafic réseau à l'aide d'outils tels que Wireshark et tcpdump. De nombreux administrateurs rencontrent toutefois des difficultés lorsqu'ils tentent de comprendre ce qu'ils ont capturé.

Cet article explique les principaux composants des données capturées et relie ces informations au modèle TCP/IP. Il ne traite pas de l'utilisation de Wireshark ni de ses fonctionnalités et options. Il ne s’agit que des étapes de base pour capturer des paquets. Elles sont suffisantes pour vous permettre de saisir un paquet et d'appliquer les informations d'interprétation fournies tout au long de l'article.

Procédez comme suit pour lancer une capture dans Wireshark :

1/ Ouvrez Wireshark.

2/ Définissez un filtre de capture et sélectionnez l'interface sur laquelle effectuer la capture.

3/ Lancez la capture.

4/ Générez du trafic en vous connectant à un site web, en envoyant une commande ping à un périphérique distant ou en essayant toute autre connexion réseau.

5/ Arrêtez la capture.

Lancez une capture à l'aide du bouton en forme d'aileron de requin situé en haut à gauche de l'outil Wireshark.
Lancez une capture à l'aide du bouton en forme d'aileron de requin situé en haut à gauche de l'outil Wireshark.

Wireshark capture rapidement une quantité immense de données si vous n'utilisez pas de filtre. Même si cela peut correspondre à vos besoins, veillez à définir un filtre efficace si vous connaissez les protocoles du service que vous dépannerez. Ne lancez pas la capture plus longtemps que nécessaire. Wireshark propose diverses options de recherche et de filtrage, mais une capture ciblée est beaucoup plus facile à exploiter.

Nous utilisons Wireshark dans cet article, car il est courant, dispose d'une interface graphique relativement simple et est flexible. Mais il existe de nombreux autres analyseurs de protocoles, tels que tcpdump. Vous pouvez analyser le contenu que vous capturez avec ces outils à l'aide des informations ci-dessous.

Wireshark est puissant et offre de nombreuses options qui dépassent le cadre de cet article, telles que l'analyse du réseau et les informations sur les performances. De plus, Wireshark v3 organise la sortie en trois volets empilés verticalement. Wireshark v4 utilise les mêmes trois volets, mais le volet « Packet Details » (Détails des paquets) se trouve dans le coin inférieur gauche (il était au milieu dans la version 3) et le volet « Packet Bytes » (Octets des paquets) se trouve dans le coin inférieur droit.

Trois volets dans la fenêtre principale de Wireshark.
Trois volets dans la fenêtre principale de Wireshark.

Sélectionnez une trame dans le volet Packet List

Dans la nouvelle interface Wireshark, le volet supérieur résume la capture. Il affiche une ou plusieurs trames, ainsi que le numéro de paquet, l'heure, la source, la destination, le protocole, la longueur et les champs d'informations.

Utilisez les colonnes Protocoles, Adresses source et destination et Ports pour vous aider à choisir la trame à examiner. Cliquez sur une trame pour la sélectionner, puis consultez les deux volets inférieurs pour obtenir plus de détails.

La capture d'écran présentée ici est une simple requête Whois adressée à www.iana.org. Cet exemple génère du trafic DNS et autre, ce qui est utile pour les explications ci-dessous.

Requête Whois pour www.iana.org.
Requête Whois pour www.iana.org.

Interprétez le volet Packet Details

Avant d'examiner les différents en-têtes et contenus, passons en revue le modèle TCP/IP afin d'expliquer les résultats affichés dans le volet Détails du paquet en bas à gauche.

Le modèle TCP/IP avec exemples de protocoles et d'adresses.
Le modèle TCP/IP avec exemples de protocoles et d'adresses.

Vous trouverez ci-dessous les couches du modèle TCP/IP et les protocoles qui leur sont associés :

  • Protocoles de la couche application. HTTP, HTTPS, SMTP, Secure Socket Shell (SSH) et autres résident dans cette couche.
  • Protocoles de la couche transport. TCP et User Datagram Protocol (UDP) résident dans cette couche. TCP est orienté connexion (avec état), tandis que UDP est sans connexion (sans état). Si vous capturez des paquets TCP, remarquez comment les poignées de main composées de messages SYN et ACK s'intercalent avec les données pour garantir que tous les paquets arrivent à destination. Ces unités sont généralement appelées datagrammes.
  • Protocoles de la couche Internet. Ces protocoles régissent la communication et l'adressage logique, comme les adresses IP. Cet article se concentre sur l'IP, mais d'autres protocoles existent. Ces unités sont généralement appelées paquets.
  • Données de la couche de liaison réseau. Cette couche affiche les informations Ethernet, y compris les types de trames et les adresses MAC source et destination. Ces unités sont généralement appelées trames.

Wireshark affiche cette sortie à partir du bas du modèle TCP/IP vers le haut. Les informations sur les trames, qui se trouvent au bas du modèle TCP/IP, se trouvent en haut du volet dans la partie inférieure gauche de l'écran Wireshark.

Comprendre les en-têtes

En quoi ces informations sont-elles utiles ? Le fait de mettre en relation les en-têtes des trames capturées avec le modèle TCP/IP aide les dépanneurs à visualiser les couches au niveau desquelles des problèmes peuvent survenir, ce qui permet d'identifier les causes possibles. Les sections suivantes traitent plus en détail des différentes couches.

Contenu de la trame. Cette section de la trame fournit des informations Ethernet, telles que la taille de la trame, l'heure de capture et l'interface physique sur laquelle la trame a été capturée.

Informations sur la trame, telles que la taille de la trame, l'heure de capture et l'interface physique.
Informations sur la trame, telles que la taille de la trame, l'heure de capture et l'interface physique.

Les administrateurs peuvent utiliser ces informations pour examiner la taille des trames, par exemple. Certains appareils peuvent avoir des difficultés à accepter des trames qui dépassent la taille standard. Les dépanneurs peuvent également vérifier l'interface sur laquelle les données ont été capturées afin de s'assurer que les informations transitent par la connexion appropriée.

Contenu Ethernet. Vient ensuite le contenu Ethernet II, qui comprend les adresses MAC source et destination. Selon la direction du trame, l'adresse MAC locale est soit l'adresse source, soit l'adresse destination, et l'adresse MAC du périphérique réseau suivant est l'autre.

Informations Ethernet, y compris les adresses MAC.
Informations Ethernet, y compris les adresses MAC.

Vérifiez que les adresses MAC sont correctes afin de lutter contre les problèmes de sécurité, tels que l'empoisonnement ou l'usurpation du protocole de résolution d'adresse. Les dépanneurs peuvent également vérifier quelle interface locale est utilisée avec l'adresse MAC.

Contenu IP. Vient ensuite la section IP, avec les adresses IP source et destination et les numéros de port. Pour la plupart des réseaux, la structure d'adresse est IPv4. Les informations relatives à la durée de vie (time-to-live) se trouvent ici, tout comme les instructions de fragmentation. Enfin, un champ définit si le paquet utilise TCP ou UDP au niveau de la couche transport.

Informations IP, y compris les adresses IP
Informations IP, y compris les adresses IP

Les techniciens réseau peuvent vérifier que les adresses IP sont valides et conformes aux attentes. N'oubliez pas qu'une adresse commençant par 169.254.x.x n'est pas valide sur le réseau et indique un éventuel problème de protocole DHCP (Dynamic Host Configuration Protocol). Les techniciens peuvent également confirmer que les adresses IP source et destination sont conformes aux attentes afin de réduire les problèmes d'empoisonnement DNS ou de paramètres de résolution de noms incorrects.

Contenu de la couche de transport. La section suivante contient des informations sur la couche de transport. Vous devriez voir ici TCP ou UDP, selon le type de datagramme capturé. N'oubliez pas que TCP utilise la poignée de main à trois voies pour énumérer l'échange de données, ce qui garantit que le périphérique source renvoie toutes les données perdues.

Cette section affiche également les ports source et destination. Si le paquet provient de l'ordinateur client, le port de destination est le numéro de port du service. Par exemple, si le système de destination est un serveur web, le numéro de port de destination est 80 ou 443 (HTTP ou HTTPS). Le numéro de port du client est un nombre généré aléatoirement entre 1 024 et 65 535. Cette plage varie selon le système d'exploitation. Les deux numéros de port apparaissent dans cet en-tête.

Contenu UDP, y compris le port de destination et la charge utile.
Contenu UDP, y compris le port de destination et la charge utile.

Vérifiez que le client et le serveur utilisent le numéro de port de service correct. Si vous avez capturé des paquets sur le serveur, il s'agit du numéro de port de destination des paquets entrants. Ceci est particulièrement important avec les numéros de port non standard pour les applications personnalisées ou les règles de pare-feu inhabituelles en place.

Contenu de la couche application. Les informations relatives à la couche application se trouvent au bas du volet Détails des paquets, mais en haut du modèle TCP/IP. Ces informations varient selon le service et le protocole. Par exemple, lorsque vous utilisez HTTP, le volet comprend des instructions telles que GET ou le contenu de la page Web demandée. Pour le ciblage de capture, vous voyez des informations avec SMTP, Post Office Protocol 3 ou Internet Message Access Protocol. Il en va de même pour les services tels que SSH, le partage de fichiers en réseau, DNS, etc.

Contenu de la résolution de nom DNS, tel que le type et la classe.
Contenu de la résolution de nom DNS, tel que le type et la classe.

Les applications sont préconfigurées pour des ports spécifiques, il n'y a donc probablement pas beaucoup de place pour une mauvaise configuration ici. Vous pouvez utiliser ces informations pour vous assurer que les services de destination fonctionnent sur le serveur.

Wireshark peut afficher les données exactement comme vous vous attendez à les trouver dans le modèle TCP/IP.

Pouvez-vous relier le contenu du paquet capturé aux sept couches du modèle OSI ? Chaque couche est représentée dans les informations capturées.

Les informations d'en-tête dans la capture permettent de confirmer que les adresses, les ports et les autres paramètres correspondent aux attentes. Ces captures indiquent ce qui se passe sur le réseau, plutôt que ce qui devrait se passer.

Interprétez les informations de charge utile

Le volet Packet Bytes (Octets de paquet) dans le coin inférieur droit de Wireshark affiche la charge utile. Ce contenu peut être les données des utilisateurs finaux qui préoccupent les professionnels de la sécurité. Les protocoles non cryptés, tels que HTTP, Telnet, SMTP et autres, ne protègent pas la confidentialité de leur charge utile, de sorte que les données sont affichées dans cette fenêtre. Je l'ai souvent démontré dans mes cours techniques en utilisant Telnet : le mot de passe était affiché dans ce volet.

Pouvez-vous trouver la requête Whois dans l'exemple de contenu ci-dessous ?

Contenu de la charge utile en texte clair.
Contenu de la charge utile en texte clair.

Les informations relatives à la charge utile démontrent l'importance des protocoles HTTPS, SSH et autres qui chiffrent les données, ou encore de l'utilisation d'IPsec, qui permet de chiffrer les protocoles qui n'offrent pas eux-mêmes de chiffrement intégré.

Vous n'êtes probablement pas très intéressé par la charge utile dans le cadre du dépannage réseau. Vous vous préoccupez plutôt des questions de connectivité, et ce type de dépannage implique les adresses source et destination ainsi que les numéros de port.

Mettez en pratique ce que vous avez appris

Une fois que vous comprenez comment Wireshark affiche les informations et comment celles-ci sont liées au modèle TCP/IP, réfléchissez à la manière dont vous pouvez les appliquer. Vous trouverez ci-dessous quelques scénarios de dépannage de base dans lesquels l'examen des en-têtes réseau peut s'avérer utile :

  • Vous savez peut-être quelles connexions doivent être établies, en fonction des adresses MAC ou IP, des numéros de port, etc. Les en-têtes indiquent quelles connexions sont établies ou tentées.
  • Utilisez Wireshark de part et d'autre d'un pare-feu pour voir quel trafic réseau le traverse. Cela peut vous aider à confirmer les règles du pare-feu.
  • Identifiez les nombreux messages d'erreur indiquant une carte d'interface réseau défaillante, une saturation du réseau, une latence élevée ou des délais d'attente.
  • Identifiez les ports personnalisés pour les applications réseau nouvelles ou inconnues. Ces applications, en particulier si elles sont développées en interne, peuvent utiliser des ports non standard. Vous pouvez identifier ces ports afin de vous assurer qu'ils sont pris en compte dans les configurations du pare-feu.

Les renifleurs de paquets, tels que Wireshark et tcpdump, sont souvent considérés comme des outils de sécurité, mais ils ont certainement leur place dans la boîte à outils d'un administrateur. En visualisant les paquets individuels, les administrateurs peuvent mieux comprendre exactement quel trafic circule sur le réseau et comment ce trafic est traité et reconnu. Il est utile de mettre en relation les couches théoriques du modèle TCP/IP avec les en-têtes de paquets pratiques.

Pour approfondir sur Administration de réseaux