Tcpdump en múltiples interfaces

17

Necesito capturar el tráfico en un servidor CentOS 5 que actúa como un proxy web con 2 interfaces wan y 1 LAN. Para solucionar un extraño problema de proxy, me gustaría capturar una conversación completa. Dado que las conexiones externas están equilibradas entre las dos interfaces WAN, me pregunto si es posible capturar simultáneamente en todas las interfaces.

He usado tcpdump anteriormente pero solo admite una interfaz a la vez. Puedo iniciar 3 procesos paralelos para capturar en todas las interfaces, pero luego termino con 3 archivos de captura diferentes.

¿Cuál es la forma correcta de hacer esto?

Nahidul islam
fuente
AdamRushad es correcto. Puedes usar wiresharktambién.
Ryan Babchishin el

Respuestas:

25

De acuerdo con la página de manual de tcpdump:

En sistemas Linux con núcleos 2.2 o posteriores, se puede utilizar un argumento de interfaz de "cualquiera" para capturar paquetes de todas las interfaces. Tenga en cuenta que las capturas en el dispositivo '' any '' no se realizarán en modo promiscuo.

Por lo tanto, debería poder ejecutar: tcpdump -i anypara capturar datos en todas las interfaces al mismo tiempo en un solo archivo de captura.

Adam Rushad
fuente
2
eso no funciona si quiero capturar algunas, pero no todas, las interfaces
Thayne
9

La forma en que abordaría esto es volcar cada interfaz en un archivo separado y luego fusionarlas. La interfaz any también incluye lo tráfico que puede contaminar la captura.

Esto también permite el análisis de las secuencias de paquetes por interfaz sin filtros complejos.

Capturaría en 3 terminales o en segundo plano el comando con &

Las banderas -nn desactivan la resolución dns para la velocidad, -s 0 guarda el paquete completo y -w escribe en un archivo.

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

Luego fusionaría los archivos con el comando mergecap de wireshark:

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump
Tim Fletcher
fuente
2

Para capturar un tcpdump en todas las interfaces, use

tcpdump -i any
Vijay SB
fuente
2
Esto ya se dio como respuesta hace 2 años en la respuesta de Adam Rushad.
Patrick Mevzek