Comment utiliser tcpdump et 6 exemples

Comment utiliser tcpdump et 6 exemples

Essayez-vous de capturer des paquets de données afin d'analyser le trafic sur votre réseau ? Peut-être êtes-vous un administrateur de serveur qui a rencontré un problème et souhaite surveiller les données transmises sur le réseau. Quelle que soit la situation, l'utilitaire Linux tcpdump est ce dont vous avez besoin.





Dans cet article, nous aborderons en détail la commande tcpdump, ainsi que quelques guides sur la façon d'installer et d'utiliser tcpdump sur votre système Linux.





Qu'est-ce que la commande tcpdump ?

Tcpdump est un puissant outil de surveillance de réseau qui permet à un utilisateur de filtrer efficacement les paquets et le trafic sur un réseau. Vous pouvez obtenir des informations détaillées sur TCP/IP et les paquets transmis sur votre réseau. Tcpdump est un utilitaire de ligne de commande, ce qui signifie que vous pouvez l'exécuter sur des serveurs Linux sans affichage.





Les administrateurs système peuvent également intégrer l'utilitaire tcpdump avec cron afin d'automatiser diverses tâches telles que la journalisation. Étant donné que ses nombreuses fonctionnalités le rendent assez polyvalent, tcpdump fonctionne comme un outil de dépannage et de sécurité.

Comment installer tcpdump sur Linux

Alors que la plupart du temps, vous trouverez tcpdump préinstallé sur votre système, certaines distributions Linux ne sont pas livrées avec le package. Par conséquent, vous devrez peut-être installer manuellement l'utilitaire sur votre système.



Vous pouvez vérifier si tcpdump est installé sur votre système en utilisant le lequel commander.

which tcpdump

Si la sortie affiche un chemin de répertoire ( /usr/bin/tcpdump ), le package est alors installé sur votre système. Cependant, sinon, vous pouvez le faire facilement en utilisant le gestionnaire de packages par défaut sur votre système.





Pour installer tcpdump sur des distributions basées sur Debian telles qu'Ubuntu :

sudo apt-get install tcpdump

L'installation de tcpdump sur CentOS est également simple.





sudo yum install tcpdump

Sur les distributions basées sur Arch :

sudo pacman -S tcpdump

Pour installer sur Fedora :

sudo dnf install tcpdump

Notez que le package tcpdump nécessite libcap en tant que dépendance, assurez-vous donc de l'installer également sur votre système.

Exemples de Tcpdump pour capturer des paquets réseau sous Linux

Maintenant que vous avez installé avec succès tcpdump sur votre machine Linux, il est temps de surveiller certains paquets. Étant donné que tcpdump nécessite des autorisations de superutilisateur pour exécuter la plupart des opérations, vous devrez ajouter sudo à vos commandes.

1. Lister toutes les interfaces réseau

Pour vérifier quelles interfaces réseau sont disponibles pour la capture, utilisez le -RÉ flag avec la commande tcpdump.

tcpdump -D

Passer le --list-interfaces flag comme argument renverra la même sortie.

tcpdump --list-interfaces

La sortie sera une liste de toutes les interfaces réseau présentes sur votre système.

Après avoir obtenu la liste des interfaces réseau, il est temps de surveiller votre réseau en capturant les paquets sur votre système. Bien que vous puissiez spécifier l'interface que vous souhaitez utiliser, le tout L'argument commande tcpdump pour capturer les paquets réseau en utilisant n'importe quelle interface active.

tcpdump --interface any

Le système affichera la sortie suivante.

quel est l'autre dans le stockage iphone

En rapport: Qu'est-ce que le modèle d'interconnexion des systèmes ouverts ?

2. Le format de sortie tcpdump

À partir de la troisième ligne, chaque ligne de la sortie désigne un paquet spécifique capturé par tcpdump. Voici à quoi ressemble la sortie d'un seul paquet.

17:00:25.369138 wlp0s20f3 Out IP localsystem.40310 > kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 33

Gardez à l'esprit que tous les paquets ne sont pas capturés de cette façon, mais c'est le format général suivi par la plupart d'entre eux.

La sortie contient les informations suivantes.

  1. Horodatage du paquet reçu
  2. Nom de l'interface
  3. Flux de paquets
  4. Nom du protocole réseau
  5. Adresse IP et détails du port
  6. Indicateurs TCP
  7. Le numéro de séquence des données dans le paquet
  8. Acquitter les données
  9. La taille de la fenêtre
  10. Longueur de paquet

Le premier champ ( 17: 00: 25.369138 ) affiche l'horodatage lorsque votre système a envoyé ou reçu le paquet. L'heure enregistrée est extraite de l'heure locale de votre système.

comment transférer un texte sur android

Les deuxième et troisième champs indiquent l'interface utilisée et le flux du paquet. Dans l'extrait ci-dessus, wlp0s20f3 est le nom de l'interface sans fil et Dehors est le flux de paquets.

Le quatrième champ comprend des informations relatives au nom du protocole réseau. Généralement, vous trouverez deux protocoles- IP et IP6 , où IP désigne IPV4 et IP6 correspond à IPV6.

Le champ suivant contient les adresses IP ou le nom du système source et de destination. Les adresses IP sont suivies du numéro de port.

Le sixième champ de la sortie se compose d'indicateurs TCP. Il existe différents indicateurs qui sont utilisés dans la sortie tcpdump.

Nom du drapeauValeurLa description
VUESConnexion démarrée
FINIRFConnexion terminée
POUSSERPLes données sont poussées
TVDRLa connexion est réinitialisée
HÉLAS.Reconnaissance

La sortie peut également contenir une combinaison de plusieurs indicateurs TCP. Par exemple, DRAPEAU [f.] signifie un paquet FIN-ACK.

En allant plus loin dans l'extrait de sortie, le champ suivant contient le numéro de séquence ( séquence 196:568 ) des données du paquet. Le premier paquet a toujours une valeur entière positive et les paquets suivants utilisent le numéro de séquence relatif pour améliorer le flux de données.

Le champ suivant contient le numéro d'accusé de réception ( ack 1 ), ou un simple numéro d'accusé de réception. Le paquet capturé dans la machine de l'expéditeur a 1 comme numéro d'accusé de réception. Du côté du récepteur, le numéro Ack est la valeur du prochain paquet.

Le neuvième champ de la sortie s'adapte à la taille de la fenêtre ( gagner 309 ), qui est le nombre d'octets disponibles dans le tampon de réception. Il existe plusieurs autres champs qui suivent la taille de la fenêtre, y compris la taille maximale du segment (MSS).

Le dernier champ ( longueur 33 ) contient la longueur du paquet global capturé par tcpdump.

3. Limitez le nombre de paquets capturés

Lors de l'exécution de la commande tcpdump pour la première fois, vous remarquerez peut-être que le système continue de capturer des paquets réseau jusqu'à ce que vous passiez un signal d'interruption. Vous pouvez remplacer ce comportement par défaut en spécifiant au préalable le nombre de paquets que vous souhaitez capturer à l'aide de la -c drapeau.

tcpdump --interface any -c 10

La commande susmentionnée capturera dix paquets à partir de n'importe quelle interface réseau active.

4. Filtrer les paquets en fonction des champs

Lorsque vous résolvez un problème, obtenir un gros bloc de sortie de texte sur votre terminal ne facilite pas la tâche. C'est là que la fonction de filtrage de tcpdump entre en jeu. Vous pouvez filtrer les paquets en fonction de divers champs, notamment l'hôte, le protocole, le numéro de port, etc.

Pour capturer uniquement les paquets TCP, saisissez :

tcpdump --interface any -c 5 tcp

De même, si vous souhaitez filtrer la sortie à l'aide du numéro de port :

tcpdump --interface any -c 5 port 50

La commande mentionnée ci-dessus ne récupérera que les paquets transmis via le port spécifié.

Pour obtenir les détails du paquet pour un hôte particulier :

tcpdump --interface any -c 5 host 112.123.13.145

Si vous souhaitez filtrer les paquets envoyés ou reçus par un hôte spécifique, utilisez le src ou etc argument avec la commande.

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

Vous pouvez également utiliser les opérateurs logiques et et ou pour combiner deux ou plusieurs expressions ensemble. Par exemple, pour obtenir des paquets qui appartiennent à l'IP source 112.123.13.145 et utiliser le port 80 :

tcpdump --interface any -c 10 src 112.123.13.145 and port 80

Les expressions complexes peuvent être regroupées en utilisant parenthèses comme suit:

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Afficher le contenu du paquet

Vous pouvez utiliser le et -X flags avec la commande tcpdump pour analyser le contenu du paquet réseau. Les le drapeau représente ASCII formater et -X désigne hexadécimal format.

Pour afficher le contenu du prochain paquet réseau capturé par le système :

tcpdump --interface any -c 1 -A
tcpdump --interface any -c 1 -x

Connexes : Qu'est-ce que la perte de paquets et comment en corriger la cause ?

6. Enregistrer les données de capture dans un fichier

Si vous souhaitez enregistrer les données de capture à des fins de référence, tcpdump est là pour vous aider. Il suffit de passer le -dans flag avec la commande par défaut pour écrire la sortie dans un fichier au lieu de l'afficher à l'écran.

tcpdump --interface any -c 10 -w data.pcap

Les .pcap l'extension de fichier signifie capture de paquets Les données. Vous pouvez également émettre la commande susmentionnée en mode verbeux en utilisant le -v drapeau.

tcpdump --interface any -c 10 -w data.pcap -v

Pour lire un .pcap à l'aide de tcpdump, utilisez le -r flag suivi du chemin du fichier. Les -r signifie Lire .

comment réparer un bouton home cassé
tcpdump -r data.pcap

Vous pouvez également filtrer les paquets réseau à partir des données de paquets enregistrées dans le fichier.

tcpdump -r data.pcap port 80

Surveillance du trafic réseau sous Linux

Si vous avez été chargé d'administrer un serveur Linux, la commande tcpdump est un excellent outil à inclure dans votre arsenal. Vous pouvez facilement résoudre les problèmes liés au réseau en capturant les paquets transmis sur votre réseau en temps réel.

Mais avant tout cela, votre appareil doit être connecté à Internet. Pour les débutants Linux, même se connecter au Wi-Fi via la ligne de commande peut être un peu difficile. Mais si vous utilisez les bons outils, c'est un jeu d'enfant.

Partager Partager Tweeter E-mail Comment se connecter au Wi-Fi via le terminal Linux avec Nmcli

Vous voulez vous connecter à un réseau Wi-Fi via la ligne de commande Linux ? Voici ce que vous devez savoir sur la commande nmcli.

Lire la suite
Rubriques connexes
  • Linux
  • Sécurité
  • Analyse de réseau
A propos de l'auteur Profonde Sharma(79 articles publiés)

Deepesh est l'éditeur junior pour Linux chez MUO. Il écrit des guides d'information sur Linux, visant à offrir une expérience heureuse à tous les nouveaux arrivants. Pas sûr des films, mais si vous voulez parler de technologie, c'est votre homme. Pendant son temps libre, vous pouvez le trouver en train de lire des livres, d'écouter différents genres musicaux ou de jouer de sa guitare.

Plus de Deepesh Sharma

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner