Tcpdump sur plusieurs interfaces


17

J'ai besoin de capturer le trafic sur un serveur CentOS 5 qui agit comme un proxy Web avec 2 interfaces WAN et 1 LAN. Afin de résoudre un problème de proxy étrange, je voudrais avoir une capture d'une conversation complète. Étant donné que les connexions externes sont équilibrées entre les deux interfaces WAN, je me demande s'il est possible de capturer simultanément sur toutes les interfaces.

J'ai déjà utilisé tcpdump mais il n'admet qu'une seule interface à la fois. Je peux lancer 3 processus parallèles pour capturer sur toutes les interfaces mais je me retrouve avec 3 fichiers de capture différents.

Quelle est la bonne façon de procéder?


AdamRushad a raison. Vous pouvez wiresharkégalement utiliser .
Ryan Babchishin

Réponses:


25

Selon la page de manuel tcpdump:

Sur les systèmes Linux avec les noyaux 2.2 ou ultérieurs, un argument d'interface '' any '' peut être utilisé pour capturer les paquets de toutes les interfaces. Notez que les captures sur le périphérique `` tout '' ne seront pas effectuées en mode promiscuous.

Vous devriez donc pouvoir exécuter: tcpdump -i anyafin de capturer des données sur toutes les interfaces en même temps dans un seul fichier de capture.


2
cela ne fonctionne pas si je veux capturer certaines, mais pas toutes, des interfaces
Thayne

9

La façon dont j'aborderais cela est de vider sur chaque interface dans un fichier séparé, puis de les fusionner. L'interface any inclut également le trafic lo qui peut polluer la capture.

Cela permet également d'analyser les flux de paquets par interface sans filtrage complexe.

Je capturerais dans 3 terminaux ou en arrière-plan de la commande avec &

L'indicateur -nn désactive la résolution DNS pour la vitesse, -s 0 enregistre le paquet complet et -w écrit dans un fichier.

tcpdump -i wan0 -nn -s 0 -w wan0.dump
tcpdump -i wan1 -nn -s 0 -w wan1.dump
tcpdump -i lan0 -nn -s 0 -w lan0.dump

Je fusionnerais ensuite les fichiers avec la commande mergecap de Wireshark:

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump

2

Pour capturer un tcpdump sur toutes les interfaces, utilisez

tcpdump -i any

2
Cela a déjà été donné comme réponse il y a 2 ans dans la réponse d'Adam Rushad.
Patrick Mevzek
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.