Linux est équipé d'une pléthore d'utilitaires réseau parmi lesquels choisir. tcpdump est l'un de ces puissants outils de mise en réseau qui peut capturer et analyser le trafic réseau si vous avez besoin de résoudre des erreurs de réseau sous Linux.

Examinons la commande tcpdump et explorons comment l'utiliser pour capturer le trafic réseau.

Installation de tcpdump sous Linux

tcpdump est généralement pré-installé avec toutes les distributions Linux grand public et des alternatives basées sur la sécurité. Vous devriez donc pouvoir l'utiliser immédiatement en tapant tcpdump avec un sudo préfixe.

Si vous ne parvenez pas à exécuter la commande tcpdump et que vous êtes bloqué sur le "tcpdump: commande introuvable", apprenons comment installer tcpdump sur votre machine Linux.

Pour installer tcpdump, lancez le terminal et exécutez la commande correspondant à la distribution Linux que vous utilisez actuellement :

Sur les dérivés Debian/Ubuntu, exécutez :

sudo apt-obtenir installer tcpdump

Sur Systèmes basés sur l'arche, Cours:

instagram viewer
sudo pacman -S tcpdump

Pour installer l'utilitaire tcpdump sur Fedora, CentOS et RHEL, exécutez la commande suivante :

sudo dnf installer tcpdump

Notez que si vous êtes invité à installer libcap, tapez Oui ou Oui car il s'agit d'une dépendance principale, sans laquelle tcpdump refusera de démarrer. Cela devrait installer l'utilitaire tcpdump et résoudre l'erreur "commande introuvable".

Maintenant que tcpdump a été installé sur votre système, explorons les différentes options et fonctionnalités qu'il offre.

Capturer le trafic réseau avec tcpdump

tcpdump propose de nombreux indicateurs pour modifier son exécution, mais il peut également être exécuté en tant que commande autonome. Cependant, exécuter tcpdump sans aucun indicateur ou argument reviendrait à négliger tout son potentiel. Il est toujours préférable d'utiliser quelques drapeaux pour ajuster l'exécution et la sortie si nécessaire.

Tapez cette commande pour surveiller les transmissions réseau avec tcpdump :

sudo tcpdump

Maintenant, tcpdump commencera à capturer automatiquement les paquets réseau jusqu'à ce que un signal d'interruption est envoyé avec Ctrl + Z pour interrompre le processus manuellement. Pour limiter le nombre total de paquets capturés, utilisez le -c drapeau et tapez la limite de paquets souhaitée à côté :

sudo tcpdump -c 5

Si vous ne parvenez pas à donner un sens à la sortie pour le moment, vous devez se familiariser avec le format de sortie tcpdump première.

Vérifiez les interfaces réseau disponibles avec tcpdump

Par défaut, tcpdump capture le trafic de n'importe quelle interface réseau disponible. Si vous utilisez plusieurs interfaces réseau actives, vous souhaiterez peut-être définir l'interface réseau à partir de laquelle tcpdump doit capturer les paquets. Pour démarrer tcpdump sur une interface spécifique, vous devrez d'abord connaître le nom de l'interface.

Voici comment répertorier toutes les interfaces réseau disponibles avec tcpdump :

sudo tcpdump-D

Ou, vous pouvez ajouter le --list-interfaces drapeau à la commande :

sudo tcpdump --liste-interfaces

La sortie renvoyée contient une liste de toutes les interfaces réseau actives que tcpdump peut écouter. Pour configurer tcpdump pour capturer les transmissions à partir d'une interface réseau particulière, saisissez cette commande :

sudo tcpdump -i interface_id

Ou, vous pouvez ajouter le --interface drapeau à la commande :

sudo tcpdump --interfaceinterface_id

Maintenant que nous avons capturé quelques paquets, étudions-les de près et apprenons comment vous pouvez modifier la sortie pour la rendre plus lisible.

Explorer les filtres tcpdump

tcpdump est capable de capturer une quantité écrasante de trafic en une seule exécution. Une telle surcharge d'informations peut vous dérouter lors de l'examen ou du dépannage de problèmes avec un hôte ou un protocole réseau spécifique.

C'est là que les filtres tcpdump entrent en jeu. Vous pouvez ajouter la commande tcpdump avec certains indicateurs pour filtrer le trafic réseau et capturer des paquets spécifiques. Vous pouvez ensuite stocker ces paquets et les analyser ultérieurement pour accéder à la racine de tout problème lié au réseau. Apprenons à utiliser les filtres dans tcpdump.

Filtrer les paquets en fonction du protocole réseau utilisé

Pour filtrer les paquets transmis via un protocole spécifique, tapez le nom du protocole avec la commande tcpdump, et il ne capturera que les paquets voyageant via le protocole réseau défini.

Par exemple, pour capturer des paquets basés sur ICMP, il vous suffit de joindre ICMP à la fin de la commande tcpdump. Le processus est le même si vous souhaitez capturer uniquement les paquets UDP ou TCP.

sudo tcpdump -c 5 icmp

Cette commande ne renverra une sortie que s'il y a un échange de données via le protocole ICMP.

Filtrer les paquets en fonction de l'hôte

Vous pouvez configurer tcpdump pour capturer les paquets liés à un seul hôte avec le héberger paramètre. Ceci est particulièrement utile lorsque tous les systèmes de votre réseau fonctionnent sauf un. Ce filtre vous permet d'effectuer une enquête ciblée et d'accélérer le flux de travail de dépannage global puisque vous n'êtes pas distrait par des données inutiles.

Pour capturer des paquets liés à un hôte spécifique, définissez l'adresse réseau de l'hôte avec le héberger paramètre:

sudotcpdump-c 5 héberger 192.168.2.1

Semblable au filtre de protocole réseau, cette commande ne renverra une sortie que si une transmission en cours est liée à l'hôte défini.

Filtrer les paquets en fonction du port actif

tcpdump est équipé d'un paramètre qui vous permet de filtrer le trafic réseau et de capturer uniquement les paquets transmis vers ou depuis un port spécifique.

Pour capturer les paquets provenant d'un port spécifique, ajoutez le Port flag à la commande tcpdump et définissez le numéro de port à côté. Par exemple, pour capturer tout trafic HTTP entrant ou sortant, définissez le port 80 :

sudo tcpdump -c 5 port 80

tcpdump écoutera sur le port 80, attendant les transmissions HTTP. Une fois qu'il détecte les paquets HTTP sur le réseau, il les capture.

Combinez les filtres ensemble pour un tri avancé

Les sections précédentes ont expliqué comment vous pouvez filtrer le trafic en fonction du port, du protocole ou de l'hôte, mais que se passe-t-il si vous vouliez capturer le trafic d'un seul port d'un hôte spécifique en utilisant un réseau particulier protocole? Eh bien, vous avez de la chance car cela est possible, grâce à la possibilité d'utiliser des opérateurs logiques avec la commande tcpdump.

Pour capturer les paquets d'un hôte individuel à l'aide du port 443, utilisez cette commande :

sudotcpdump-c 5 héberger 192.168.2.1etPort 443

Inspecter le contenu des paquets capturés

Par défaut, tcpdump affiche les en-têtes d'un paquet dans la sortie. Bien que cela soit plus que suffisant dans la plupart des cas, parfois, vous voudrez ou devrez approfondir les données capturées. Vous pouvez transmettre certains paramètres avec la commande tcpdump pour inspecter le contenu du package capturé.

Voici comment afficher le contenu des paquets :

sudo tcpdump -c 5 -x

Cette commande renvoie la version hexadécimale du contenu dans un paquet capturé. Si vous souhaitez visualiser la forme ASCII des données, vous pouvez passer le -UN paramètre avec :

sudo tcpdump -A

Enregistrer la sortie tcpdump dans un fichier

Comme presque tout autre outil de ligne de commande Linux, vous pouvez stocker la sortie produite par tcpdump dans un fichier à référencer ultérieurement.

Cela peut être fait en ajoutant le -w drapeau à la commande. Lors de l'exécution, tcpdump stockera les données capturées dans un .pcap fichier qui peut être analysé ultérieurement avec tcpdump ou d'autres outils de surveillance du réseau comme Wireshark.

Tapez cette commande pour stocker la sortie de votre commande tcpdump dans un fichier :

sudotcpdump-wCapturer.pcap

Pour lire un .pcap fichier, vous pouvez utiliser tcpdump avec le -r paramètre:

sudotcpdump-rCapturer.pcap

Linux est livré avec une pléthore d'outils de mise en réseau qui peuvent résoudre tous les problèmes de réseau tant qu'ils sont du côté logiciel. Savoir utiliser quelques-uns des meilleurs outils de mise en réseau sous Linux sera certainement utile, que vous soyez un administrateur système gérant des réseaux pour gagner votre vie ou simplement un utilisateur Linux de tous les jours.

Étant donné que la liste réelle des commandes réseau disponibles peut être trop difficile à comprendre, voici une liste de certains des outils réseau Linux les plus importants que vous devriez connaître.