« Tcpdump » : différence entre les versions
| Ligne 42 : | Ligne 42 : | ||
tcpdump dst 2.3.4.5 # pour voir de que 2.3.4.5 reçoit du réseau | tcpdump dst 2.3.4.5 # pour voir de que 2.3.4.5 reçoit du réseau | ||
tcpdump host 2.3.4.5 # Ce que 2.3.4.5 envoie et reçoit | tcpdump host 2.3.4.5 # Ce que 2.3.4.5 envoie et reçoit | ||
</syntaxhighlight>Une autre utilisation des "hosts" c'est de vouloir vois tout sauf ce qui viens ou va sur un host donné. C'est le cas quand je me connecte à un router en ssh pour comprendre un truc: Je veux sniffer le réseau mais pas voir mon propre trafic.<syntaxhighlight lang="bash"> | |||
IPHOST=`echo $SSH_CLIENT | cut -d " " -f 1` # On récupère l'IP de la machine dont on vient | |||
sudo tcpdump -i eth0 not host $IPHOST # Pour tout le trafic | |||
# Ou eventuellement | |||
sudo tcpdump -i eth0 not src host $IPHOST # Sauf ce qui vient de mon poste (je vois pas l'utilité) | |||
sudo tcpdump -i eth0 not dst host $IPHOST # Sauf ce qui va vers mon poste... pas trop non plus | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Dernière version du 18 septembre 2026 à 17:35
Avec TCP Dump on peut regarder ce qu'il se passe sur le réseau auquel est connecté un ordinateur.
Cela peut être un poste de travail, un serveur ou même un routeur sous OpenWRT.
La base
Les commandes de bases sont:
tcpdump
Nous donne tout ce qui passe sur toutes les interfaces dont la machine est dotée. En général c'est monstrueux. D'autant plus que si on est connecté en ssh sur la machine car ce qui est envoyé en ssh l'est par le réseau donc affiché par tcpdump qui l'affiche sur le terminal dont envoyé par ssh....
Il faut être plus précis dans notre demande:
Les interfaces
Sur un poste de travail on aura une interface, habituellement eth0. Pas vraiment de sélection à faire. En revanche sur un routeur Wifi c'est plus subtil!
On a la liste des interfaces disponibles par:
tcpdump -D
Sur mon routeur GLInet j'ai comme réponse :
1.br-lan [Up, Running]
2.wlan-sta [Up, Running]
3.wlan0 [Up, Running]
4.eth1 [Up, Running]
5.lo [Up, Running, Loopback]
6.any (Pseudo-device that captures on all interfaces) [Up, Running]
7.eth0 [Up]
8.teql0 [none]
Mon routeur est configuré comme répéteur WiFi. Donc eth0 est "en l'air" mais le réseau internet est sur wlan-sta.
tcpdump -i wlan-sta
Nous avons là les échanges entre le routeur (et donc tous ses clients via le NAT) et l'internet.
L'interface br-lan est interessante car le trafic de nos cliets y est sous sa propre adresse dans le LAN.
Les hotes
On peut aussi inspecter le trafic d'un "host" donné. Ce peut être pour savoir qui, sur notre LAN discute avec un serveur donné ou ce qu'un client donné raconte sur le réseau.
On peut faire la différence entre
- Le trafic issu d'une IP donnée
- Le trafic à destination d'une IP donnée
- Le trafic dans les deux sens pour une IP donnée
tcpdump src 2.3.4.5 # pour voir ce que 2.3.4.5 envoie sur le réseau
tcpdump dst 2.3.4.5 # pour voir de que 2.3.4.5 reçoit du réseau
tcpdump host 2.3.4.5 # Ce que 2.3.4.5 envoie et reçoit
Une autre utilisation des "hosts" c'est de vouloir vois tout sauf ce qui viens ou va sur un host donné. C'est le cas quand je me connecte à un router en ssh pour comprendre un truc: Je veux sniffer le réseau mais pas voir mon propre trafic.
IPHOST=`echo $SSH_CLIENT | cut -d " " -f 1` # On récupère l'IP de la machine dont on vient
sudo tcpdump -i eth0 not host $IPHOST # Pour tout le trafic
# Ou eventuellement
sudo tcpdump -i eth0 not src host $IPHOST # Sauf ce qui vient de mon poste (je vois pas l'utilité)
sudo tcpdump -i eth0 not dst host $IPHOST # Sauf ce qui va vers mon poste... pas trop non plus
Interface avec d'autres outils
Wireshark
Wireshark est à la fois un super outil pour Windows (et aussi linux en mode graphique et peut être MAC) pour capturer et visualiser les trames réseau. Il est souvent utile de pouvoir enregistrer une trace sur un routeur en ssh, et de transférer cette trace sur son PC (MAC ?)
tcpdump -s 65535 -w traces.pcap host 192.168.8.227
Nous donne un beau fichier traces.pcap. On le rapatrie sur un PC
scp root@192.168.8.1:traces.pcap .
Et on l'ouvre avec WireShark