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.

Whireshark 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.

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

Valoración
Summary
Capturar el tráfico de red con tcpdump y Wireshark
Article Name
Capturar el tráfico de red con tcpdump y Wireshark
Description
1 Instalación de tcpdump en Linux CentOS 7 2 Ejemplo de uso de tcpdump 3 Algunos filtros útiles para tcpdump 3.1 Filtrando por interfaz de red 3.2 Filtrando por puerto 3.3 Filtrando por protocolo 3.4 Filtrando por IP origen 3.5 Filtrando por IP de destino 3.6 Excluir un protocolo de red 3.7 Incluir sólo un protocolo de comunicaciones

Deja un comentario