Accueil Laser Un Tutoriel Sur La Commande Tcpdump Sous Linux

Un Tutoriel Sur La Commande Tcpdump Sous Linux

La commande tcpdump est un utilitaire Linux qui permet aux utilisateurs de capturer les paquets réseau transmis vers et depuis le système. Dans cet article, nous allons apprendre comment extraire et examiner les paquets réseau à l’aide de la commande tcpdump.

Bien que très improbable, il peut arriver qu’un système n’ait pas installé tcpdump. Dans ce cas, tout utilisateur Ubuntu/Debian peut saisir la commande suivante :

sudo apt installer tcpdump

Cas D’utilisation De La Commande Tcpdump

Passons à la compréhension des différents cas d’utilisation et de la praticité.

1. Utilisation De Tcpdump Pour Trouver Toutes Les Interfaces Réseau

Il faut noter que tout paquet entrant ou sortant du système doit passer par une interface réseau. Pour récupérer la liste de toutes les interfaces réseau disponibles, nous utilisons la commande :

tcpdump -D

Interfaces réseau

Outre le nom des interfaces réseau, la commande fournit également l’état.

2. Capturez Tous Les Paquets Réseau à L’aide De La Commande Tcpdump

Comme mentionné dans la sortie ci-dessus, « any » peut être utilisé pour capturer des paquets de données qui passent par toutes les interfaces réseau. Cela peut être fait en utilisant l’option d’interface ‘-i’.

tcpdump -i tout

Paquets réseau via toutes les interfaces

La sortie affichée ci-dessus manque de détails pour chaque paquet de données. Pour comprendre chaque paquet en détail, nous pouvons utiliser l’option ‘-v’.

‘tcpdump’ est une commande sans fin. Nous pouvons rencontrer un moment où nous devons forcer l’arrêt de la sortie, ce qui peut être fait en appuyant sur ‘CTRL + C’.

Après avoir cessé l’impression des paquets, on nous fournit quelques statistiques relatives à la session tcpdump en cours. Cela ressemble à ceci :

statistiques de session ‘tcpdump’

Les informations fournies sont :

  • Le nombre de paquets capturés et traités pendant la session tcpdump en cours.
  • Le nombre de paquets reçus par le filtre, mais non capturés. Cela dépend principalement de la configuration de l’OS.
  • Le nombre de paquets abandonnés par le noyau. Cela se produit généralement lorsque trop de paquets sont enregistrés dans le tampon. Cela conduit à un débordement de la mémoire tampon et donc à l’abandon de paquets.

3. Capturez Un Nombre Spécifique De Paquets

tcpdump permet de capturer uniquement un nombre spécifique de paquets avant de terminer la session de capture de paquets. Cela peut être fait en utilisant l’option ‘-c’.

tcpdump -c 5 -i tout

Session de capture limitée à 5 paquets

4. Capturez Des Paquets Spécifiques Au Protocole à L’aide De Tcpdump

Pour capturer des paquets appartenant à un protocole réseau particulier, nous ajoutons le nom du protocole à la fin.

tcpdump -c 5 -i n'importe quel tcp

Capturer uniquement les paquets TCP

La sortie affichée par la commande peut ne pas être comprise par tous les utilisateurs Linux. Essayons d’éclairer le paquet suivant.

2
Drapeaux , seq 234895113
options , longueur 1348
  • 2
  • IP6 – La version IP utilisée. Ici, c’est IPv6.
  • linuxfordevices.32906 – Le nom de l’ adresse source du paquet suivi du numéro de port. (Notre système)
  • del03s14-in-x0e.1e100.net.
  • Drapeaux – Le drapeau définit le type de paquet . Dans l’exemple, il s’agit d’un paquet d’accusé de réception.
  • seq 234895113
  • ack 3385291322 – Le numéro d’accusé de réception . Il est utilisé pour gérer plusieurs paquets qui sont échangés dans une seule connexion.
  • win 1564 – La taille de la fenêtre indique les octets disponibles dans le tampon de réception.
  • options – Options liées au protocole
  • length 1348 – La longueur du paquet de données en octets .

5. Capturez Des Paquets Spécifiques à L’hôte

En utilisant le mot-clé ‘host’ avec ‘tcpdump’, nous pouvons filtrer tous les paquets qui sont échangés avec un système hôte particulier.

tcpdump -nn -c 5 -i tout hôte 45.79.77.230

Requête spécifique à l’hôte

L’utilisation de ‘-nn’ traduit les noms d’hôtes en leurs adresses Internet numériques. L’adresse Internet transmise dans la commande est celle de www.linuxfordevices.com.

Remarque : les paquets n’apparaissent que s’il existe une connexion réseau réelle avec l’adresse IP spécifique.

tcpdump -nn -c 5 -i tout src 45.79.77.230

Pour les requêtes spécifiques à la destination, ‘dst’ est utilisé.

tcpdump -nn -c 5 -i tout dst 45.79.77.230

6. Capturez Des Paquets Sur Un Port Spécifique à L’aide De La Commande Tcpdump

Chaque connexion réseau est maintenue via un port spécifique d’un système informatique. Lors de la réception d’un paquet réseau, les numéros de port spécifient quelle application informatique est censée l’obtenir.

Afin de capturer les paquets, filtrés par un certain numéro de port, nous utilisons le mot-clé ‘port’.

tcpdump -i n'importe quel port 8000

Paquets réseau sur le port 8000

Si nous ne sommes pas certains du numéro de port exact, nous pouvons toujours utiliser une plage de numéros de port en :

tcpdump -i n'importe quelle plage de ports 8000-9000

7. Lecture Et écriture De Paquets Dans Un Fichier à L’aide De La Commande Tcpdump

Disons que nous souhaitons capturer le trafic réseau actuel mais l’analyser plus tard. Cette tâche peut être accomplie si nous sauvegardons les paquets dans un fichier. Cela peut être fait en utilisant l’option ‘-w’ qui signifie « écrire »:

tcpdump -c 5 -w network_file.pcap -i any

Écrire des paquets dans un fichier

L’extension d’un fichier de capture de paquets est .pcap . Il peut être consulté plus tard en utilisant l’option « -r » qui signifie « lire ».

tcpdump -r fichier_réseau.pcap

Lire des paquets à partir d’un fichier

8. Vérifier La Connexion à Un Site Web

Au cas où nous aurions besoin de vérifier si nous sommes connectés à un nom de domaine, nous pouvons utiliser la commande suivante :

tcpdump -XX -i tout | grep journaldev.com

Vérifier la connexion à journaldev.com

L’option ‘-XX’ convertit les valeurs du paquet de données en valeurs ASCII et Hex. Cela peut ne pas fonctionner pour toutes les URL, en raison des différences de noms de domaine.

Le symbole pipe (‘|’) suivant la commande tcpdump est utilisé pour transmettre les paquets de sortie à la commande grep. ‘grep’ est un utilitaire de recherche sous Linux, qui est ici utilisé pour rechercher ‘journaldev.com’ dans les paquets. Plus d’informations sur grep.

Conclusion