Julia Evans, l'auteur du matériel que nous publions aujourd'hui, a décidé de parler de l'un de ses outils réseau préférés appelé
Wireshark . Il s'agit d'un programme puissant et complexe, équipé d'une interface graphique, conçu pour analyser le trafic dans les réseaux informatiques. Julia dit qu'en pratique, elle n'utilise que quelques-unes des fonctionnalités de Wireshark, mais elles sont généralement utiles. Ici, elle veut partager avec tous ceux qui souhaitent une histoire sur les méthodes les plus utiles de travailler avec le programme et espÚre qu'ils seront utiles non seulement pour elle, mais aussi pour tous ceux qui doivent résoudre des problÚmes de réseau.

Installer Wireshark
Les distributions Wireshark pour divers systĂšmes d'exploitation peuvent ĂȘtre trouvĂ©es
ici . Pour installer le programme, vous pouvez télécharger et installer le fichier correspondant. Alternativement, si vous utilisez des distributions Linux basées sur Debian, vous pouvez utiliser la commande
sudo apt install wireshark
. Si vous le souhaitez, afin de trouver la derniÚre version du programme, vous pouvez vous référer à l'archive personnelle des
packages cableshark-dev .
Voici Ă quoi ressemble l'interface du programme.
Interface WiresharkĂ premiĂšre vue, tout cela peut sembler trop compliquĂ©: une longue liste de packages, un champ mystĂ©rieux pour saisir des requĂȘtes ... Comment travailler avec Wireshark?
Analyse des fichiers pcap
J'utilise généralement Wireshark pour trouver les causes des problÚmes de réseau. La séquence d'actions exécutée au cours de la résolution de ces problÚmes ressemble à ceci:
- Capturez des paquets avec
tcpdump
(généralement avec une commande comme sudo tcpdump port 443 -w output.pcap
). - Copie du fichier pcap sur un ordinateur portable fonctionnel (
scp host:~/output.pcap .
). - Ouverture d'un fichier pcap Ă l'aide de Wireshark (
wireshark output.pcap
).
Comme vous pouvez le voir, tout est trĂšs simple. Cependant, aprĂšs l'ouverture du fichier pcap dans le programme, vous pouvez avoir une question logique sur ce qu'il faut faire avec tout cela. Parlons-en.
Analyse de connexion TCP
Souvent, lorsque j'analyse une certaine situation dans Wireshark, je dois vérifier une connexion TCP spécifique, avec laquelle, pour une raison quelconque, quelque chose ne va pas. Grùce à Wireshark, vous pouvez analyser l'ensemble du cycle de vie d'une connexion TCP individuelle et découvrir les causes d'un comportement incorrect du systÚme.
Pour ce faire, cliquez avec le bouton droit sur le package qui vous intéresse et choisissez la commande
Conversation filter > TCP
dans le menu contextuel.
Lancer l'analyse de connexion TCPAprĂšs cela, Wireshark affichera les autres paquets de la mĂȘme connexion TCP Ă laquelle appartient le paquet sur lequel vous avez cliquĂ©. Dans la figure ci-dessous, vous pouvez voir un exemple de connexion SSL rĂ©ussie - il existe
client hello
packages
client hello
service hello
,
certificate
,
server key exchange
qui sont utilisés pour établir des connexions SSL.
Analyse de connexion TCPLa technique d'analyse de paquets TCP discutée ici que j'ai dû utiliser le jour de la rédaction de cet article, au travail. Certaines connexions ont été abandonnées et j'ai remarqué qu'aprÚs avoir envoyé le paquet
client hello
, le
client hello
envoyé le paquet
FIN ACK
, qui a mis fin Ă la connexion TLS. Ce que j'ai rĂ©ussi Ă dĂ©couvrir s'est avĂ©rĂ© utile, car il est devenu clair que le client et non le serveur mettaient fin Ă la connexion. En consĂ©quence, j'ai immĂ©diatement dĂ©couvert que le problĂšme venait du client et je devais y prĂȘter attention.
Ce qui prĂ©cĂšde est un schĂ©ma trĂšs typique pour moi de travailler avec Wireshark. Habituellement, le client et le serveur sont impliquĂ©s dans la connexion et quelque chose ne va pas sur le client ou sur le serveur. Cela peut ĂȘtre, par exemple, une sorte d'Ă©chec ou d'erreur dans les paramĂštres systĂšme. En consĂ©quence, Wireshark me fournit une aide inestimable pour identifier le coupable des problĂšmes, en aidant Ă savoir s'il s'agit d'un client ou d'un serveur.
Décoder en équipe
Afin de comprendre exactement ce qu'est un package particulier, Wireshark utilise des numéros de port, et cette approche fonctionne généralement. Par exemple, si un programme voit du trafic sur le port 80, il décide que c'est du trafic HTTP et c'est généralement le cas.
Cependant, parfois les connexions HTTP utilisent des ports inhabituels et, par consĂ©quent, Wireshark a besoin d'indices pour les reconnaĂźtre. De tels conseils peuvent ĂȘtre donnĂ©s au programme en appelant le menu contextuel du package et en sĂ©lectionnant la commande
Decode as
. De plus, vous pouvez indiquer à Wireshark quel protocole est utilisé pour transmettre des paquets en utilisant un certain port. Ces conseils simplifient l'analyse des données.
Afficher le contenu de l'emballage
Dans Wireshark, il existe simplement un mode agréable pour afficher des informations détaillées sur un package, avec lequel vous pouvez comprendre le contenu de n'importe quel package. Prenez, par exemple, le package avec le message
client hello
du
client hello
de l'exemple précédent. Il s'agit du premier paquet de connexion SSL, le client avec son aide comme s'il disait: «Bonjour! Me voici! "
Wireshark fournit Ă l'administrateur rĂ©seau deux outils incroyablement utiles pour examiner le contenu d'un package. Le premier est un mode d'affichage dans lequel vous pouvez Ă©tendre les en-tĂȘtes disponibles pour le paquet (par exemple, en-tĂȘte Ethernet, en-tĂȘte IP, en-tĂȘte TCP) et afficher leur contenu.
Analyse d'en-tĂȘte de packageLe deuxiĂšme mode de visualisation des packages est un vrai miracle. Ici, vous pouvez voir les donnĂ©es brutes des paquets sous la forme d'une sĂ©quence d'octets. Et, ce qui est particuliĂšrement agrĂ©able, si vous passez la souris sur un octet (par exemple, dans la figure ci-dessous, le curseur se trouve sur l'octet inclus dans
tiles.services.mozilla.com
), le programme, dans la barre d'état, vous indiquera à quel champ il appartient. cet octet (dans ce cas, il s'agit du champ
Server Name
du
Server Name
), et du nom de code utilisé par Wireshark pour ce champ (dans ce cas -
ssl.handshake.extensions_server_name
)
Analyse des données du package brutRecherche de package
Wireshark prend en charge un langage de requĂȘte puissant. Cela simplifie considĂ©rablement la recherche de packages spĂ©cifiques dans les listes. Habituellement, lorsque je travaille avec un programme, j'utilise des requĂȘtes trĂšs simples. Voici quelques exemples:
- Le
frame contains "mozilla"
requĂȘte frame contains "mozilla"
vous permet de rechercher la ligne mozilla
n'importe oĂč dans le package et de rĂ©pertorier les packages trouvĂ©s. - La
tcp.port == 443
affiche les paquets utilisant le port TCP 443. - La requĂȘte
dns.resp.len > 0
affiche toutes les réponses DNS - La
ip.addr == 52.7.23.87
affiche les paquets dont l'adresse IP source ou de destination est 52.7.23.87.
Le langage de requĂȘte Wireshark a des capacitĂ©s beaucoup plus grandes que le langage de requĂȘte
tcpdump
(et, en outre, prend en charge la saisie semi-automatique en appuyant sur la touche TAB). Par conséquent, j'utilise souvent la séquence d'actions suivante: je capture une grande quantité de paquets à l'aide de
tcpdump
(disons, quelque chose comme tous les paquets du port 443), puis je les étudie attentivement à l'aide de Wireshark.
Afficher les détails de la durée de la connexion TCP
Parfois, je dois porter une attention particuliÚre à l'étude des connexions TCP lentes. Comment faire, à condition que dans mon fichier il y ait des enregistrements de milliers de paquets? Comment trouver des connexions TCP lentes?
Si vous sélectionnez
Statistics
dans le menu principal du programme et la commande
Conversations
qu'il contient, Wireshark nous fournira un merveilleux ensemble d'informations statistiques.
Informations statistiquesEn particulier, ici, dans la colonne
Duration
, vous pouvez voir la durée des connexions TCP, identifier les plus longues et les étudier attentivement. C'est une fonctionnalité trÚs utile.
Mise Ă jour de Wireshark
Si vous n'avez pas mis à jour Wireshark depuis longtemps, cela vaut la peine de le faire. Par exemple, récemment, sur un ordinateur portable fonctionnel, je faisais des recherches sur les paquets HTTP / 2. Ce n'était pas facile pour moi à l'époque, et j'ai décidé de regarder la documentation. Il s'est avéré que j'avais une ancienne version du programme. Dans la mise à jour que j'ai installée, le support HTTP / 2 a été sérieusement amélioré, c'est-à -dire qu'il y avait juste ce dont j'avais besoin à l'époque.
Utilisation de Wireshark pour apprendre les protocoles réseau
Cet article contient des termes qui peuvent ĂȘtre attribuĂ©s Ă quelque chose comme le jargon des spĂ©cialistes des rĂ©seaux. Par exemple - trame, port TCP (port TCP), rĂ©ponse DNS (rĂ©ponse DNS), adresse IP source (adresse IP source), connexions SSL du paquet
client hello
(bonjour client SSL). L'une des raisons de leur utilisation est le fait que Wireshark n'essaie certainement pas de protéger l'utilisateur contre les subtilités de la structure interne des technologies de réseau. Pour un débutant, cet état de fait peut, dans un premier temps, vous faire penser que Wireshark n'est pas un programme pour lui, mais uniquement pour des spécialistes réseau expérimentés.
L'accent mis par Wireshark sur les mécanismes de réseau de bas niveau présente cependant un avantage majeur. Le fait est qu'en travaillant avec ce programme, vous pouvez apprendre quelque chose de nouveau sur les protocoles réseau. Par exemple, je ne connais pas grand-chose aux mécanismes internes du protocole TLS / SSL. Cependant, en analysant le trafic dans Wireshark, j'ai remarqué que les deux premiers paquets de la connexion SSL sont
client hello
et
server hello
. En consĂ©quence, le protocole, qui, si l'on ne se penche pas sur les dĂ©tails de son travail, semble mystĂ©rieux et inaccessible Ă la comprĂ©hension, commence Ă prendre une forme plus comprĂ©hensible, se transforme en quelque chose qui peut ĂȘtre compris et analysĂ©.
Résumé
Wireshark a d'Ă©normes opportunitĂ©s. Ici, nous n'avons parlĂ© que de certains d'entre eux. Cependant, selon l'auteur du document, les mĂ©thodes de travail discutĂ©es ici sont utilisĂ©es dans environ 95% des situations oĂč Wireshark est nĂ©cessaire. Par consĂ©quent, nous espĂ©rons que mĂȘme le peu que vous avez appris aujourd'hui vous sera utile.
Chers lecteurs! Utilisez-vous Wireshark?
