Comment utiliser tcpdump pour la capture de paquets

La capture de paquets est un moyen très utile d’analyser le fonctionnement interne d’un réseau. Il existe une variété d’outils différents développés à cette fin. L’un d’eux est tcpdump. Ici, nous vous montrons comment tirer le meilleur parti de cet excellent outil pour les ingénieurs réseau et les testeurs de pénétration.
Table des matières
- Qu’est-ce que tcpdump ?
- Installation
- Les bases
- Spécifier une interface réseau
- Spécifier un port/une plage de ports
- Spécifier un hôte ou un sous-réseau
- Spécifier la verbosité
- Enregistrer la capture dans un fichier
- Questions fréquentes
À lire aussi : Tor vs. VPN : L’un est-il meilleur que l’autre ?
Qu’est-ce que tcpdump ?
tcpdump est un outil d’analyse de paquets réseau qui a été développé et publié en 1988 par une équipe de scientifiques informatiques travaillant au Lawrence Berkeley Laboratory et à son groupe de recherche sur les réseaux. Il est utilisé pour afficher le contenu des paquets qu’un ordinateur envoie et reçoit. L’utilitaire est livré avec une variété d’options pour rendre la capture de paquets plus spécifique et ciblée. Certaines de ces options incluent différents protocoles de réseau et interfaces réseau.
Installation
De nombreuses distributions Linux sont livrées avec l’utilitaire préinstallé. Cependant, si votre distribution de choix ne l’a pas, l’installation est heureusement rapide et simple.
Si vous utilisez par exemple Ubuntu ou Debian, il peut être installé en utilisant apt :
sudo apt install tcpdumpSur CentOS, la même chose se fait en utilisant yum :
sudo yum install tcpdumpEt sur Arch Linux en utilisant pacman :
sudo pacman -S tcpdumpÀ lire aussi : Qu’est-ce que le routage oignon et comment récupérer votre confidentialité
Les bases
Avec tcpdump installé, vous pouvez consulter le manuel en utilisant le drapeau -h :
tcpdump -hCela vous montre une liste des drapeaux que vous pouvez utiliser lorsque vous utilisez l’outil.

Si vous souhaitez jeter un coup d’œil à un manuel plus complet et détaillé, vous pouvez consulter la page de manuel (manuelle) en utilisant la commande man :
man tcpdump
Vous pouvez exécuter une capture de paquets de base en tapant :
tcpdumpEn utilisant la commande seule et en ne spécifiant pas d’interface réseau, l’outil en choisira une parmi les interfaces disponibles sur votre système.
Si vous ne voulez pas que tcpdump résolve les noms d’hôtes et que vous souhaitez qu’il n’affiche que les adresses IP, vous pouvez utiliser le drapeau -n :
tcpdump -nSi vous voulez spécifier le nombre de paquets que vous souhaitez capturer, utilisez le drapeau -c :
tcpdump -c[nombre de paquets]Spécifier une interface réseau
Vous pouvez spécifier votre choix d’interface réseau en utilisant le drapeau -i :
tcpdump -i[interface]Deux des noms d’interface réseau les plus courants sur la plupart des systèmes sont eth0 et wlan0 :
tcpdump -i eth0
tcpdump -i wlan0Si vous souhaitez capturer des données sur toutes les interfaces, vous pouvez utiliser l’option any :
tcpdump -i anyÀ lire aussi : Switch Ethernet vs. Hub vs. Splitter : Quelle est la différence ?
Spécifier un port/une plage de ports
Si vous souhaitez uniquement capturer des données utilisant un numéro de port spécifique, utilisez la commande :
tcpdump -i[interface] port [numéro de port]Disons que vous souhaitez capturer le trafic sur l’interface eth0 et pour le port 443 (HTTPS). Tapez ce qui suit :
tcpdump -i eth0 port 443De plus, tcpdump vous permet de spécifier une plage de ports :
tcpdump -i[interface] portrange [plage de ports]Spécifier un hôte ou un sous-réseau
Il y aura des fois où vous souhaitez limiter les paquets capturés uniquement à ceux envoyés/reçus d’un hôte ou sous-réseau spécifique. Heureusement, tcpdump vous permet de le faire.
Vous pouvez spécifier un hôte en utilisant le format suivant :
tcpdump -i[interface] host [hôte]Par exemple, capturez le trafic sur l’interface eth0 et spécifiez l’hôte comme 127.0.0.1 (votre propre adresse IP de bouclage) :
tcpdump -i eth0 host 127.0.0.1Si vous souhaitez spécifier un sous-réseau utilisant la notation CIDR, vous pouvez utiliser le format suivant :
tcpdump -i[interface] net [sous-réseau]Par exemple :
tcpdump -i eth0 net 10.0.0.0/8Vous pouvez également spécifier directement un hôte source :
tcpdump -i[interface] src [hôte]Et un hôte de destination :
tcpdump -i[interface] dst [hôte]À lire aussi : Comment exécuter Nmap sans root ou sudo
Spécifier la verbosité
tcpdump vous permet de spécifier la verbosité de la capture de paquets. Cela est très utile lorsque vous ne souhaitez pas être submergé par la quantité d’informations lors d’une capture.
Il y a trois options incitatives pour la verbosité, les drapeaux -v, -vv et -vvv :
tcpdump -i[interface]-v
tcpdump -i[interface]-vv
tcpdump -i[interface]-vvvLa première option spécifie la moindre verbosité, tandis que la troisième option spécifie le plus.
Enregistrer la capture dans un fichier
Il est souvent utile de sauvegarder les données capturées dans un fichier, afin qu’elles puissent être analysées et interprétées plus tard.
Cela se fait en utilisant le drapeau -w :
tcpdump -i[interface]-w[nom de fichier]Par exemple, vous pouvez sauvegarder les données capturées dans un fichier appelé “capture.txt” :
tcpdump -i eth0 -w capture.txtÀ lire aussi : Comment ouvrir des ports et configurer le transfert de ports sur votre routeur
Questions fréquentes
1. J’ai reçu une erreur “Opération non autorisée”. Comment la résoudre ?
Voici une erreur courante que les utilisateurs peuvent recevoir lorsqu’ils essaient d’utiliser tcpdump :

tcpdump vous donne cette erreur lorsque vous n’avez pas les permissions nécessaires pour effectuer une capture de paquets. Dans la plupart des scénarios, vous pouvez résoudre cela en utilisant sudo. Par exemple :
sudo tcpdump -i eth02. Comment savoir quelles interfaces réseau sont disponibles ?
tcpdump dispose d’une fonctionnalité intégrée qui vous permet de vérifier les interfaces réseau disponibles sur votre système.
Pour vérifier les interfaces, utilisez le drapeau -D :
tcpdump -D