Capturar el Tráfico de Red con Tcpdump y Wireshark

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

tcpdump es un software opensource disponible que tenemos en todos los sistemas Linux con el cuál podremos capturar todo el tráfico de red de nuestro servidor.

Wireshark es una herramienta gráfica que permite abrir el fichero que hemos generado con tcpdump para «unir» las conversaciones de los paquetes TCP y visualizar su contenido. Puedes descargar Wireshark desde este enlace.

Veamos el siguiente tutorial de Wireshark y tcpdump para saber cómo manejarlos conjuntamente para el análisis de los paquetes de nuestra red.

Es importante conocer que tcpdump puede generar ficheros muy grandes con unos pocos minutos de captura de datos, por lo que es recomendable utilizar siempre filtros. Por ejemplo, por una tarjeta de red en concreto, por una IP de origen y destino o por un puerto específico.

Instalación de tcpdump en Linux CentOS 7

Para los que me seguís, ya sabéis que soy un usuario habitual de Linux RedHat y Centos. Para instalar tcpdump en Centos, lo haremos con el siguiente comando:

yum install tcpdump

Ejemplo de uso de tcpdump

[root]# tcpdump -ni eth0 -s0 -w /tmp/capture_$(hostname)_$(date +%Y%m%d).pcap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C91447 packets captured
92175 packets received by filter
633 packets dropped by kernel
[root]#

IMPORTANTE: tcpdump lo debe lanzar el usuario root o con privilegios de root mediante sudo.

Si lo necesitamos, también podemos lanzar un tcpdump contra un puerto:

[[email protected] ~]# traceroute 192.168.47.162 -T -p 8080
traceroute to 192.168.47.162 (192.168.47.162), 30 hops max, 60 byte packets
1  10.48.0.2 (10.48.0.2)  0.701 ms  0.908 ms  1.020 ms
2  169.254.128.4 (169.254.128.4)  4.550 ms  4.533 ms  4.525 ms
3  172.17.8.2 (172.17.8.2)  5.641 ms  5.609 ms  5.579 ms
4  * * *
5  10.17.60.1 (10.17.60.1)  5.280 ms  5.258 ms  5.295 ms
6  10.8.17.169 (10.8.17.169)  5.372 ms  3.366 ms  3.270 ms
7  10.8.17.233 (10.8.17.233)  3.756 ms  1.756 ms  2.105 ms
8  10.1.128.14 (10.1.128.14)  1.988 ms  1.970 ms  2.261 ms
9  10.1.128.14 (10.1.128.14)  4.473 ms  2.394 ms  2.634 ms
10  10.8.4.174 (10.8.4.174)  2.832 ms  2.408 ms  3.072 ms
11  * * *
12  192.168.47.162 (192.168.47.162)  1.738 ms  1.782 ms  1.479 ms

Filtros útiles para tcpdump que nos ayudarán a focalizar el tráfico de red que nos interesa

Filtrando por interfaz de red

En esta caso, por la interfaz eth0:

tcpdump -ni eth0 -v

Si añadimos el parámetro «-v» nos dará más información.

Filtrando por puerto

tcpdump -ni eth0 -s0 -v port 80 -w /tmp/capture_$(hostname)_$(date +%Y%m%d).pcap

Filtrando por protocolo

tcpdump -ni eth0 -s0 udp -w /tmp/capture_$(hostname)_$(date +%Y%m%d).pcap

Filtrando por IP origen

tcpdump -ni eth0 -s0 host 10.10.1.1 -w /tmp/capture_$(hostname)_$(date +%Y%m%d).pcap

Filtrando por IP de destino

tcpdump -ni eth0 -s0 dst 10.10.1.1 -w /tmp/capture_$(hostname)_$(date +%Y%m%d).pcap

Excluir un protocolo de red

Si queremos capturar todo el tráfico menos el de ICMP (ping), utilizaremos el siguiente comando:

tcpdump -ni eth0 not icmp

Incluir sólo un protocolo de comunicaciones

Si sólo queremos capturar, por ejemplo, todo el tráfico del protocolo UDP, utilizaremos el siguiente comando:

tcpdump -ni eth0 udp

Analizar la captura de paquetes de red con Wireshark

Vídeo demostrativo del funcionamiento de Wireshark

Con tcpdump hemos capturado el tráfico de red que deseamos analizar y hemos generado un fichero pcap que podemos abrir con Wireshark. Por ejemplo, antes veíamos el comando:

tcpdump -ni eth0 -s0 -w /tmp/capture_$(hostname)_$(date +%Y%m%d).pcap

El aspecto que tendría este fichero en Wireshark sería el siguiente:

Captura de trafico de red con Wireshark

Como podemos observar, tenemos todo el diálogo de conversaciones de red, algo muy útil para averiguar, por ejemplo, por qué no llegamos a un puerto de destino (puede que esté abierto el tráfico sólo en un sentido, o que lo corte un firewall, o que falte alguna ruta…).

  • Primera columna: Muestra el orden en que van llegando los paquetes.
  • Segunda columna: Muestra el tiempo transcurrido que ha tardado en llegar el siguiente paquete, en segundos. Ideal para detectar problemas de lentitud.
  • Tercera columna: IP origen que envía el paquete de red.
  • Cuarta columna: IP destino a donde se envía el paquete de red.
  • Quinta columna: Indica el protocolo de red utilizado.
  • Sexta columna: Nos muestra el tamaño del paquete enviado.
  • Séptima columna: Nos da información sobre la operativa que se está enviando y/o su resultado.

En wireshark también podemos crear filtros en función de los datos que nos interese visualizar, con el objetivo de minimizar la cantidad de datos que aparecen en el fichero pcap y que sea más fácil su análisis.

Filtros de Wireshark

¿Para qué se usan tcpdump y Wireshark?

Por mi experiencia profesional cmo como administrador de Linux, tcpdump y wireshark los utilizamos cuando tenemos problemas de red y no queda claro el motivo.

Es típico tener bien configuradas las rutas de un servidor de Linux y las reglas de firewall abiertas para llegar a una IP y puerto destino pero, por alguna razón desconocida, no llegamos.

Con tcpdump y wireshark descubrimos en qué punto de la red no está pasando el tráfico, lo que facilita mucho el análisis por parte de los técnicos de telecoumunicaciones.

Un gran porcentaje de las veces, el problema se debe a que falta configurar una ruta en la configuración de un router.

Espero que con este tutorial de la combinación de Wireshark y tcpdump te haya podido ayudar a resolver tus problemas de red y hacerla más segura.

Te puede interesar

Configuración de la red en Linux

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author