GNU/Linux >> Tutoriels Linux >  >> Linux

Exemples d'utilisation de la commande tcpdump pour le dépannage du réseau

L'utilitaire tcpdump vous permet de capturer les paquets qui circulent sur votre réseau pour faciliter le dépannage du réseau. Voici plusieurs exemples d'utilisation de tcpdump avec différentes options. Le trafic est capturé en fonction d'un filtre spécifié. Il existe une variété d'options, notamment :

Options Description
-D Imprimer une liste des interfaces réseau.
-i Spécifiez une interface sur laquelle capturer.
-c Spécifiez le nombre de paquets à recevoir.
-v, -vv, -vvv Augmenter le niveau de détail (verbosité).
-w Écrire les données capturées dans un fichier.
-r Lire les données capturées à partir d'un fichier.

Installation de l'utilitaire tcpdump

Sur la plupart des systèmes unix/linux, vous ne trouverez pas le package tcpdump déjà installé. Pour installer la dernière version, utilisez le gestionnaire de packages approprié sur votre système. Par exemple, dans le cas des serveurs CentOS/RHEL :

# yum install tcpdump

Exemples d'utilisation de tcpdump pour le dépannage du réseau

1. Afficher la liste des interfaces réseau

Pour imprimer une liste des interfaces réseau disponibles sur lesquelles tcpdump peut capturer des paquets :

# tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.any (Pseudo-device that captures on all interfaces)
5.lo [Loopback]

2. Capturer sur une interface spécifique

Comme le montre la commande 'tcpdump -D', pour chaque interface réseau, un numéro et un nom d'interface sont imprimés. Le nom ou le numéro de l'interface peut être fourni au -i flag pour spécifier une interface sur laquelle capturer. Par exemple, pour capturer les paquets sur l'interface eth0 :

# tcpdump -i 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
01:26:51.118038 IP ec2-54-159-106-120.compute-1.amazonaws.com.48021 > geeklab.31297: Flags [S], seq 3960153353, win 26883, options [mss 1460,sac
kOK,TS val 2229362922 ecr 0,nop,wscale 7], length 0
01:26:51.118072 IP geeklab.31297 > ec2-54-159-106-120.compute-1.amazonaws.com.48021: Flags [S.], seq 547340507, ack 3960153354, win 26847, optio
ns [mss 8961,sackOK,TS val 5714985 ecr 2229362922,nop,wscale 7], length 0

Dans cet exemple, la sortie est continue jusqu'à ce qu'elle soit terminée en appuyant sur Ctrl + C.

3. Capturez un nombre spécifique de paquets uniquement

Pour quitter tcpdump après avoir reçu un nombre spécifique de paquets, utilisez le -c (count) option suivie du nombre de paquets à recevoir. L'exemple suivant capture deux paquets :

# tcpdump -i 1 -c 2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
01:37:08.956549 IP 182.100.67.76.38819 > geeklab.ssh: Flags [P.], seq 542149092:542149176, ack 774431931, win 271, options [nop,nop,TS val 26493
51 ecr 6332468], length 84
01:37:08.956575 IP geeklab.ssh > 182.100.67.76.38819: Flags [.], ack 84, win 230, options [nop,nop,TS val 6332824 ecr 2649351], length 0
2 packets captured
6 packets received by filter
0 packets dropped by kernel

Comme illustré dans cet exemple, lorsque tcpdump termine la capture des paquets, il signale ce qui suit :

  • paquets capturés  :Il s'agit du nombre de paquets que tcpdump a reçus et traités.
  • paquets reçus par filtre  :Un filtre peut être spécifié sur la ligne de commande et seuls les paquets qui correspondent au filtre défini sont traités par tcpdump et comptés.
  • paquets rejetés par le noyau :Il s'agit du nombre de paquets abandonnés en raison d'un manque d'espace tampon. Utilisez l'option -B pour définir la taille de la mémoire tampon.

4. Augmentez les détails (verbosité) de la sortie

Pour augmenter le détail (verbosité) de la sortie, utilisez le -v ou -vv pour une sortie encore plus détaillée, ou -vvv pour le niveau de sortie le plus détaillé :

# tcpdump –i 1 –v
# tcpdump –i 1 -vv
# tcpdump –i 1 –vvv

5. Capturez les données dans un fichier

Utilisation de l'utilitaire tcpdump avec le -w L'option vous permet d'écrire les données capturées dans un fichier. Cela permet aux données capturées d'être lues par d'autres outils d'analyse de réseau, tels que Wireshark. L'exemple suivant capture des données dans un fichier nommé capture.out :

# tcpdump –i 1 –v –c2 –w capture.out

6. lecture des données capturées

Vous pouvez également lire les données capturées à partir d'un fichier en utilisant le –r choix :

# tcpdump –r capture_file

Quelques exemples supplémentaires de la commande tcpdump

De nombreuses autres options et arguments peuvent être utilisés avec tcpdump. Voici quelques exemples spécifiques de la puissance de l'utilitaire tcpdump.

1. Afficher le trafic entre 2 hôtes

Pour afficher tout le trafic entre deux hôtes (représentés par les variables host1 et host2) :

# tcpdump host host1 and host2

2. Afficher uniquement le trafic provenant d'un hôte source ou de destination

Pour afficher le trafic provenant uniquement d'un hôte source (src) ou de destination (dst) :

# tcpdump src host
# tcpdump dst host

3. Afficher le trafic pour un protocole spécifique

Indiquez le protocole comme argument pour afficher uniquement le trafic d'un protocole spécifique, par exemple tcp, udp, icmp, arp :

# tcpdump protocol

Par exemple pour afficher le trafic uniquement pour le trafic tcp :

# tcpdump tcp

4. Filtrage basé sur le port source ou destination

Pour filtrer en fonction d'un port source ou de destination :

# tcpdump src port ftp
# tcpdump dst port http

L'utilitaire tcpdump accepte également les opérateurs booléens (AND, NOT, OR) et le regroupement d'opérateurs, ce qui vous permet de créer des filtres complexes pour capturer des données réseau.


Linux
  1. Exemples de commandes DNF pour les débutants

  2. Utilisation de l'outil SS pour le dépannage du réseau

  3. 10 exemples pratiques d'utilisation de la commande scp

  4. Exemples d'utilisation de la commande dmsetup sous Linux

  5. Exemples de commandes dsniff sous Linux

Tutoriel de commande Linux tcpdump pour les débutants (8 exemples)

Exemples de commandes Linux ifconfig

Commande Linux tcpdump

Exemples utiles de tcpdump Linux pour l'administrateur réseau

10 exemples de commande Linux brctl pour le pont réseau Ethernet

Analyseur de paquets :15 exemples de commandes TCPDUMP