accueil > Gestion réseau > tcpdump

tcpdump : capture et analyse du trafic réseau

tcpdump est un outil puissant en ligne de commande pour capturer et analyser les paquets TCP/IP et autres transitant par une interface réseau. Il permet de filtrer les paquets selon des conditions spécifiques pour les afficher en temps réel ou les enregistrer dans un fichier pour une analyse ultérieure. Il est utilisé pour le diagnostic de problèmes réseau, les audits de sécurité, le débogage d'applications, et bien plus encore.

Aperçu

tcpdump surveille les interfaces réseau pour capturer et interpréter les en-têtes de paquets. Il permet de sélectionner et d'afficher uniquement le trafic souhaité à l'aide de diverses expressions de filtrage, et peut afficher les données capturées sur la sortie standard ou les enregistrer dans un fichier .pcap.

Fonctionnalités principales

  • Surveillance en temps réel des interfaces réseau
  • Capture de paquets de divers protocoles (TCP, UDP, ICMP, etc.)
  • Support d'expressions de filtrage puissantes
  • Enregistrement et chargement des données capturées dans des fichiers
  • Diagnostic de problèmes réseau et analyse de sécurité

Options principales

tcpdump offre une large gamme d'options pour contrôler finement le comportement de capture, le filtrage et le format de sortie.

Contrôle de la capture

Format de sortie

Expressions de filtrage

Commande générée :

Essayez de combiner les commandes.

Description:

`tcpdump` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Exemples illustrant diverses utilisations de tcpdump. La plupart des commandes nécessitent des privilèges root.

Capture de paquets sur toutes les interfaces (par défaut)

sudo tcpdump

Capture les paquets sur toutes les interfaces actives et les affiche en temps réel. Arrêtez avec Ctrl+C.

Capture sur une interface spécifique

sudo tcpdump -i eth0

Capture tout le trafic sur l'interface eth0.

Capture du trafic d'un hôte spécifique

sudo tcpdump host 192.168.1.100

Capture tout le trafic lié à l'adresse IP 192.168.1.100.

Capture du trafic TCP sur un port spécifique

sudo tcpdump tcp port 80

Capture uniquement les paquets TCP sur le port 80, correspondant au trafic web (HTTP).

Filtrage combiné par IP source et port de destination

sudo tcpdump src host 192.168.1.50 and dst port 22

Capture le trafic dont l'IP source est 192.168.1.50 et le port de destination est 22 (SSH).

Enregistrer les paquets capturés dans un fichier

sudo tcpdump -i eth0 -c 100 -w capture.pcap

Enregistre les paquets capturés sur l'interface eth0 dans le fichier capture.pcap. L'option -c 100 limite l'enregistrement à 100 paquets.

Lire les paquets depuis un fichier enregistré

tcpdump -r capture.pcap

Lit et affiche le contenu du fichier capture.pcap précédemment enregistré.

Afficher uniquement les adresses IP et les numéros de port (sans résolution de noms)

sudo tcpdump -nn

Affiche rapidement les adresses IP et les numéros de port sous forme numérique, sans tenter de résoudre les noms d'hôtes ou de services.

Installation

tcpdump n'est pas toujours installé par défaut sur la plupart des distributions Linux, ou peut ne pas être inclus dans une installation minimale. Vous pouvez l'installer en utilisant les commandes suivantes.

Debian/Ubuntu

sudo apt update
sudo apt install tcpdump

Installe tcpdump en utilisant le gestionnaire de paquets APT.

CentOS/RHEL/Fedora

sudo yum install tcpdump  # ou dnf install tcpdump

Installe tcpdump en utilisant le gestionnaire de paquets YUM ou DNF.

Conseils et précautions

Conseils pour utiliser tcpdump efficacement et points à considérer.

Problèmes de permissions

La capture sur les interfaces réseau nécessite généralement des privilèges root. Par conséquent, la plupart des commandes tcpdump doivent être exécutées avec `sudo`.

  • Exécutez toujours les commandes avec `sudo tcpdump ...`
  • Il est possible d'accorder l'autorisation `CAP_NET_RAW` à un utilisateur spécifique pour exécuter tcpdump sans `sudo`, mais cela doit être fait avec prudence pour des raisons de sécurité.

Importance du filtrage

Dans les environnements à fort trafic, l'exécution de tcpdump sans filtrage peut générer une quantité énorme de données, rendant l'analyse difficile et affectant les performances du système. Utilisez activement les expressions de filtrage pour capturer uniquement le trafic nécessaire.

  • Ignorez le trafic inutile et capturez uniquement le trafic requis.
  • Le filtrage doit être appliqué avant le début de la capture pour être efficace.

Enregistrement et analyse de fichiers

Si l'analyse en temps réel est difficile ou si une analyse détaillée est nécessaire ultérieurement, il est recommandé d'enregistrer les paquets dans un fichier `.pcap` à l'aide de l'option `-w`. Les fichiers enregistrés peuvent être analysés plus facilement avec des outils graphiques comme Wireshark.

  • Enregistrez le trafic volumineux avec `-w` pour une analyse ultérieure.
  • Wireshark est un outil optimisé pour l'analyse de fichiers `.pcap`.

Considérations de performance

tcpdump peut consommer beaucoup de ressources système. En particulier dans les environnements à haut débit, la capture de paquets entiers ou l'utilisation de filtres complexes peuvent surcharger le CPU et les opérations d'E/S disque.

  • Utilisez l'option `-s` pour limiter la longueur des paquets capturés afin d'économiser des ressources.
  • Utilisez l'option `-c` pour limiter le nombre de paquets capturés.

Commandes de la même catégorie