GNU/Linux >> Tutoriels Linux >  >> Linux

Dépannage réseau à partir de la ligne de commande avec TShark

Une façon d'optimiser la capture de paquets consiste à utiliser un outil d'interface de ligne de commande, et parmi tous les outils que vous pouvez trouver, TShark est celui que vous devez essayer. TShark est l'équivalent de Wireshark GUI, qui fournit des informations précieuses sur le trafic capturé sur votre réseau.

Une chose qui rend cela génial est qu'au lieu de cliquer sur plusieurs boutons et de parcourir différents menus, vous pouvez taper une seule commande pour obtenir les informations dont vous avez besoin.

Continuez à lire et ne perdez plus jamais des heures à analyser vos captures de paquets !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir les éléments suivants.

  • Une machine Linux – Ce didacticiel utilise Ubuntu 20.04 LTS, mais toutes les distributions Linux fonctionneront.
  • Un utilisateur non root avec des privilèges sudo.
  • Wireshark installé sur votre machine.

Installer TShark sur Ubuntu

TShark n'est pas installé par défaut sur votre distribution Linux, donc avant de pouvoir en profiter, lancez ce didacticiel en installant TShark sur votre machine.

À l'aide de votre gestionnaire de packages, vous pouvez installer sur la plupart des distributions Linux et des systèmes d'exploitation BSD. Mais pour cette démo, vous allez installer à l'aide du gestionnaire de packages APT.

1. Exécutez le apt update commande ci-dessous pour vous assurer que votre gestionnaire de packages est à jour. Cette commande met à jour la liste des packages de votre système et leurs versions actuelles.

sudo apt update -y

2. Ensuite, exécutez le apt install commande ci-dessous pour installer l'outil de ligne de commande TShark sur votre machine.

sudo apt install tshark -y

3. Exécutez le tshark --version ci-dessous pour vous assurer que l'outil est disponible sur votre système.

tshark --version

Vous obtiendrez une sortie comme celle ci-dessous. Au moment d'écrire ces lignes, la version actuelle est la 3.4.8, mais votre version peut être différente.

4. Enfin, exécutez le tshark --help commande ci-dessous pour voir toutes les commandes disponibles. Commandes

tshark --help

Vous pouvez utiliser plusieurs de ses commandes, comme indiqué ci-dessous, pour obtenir des informations sur les données capturées dans votre réseau. Cette sortie n'affiche qu'un petit nombre des commandes disponibles. Vous apprendrez l'utilisation de base de certaines de ces commandes dans les sections suivantes.

Capturer tous les paquets d'une interface réseau

Maintenant qu'il est installé, vous pouvez capturer des paquets et analyser les données réseau capturées. Vous pouvez capturer des données réseau à l'aide d'une interface spécifique, mais avant de capturer des données, vous devez démarrer et spécifier l'interface réseau sur laquelle vous allez capturer des données.

1. Exécutez le tshark commande pour lister toutes les interfaces réseau disponibles (-D ) que T-shark peut trouver, même les anciens et les inactifs.

sudo tshark -D 

Vous verrez une liste des interfaces disponibles sur votre système, comme indiqué ci-dessous. Si plusieurs cartes réseau sont installées sur votre système, exécutez toujours la commande tshark -D avant de démarrer et de spécifier une interface.

2. Ensuite, exécutez le ip link commande ci-dessous (sur les systèmes Linux et BSD) pour répertorier toutes les interfaces réseau actives. Vous devez sélectionner une interface réseau active à utiliser.

Bien que TShark répertorie toutes les interfaces réseau de votre système, toutes ne sont peut-être pas actives à ce moment-là.

sudo ip link show 

Dans la plupart des cas, vous utiliserez une interface réseau, telle qu'une carte Ethernet. Dans cet exemple, notez eth0, comme indiqué ci-dessous, pour capturer les paquets.

3. Enfin, exécutez le tshark suivant commande pour sélectionner une interface (-i ) et capturer les paquets en direct. Remplacer interface avec l'interface que vous avez notée à l'étape deux.

sudo tshark -i interface

Une fois que vous commencez à capturer des données, vous verrez les paquets affichés en temps réel, comme indiqué ci-dessous. Et à tout moment, vous pouvez appuyer sur Ctrl+C pour arrêter de capturer des paquets.

Comme d'autres outils d'analyse de paquets de réseau de données populaires, tels que tcpdump et Wireshark, Tshark utilise le bibliothèque pcap (libpcap) pour capturer les paquets. Dans ce cas, la bibliothèque pcap est utilisée pour capturer les paquets de l'interface eth0.

Comme vous le voyez ci-dessous, il imprime la forme décodée des paquets capturés, chaque ligne dans un format lisible par l'homme sur la sortie standard (stdout) de votre terminal.

Capturer un nombre spécifique de paquets

Supposons que vous souhaitiez analyser un nombre spécifique de paquets. Si c'est le cas, au lieu de capturer tous les paquets, spécifiez le nombre de paquets à capturer et analysez-les directement.

Pour capturer un nombre spécifique de paquets, vous ajouterez le -c option (capturer le nombre de paquets) dans le tshark commande.

Exécutez la commande suivante pour capturer les 10 premiers paquets (-c 10 ) pour vérifier si les paquets sont acheminés vers tshark correctement. Remplacer 10 avec votre nombre préféré de paquets à capturer.

sudo tshark -i eth0 -c 10

Si vous préférez capturer les paquets et supprimer l'affichage des paquets, ajoutez le -q à la place. Le -q L'option est pratique si vous voulez seulement voir le nombre total de paquets capturés et ne voulez pas faire défiler les sorties sur votre terminal en continu.

Exécutez la commande ci-dessous pour capturer les paquets lors de la suppression (-q ) les sorties.

sudo tshark -i eth0 -q

Dès que vous appuyez sur Ctrl+C, TShark imprime le nombre total de paquets capturés dans le terminal. Ci-dessous, vous pouvez voir un total de 84 paquets capturés.

Capturer des paquets spécifiques par chaîne de filtre

Peut-être que le nombre de paquets capturés est trop important et qu'il est presque impossible de rechercher une chaîne spécifique en utilisant uniquement vos yeux. Dans ce cas, vous devrez utiliser un filtre pour capturer les paquets par la chaîne de votre choix.

Vous utiliserez les expressions de filtre de capture de TShark pour sélectionner les paquets en fonction des protocoles, des paires hôte/port source/destination, etc. Par exemple, votre connexion SSH ne fonctionne pas et vous souhaitez capturer uniquement les paquets liés à la connexion SSH.

Exécutez la commande ci-dessous pour capturer et filtrer les paquets (-f ) avec le tcp port 22 chaîne.

sudo tshark -i eth0 -f "tcp port 22" -c 10

Si le filtre de chaîne ne suffit pas, vous pouvez également utiliser le filtre d'affichage après avoir exécuté un filtre de capture pour affiner votre recherche et analyser des paquets spécifiques. Le filtre d'affichage tire parti des opérateurs de comparaison (!==,===,==, etc.) pour tester des chaînes, des modèles ou des séquences d'octets.

Vous pouvez également utiliser des opérateurs booléens (et, ou, non) et des regroupements avec des parenthèses pour spécifier des expressions plus complexes.

Par exemple, après avoir trouvé les adresses IP que vous utilisez pour vous connecter à SSH, vous souhaitez maintenant approfondir les paquets. Dans ce cas, vous utiliserez le == (Opérateur égal (tout si plus d'un)), comme indiqué ci-dessous.

Exécutez le tshark commande ci-dessous pour capturer et afficher le premier 10 paquets filtrés (-Y ) lié au 69.28.83.134 Adresse IP.

sudo tshark -i eth0 -Y 'ip.addr == 69.28.83.134' -c 10

Vous pouvez voir que la sortie ci-dessous affiche uniquement les paquets liés au 69.28.83.134 Adresse IP.

Enregistrement des paquets capturés dans un fichier

L'affichage des paquets capturés en temps réel vous permet d'agir immédiatement pour le dépannage. Mais peut-être que vous n'avez pas le temps de résoudre les problèmes pour le moment. Alors pourquoi ne pas enregistrer les paquets capturés dans un fichier ? Par exemple, votre connexion SSH a bien fonctionné, et tout à coup la connexion n'est pas disponible.

Faire défiler les paquets dans le terminal ne donnera pas toujours des informations pour comprendre la cause du problème. Dans ce cas, vous pouvez utiliser TShark pour enregistrer les paquets capturés et les partager avec vos amis ou collègues qui, selon vous, peuvent vous aider.

Exécutez la commande ci-dessous pour stocker les paquets capturés dans un fichier .pcap dossier. La commande effectue les actions suivantes :

  • Définit l'option de tampon circulaire de capture (-b ), ce qui fait apparaître le mode fichiers multiples. Dans ce mode, TShark écrit les paquets capturés dans des fichiers numérotés. Une fois que la taille du premier fichier est pleine, TShark passe au fichier suivant, et ainsi de suite.
  • Demande à TShark de créer 10 fichiers (-a files:10 ) contenant les paquets capturés dans le mode de fonctionnement du tampon circulaire, chaque fichier contenant 1024 Ko (1 Mo). Si vous n'ajoutez pas le files option, le mode de fonctionnement du tampon en anneau fonctionnera indéfiniment jusqu'à ce que votre espace disque soit plein ou qu'une condition d'arrêt se produise.

Il n'y a pas de limite au nombre de fichiers que vous pouvez utiliser avec cette option. Mais notez que la taille totale de tous les fichiers dans le mode de fonctionnement de la mémoire tampon circulaire ne peut pas dépasser 2 Go. Une fois cette limite atteinte, TShark s'arrête et attend que vous libériez de l'espace disque en supprimant certains fichiers avant de continuer.

  • Écrit les paquets dans un fichier (-w ), dans ce cas, ata.pcap , pendant que vous exécutez votre capture sur une interface spécifique (eth0 ).
sudo tshark -i eth0 -f "tcp port 22" -b filesize:1024 -a files:10 -w ata.pcap

TShark ne vous montre pas la progression de l'écriture et le nombre continu de paquets capturés lors de l'écriture dans un fichier. Vous ne verrez que le nombre de paquets capturés, comme indiqué ci-dessous.

Maintenant, appuyez sur CTRL + C pour arrêter le processus d'écriture à un moment donné. Vous aurez un nouveau fichier, comme indiqué ci-dessous, contenant les paquets capturés pendant la session.

Vous pouvez maintenant partager ce fichier avec votre ami et continuer à déboguer le problème ensemble !

Conclusion

Dans ce tutoriel, vous avez appris à installer TShark sur une machine Ubuntu. Vous avez également appris à ajouter des filtres pour rechercher des paquets capturés spécifiques et écrire des paquets capturés dans un fichier.

À ce stade, vous comprenez déjà TShark et ses options de ligne de commande de base pour gérer les paquets. Vous pouvez maintenant commencer à résoudre les problèmes de réseau par vous-même ou en faire une raison de créer des liens avec des amis !

Avec ces nouvelles connaissances, pourquoi ne pas installer Tshark avec Wireshark pour surveiller les paquets dans AWS EC2 ? Ou peut-être mesurer le débit d'un flux vidéo ?


Linux
  1. 5 commandes de dépannage du réseau Linux

  2. Comment se connecter à une base de données Postgresql à partir de la ligne de commande

  3. Je ne peux pas naviguer sur le réseau depuis Nautilus ?

  4. Analysez le réseau local avec arp-scan sur ubuntu

  5. Comment faire une requête/un appel HTTP avec la charge utile JSON à partir de la ligne de commande ?

Gérez votre calendrier depuis le terminal Linux avec la commande konsolekalendar

Apprendre Linux avec le Raspberry Pi

Faites une pause en ligne de commande Linux avec Nyan Cat

Écrire un ISO sur la clé USB directement à partir d'Internet avec BTFS

Travailler avec des images Docker à partir de la ligne de commande

Puis-je imprimer des fichiers html (avec images, css) depuis la ligne de commande ?