Tcpdump
| Fiche express | |
|---|---|
| Domaine | Capture de trafic réseau (sniffer en ligne de commande) |
| Commande | tcpdump
|
| Plateformes | Linux, Unix, AIX (équivalents Windows : WinDump, tshark) |
| Voir aussi | Netstat (Unix) |
tcpdump capture et affiche le trafic réseau transitant par une interface, avec un langage de filtre expressif (hôte, port, protocole, combinables par and/or/not). Disponible nativement sous Linux/Unix/AIX ; sous Windows, les équivalents sont WinDump (historique) ou tshark (Wireshark en ligne de commande).
Filtrage de base
tcpdump -ln -v icmp and not net 10.10.10.0/24 # tout l'ICMP sauf un sous-réseau donné
tcpdump -i eth2 # sur une interface donnée
tcpdump src host 10.100.20.100 and dst host 10.100.25.2 # source et/ou destination
tcpdump src host 10.100.20.100 and port 80 # + port
tcpdump src host 10.100.20.100 and tcp and port 21 # + protocole
# combinaison de plusieurs critères
tcpdump src host 10.100.20.100 and dst host 10.100.25.2 or dst host 10.100.25.1 and tcp and port 80
Les adresses ci-dessus sont des exemples génériques (plages RFC 1918), à remplacer par les hôtes réels concernés.
Inspecter le contenu des paquets
tcpdump -x -X -s 0 -i eth0 dst host cible and tcp and port 110 # POP3 : voir __Avertissement__ ci-dessous
-x: affiche la trame en hexadécimal-X: affiche également la trame en ASCII-s 0: capture le paquet en entier, quelle que soit sa taille
Avertissement : les protocoles en clair (POP3, FTP, Telnet...) exposent identifiants et mots de passe en toutes lettres à quiconque peut sniffer le segment — c'est une des raisons pour lesquelles ils sont aujourd'hui déconseillés au profit de leurs équivalents chiffrés (IMAPS, SFTP, SSH). Ne capturer que du trafic qu'on est autorisé à observer.
Recherche d'éléments précis dans la trame
tcpdump 'icmp[0] != 8 and icmp[0] != 0'
Captures ciblées
tcpdump dst port 8343 # trafic entrant sur un port TCP donné
tcpdump udp dst port 5060 # trafic entrant sur un port UDP donné (SIP)
tcpdump port 8380 -A -s 1500 # contenu complet du paquet, affiché en ASCII
tcpdump port 8380 -A -w out.cap # capturer et enregistrer dans un fichier
tcpdump -r out.cap # relire un fichier de capture
tcpdump -i eth0 not port 22 # tout le trafic sauf SSH
tcpdump -i eth0 src 192.168.0.1 and not port 22 # trafic d'un hôte donné, sauf SSH
tcpdump -A src 192.168.0.1 and not port 22 # contenu ASCII
tcpdump -X src 192.168.0.1 and not port 22 # contenu hexadécimal
Analyse
Pour l'analyse a posteriori d'une capture, des outils comme Nstreams permettent de reconstituer des règles de pare-feu à partir d'un fichier pcap.
Voir aussi
- Netstat (Unix) — état des connexions locales
- Scan de ports TCP / Scan de ports UDP
- Troubleshoot reseau