Capturar el tráfico de red con tcpdump y Wireshark

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.

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]#

Con el comando anterior acabamos de capturar todos los datos de red que pasan por la interfaz eth0 y guardamos los datos en formato pcap (parámetro -w), el cual, es un tipo de archivo que puede leer Wireshark.

El aspecto que tendría en Wireshark sería este:

Captura de trafico de red con Wireshark

En wireshark también podemos crear filtros en función de los datos que nos interese visualizar.

Filtros de Wireshark

Algunos filtros útiles para tcpdump

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

Deja un comentario