Introducción
tcpdump es una herramienta de línea de comandos poderosa y versátil que permite capturar y analizar el tráfico de red en tiempo real en sistemas Linux. Su capacidad para aplicar filtros detallados lo convierte en un aliado indispensable para administradores de sistemas, ingenieros de redes y profesionales de seguridad que necesitan diagnosticar problemas, monitorizar actividad o investigar incidentes.
¿Qué es tcpdump?
Desarrollado originalmente en el año 1988, tcpdump forma parte de la suite de herramientas de captura de paquetes libpcap. Operando a nivel de enlace de datos, puede interceptar paquetes antes de que lleguen a la capa de red del sistema operativo, ofreciendo una visión cruda y sin procesar de lo que ocurre en la interfaz de red.
Instalación
En la mayoría de las distribuciones modernas, tcpdump viene preinstalado. Si no está disponible, se puede instalar fácilmente mediante el gestor de paquetes:
- Debian/Ubuntu:
sudo apt-get update && sudo apt-get install tcpdump - Red Hat/CentOS:
sudo yum install tcpdump - Fedora:
sudo dnf install tcpdump - Arch Linux:
sudo pacman -S tcpdump
Sintaxis básica
El formato general del comando es:
tcpdump [opciones] [expresión de filtro]
Algunas opciones más usadas son:
-i interfaz: especifica la interfaz de red (ej. eth0, wlan0).-c número: limita la captura a un número determinado de paquetes.-w archivo: escribe los paquetes capturados en un archivo en formato pcap.-r archivo: lee un archivo pcap previamente guardado.-n: evita la resolución de nombres de host y muestra direcciones IP numéricas.-vv,-vvv: aumenta el nivel de detalle (verbosity).
Ejemplos comunes
A continuación se presentan algunos ejemplos prácticos que ilustran el uso típico de tcpdump:
- Capturar todo el tráfico en una interfaz:
sudo tcpdump -i eth0 - Limitar a 100 paquetes y mostrar en formato legible:
sudo tcpdump -i eth0 -c 100 -n - Filtrar solo tráfico HTTP (puerto 80):
sudo tcpdump -i eth0 port 80 - Mostrar paquetes SSH (puerto 22) con resolución de nombres desactivada:
sudo tcpdump -i eth0 port 22 -n - Guardar una captura para análisis posterior:
sudo tcpdump -i eth0 -w captura.pcap
Filtros avanzados
La expresión de filtro sigue la sintaxis de Berkeley Packet Filter (BPF). Algunos ejemplos de filtros más complejos:
tcpdump -i eth0 src host 192.168.1.10: muestra paquetes cuyo origen es la IP 192.168.1.10.tcpdump -i eth0 dst port 443 and tcp[tcpflags] & tcp-syn != 0: captura paquetes SYN hacia el puerto 443 (inicios de conexión TLS).tcpdump -i eth0 net 10.0.0.0/8: filtra todo el tráfico dentro de la red privada 10.0.0.0/8.tcpdump -i eth0 icmp: muestra únicamente paquetes ICMP (ping, traceroute).
Guardar y leer capturas
Los archivos pcap generados por tcpdump pueden ser analizados posteriormente con la misma herramienta o con utilities como Wireshark, tshark o tcpdump mismo:
- Leer un archivo:
tcpdump -r captura.pcap - Aplicar filtros al leer:
tcpdump -r captura.pcap port 80 - Contar paquetes:
tcpdump -r captura.pcap -c 10
Para combinar captura y filtrado en tiempo real, se puede usar:
sudo tcpdump -i eth0 -w - | tcpdump -r - port 22
Buenas prácticas
- Ejecutar tcpdump con privilegios de root (o mediante sudo) porque necesita acceso a la interfaz de red en modo promiscuo.
- Limitar la captura con
-co con un filtro estricto para evitar llenar el disco o sobrecargar el sistema. - Utilizar
-npara acelerar la salida cuando no se necesita resolución de nombres. - Guardar las capturas en un directorio con suficiente espacio y rotar los archivos regularmente.
- Combinar tcpdump con herramientas de análisis como Wireshark para una inspección visual más profunda.
Conclusión
tcpdump sigue siendo una de las herramientas más esenciales para cualquier profesional que trabaje con redes en Linux. Su flexibilidad, potencia de filtrado y capacidad para generar archivos pcap lo hacen ideal tanto para diagnóstico rápido como para análisis forense detallado. Dominar su sintaxis y sus opciones permite obtener una visión clara y en tiempo real de lo que ocurre en la red, facilitando la detección de problemas, la optimización del rendimiento y la mejora de la seguridad.


