Tcpdump

De knowledge
Aller à la navigation Aller à la recherche

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

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

Wireshark-demo.png