Inicio > Gestión de red > tcpdump

tcpdump: Volcado y análisis de tráfico de red

tcpdump es una potente herramienta de línea de comandos para capturar y analizar paquetes TCP/IP y otros que se transmiten a través de una interfaz de red. Puede filtrar solo los paquetes que cumplen ciertas condiciones para mostrarlos en tiempo real o guardarlos en un archivo para su posterior análisis. Se utiliza para una variedad de propósitos, como el diagnóstico de problemas de red, auditorías de seguridad y depuración de aplicaciones.

Descripción general

tcpdump monitorea las interfaces de red para capturar e interpretar encabezados de paquetes. Puede usar varias expresiones de filtrado para seleccionar selectivamente el tráfico deseado y mostrar los datos capturados en la salida estándar o guardarlos en un archivo .pcap.

Funciones principales

  • Monitoreo en tiempo real de interfaces de red
  • Captura de paquetes de varios protocolos (TCP, UDP, ICMP, etc.)
  • Soporte para potentes expresiones de filtrado
  • Guardar y cargar datos capturados en archivos
  • Diagnóstico de problemas de red y análisis de seguridad

Opciones principales

tcpdump ofrece una amplia gama de opciones para controlar finamente el comportamiento de captura, el filtrado y el formato de salida.

Control de captura

Formato de salida

Expresiones de filtrado

Comando generado:

Combina los comandos.

Descripción:

`tcpdump` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Ejemplos que muestran varios usos de tcpdump. En la mayoría de los casos, se requieren privilegios de root.

Capturar paquetes de todas las interfaces (predeterminado)

sudo tcpdump

Captura paquetes de todas las interfaces activas y los muestra en tiempo real. Detener con `Ctrl+C`.

Capturar desde una interfaz específica

sudo tcpdump -i eth0

Captura todo el tráfico que ocurre en la interfaz eth0.

Capturar tráfico de un host específico

sudo tcpdump host 192.168.1.100

Captura todo el tráfico relacionado con la dirección IP 192.168.1.100.

Capturar tráfico TCP de un puerto específico

sudo tcpdump tcp port 80

Captura solo paquetes TCP del puerto 80, que es el tráfico del servidor web (HTTP).

Filtrado combinado de IP de origen y puerto de destino

sudo tcpdump src host 192.168.1.50 and dst port 22

Captura tráfico donde la IP de origen es 192.168.1.50 y el puerto de destino es 22 (SSH).

Guardar paquetes capturados en un archivo

sudo tcpdump -i eth0 -c 100 -w capture.pcap

Guarda los paquetes capturados en la interfaz eth0 en el archivo `capture.pcap`. Se guardan solo 100 paquetes con `-c 100`.

Leer paquetes desde un archivo guardado

tcpdump -r capture.pcap

Lee y muestra el contenido del archivo `capture.pcap` guardado previamente.

Mostrar solo direcciones IP y números de puerto (sin conversión de nombres)

sudo tcpdump -nn

Verifica rápidamente mostrando solo direcciones IP y números de puerto en formato numérico, sin convertir nombres de host ni nombres de servicio.

Instalación

tcpdump a menudo no se proporciona por defecto en la mayoría de las distribuciones de Linux, o puede no incluirse en una instalación mínima. Puede instalarlo usando los siguientes comandos.

Debian/Ubuntu

sudo apt update
sudo apt install tcpdump

Instala tcpdump usando el administrador de paquetes APT.

CentOS/RHEL/Fedora

sudo yum install tcpdump  # o dnf install tcpdump

Instala tcpdump usando el administrador de paquetes YUM o DNF.

Consejos y precauciones

Consejos y precauciones para usar tcpdump de manera efectiva.

Problemas de permisos

Para capturar interfaces de red, generalmente se requieren privilegios de root. Por lo tanto, la mayoría de los comandos de tcpdump deben ejecutarse con `sudo`.

  • Ejecutar siempre con `sudo tcpdump ...`
  • Es posible ejecutar sin `sudo` otorgando el permiso `CAP_NET_RAW` a un usuario específico, pero se debe tener precaución por seguridad.

Importancia del filtrado

En entornos con mucho tráfico, ejecutar tcpdump sin filtrar puede generar una gran cantidad de datos, lo que dificulta el análisis y afecta el rendimiento del sistema. Utilice activamente expresiones de filtrado para capturar solo el tráfico necesario.

  • Descarta el tráfico innecesario y captura solo el tráfico requerido
  • El filtrado debe aplicarse antes de iniciar la captura para ser eficiente

Guardar y analizar archivos

Si el análisis en tiempo real es difícil o necesita un análisis detallado más tarde, se recomienda guardar los paquetes en un archivo `.pcap` usando la opción `-w`. Los archivos guardados se pueden analizar de manera más conveniente con herramientas GUI como Wireshark.

  • Guarda grandes cantidades de tráfico con `-w` para su posterior análisis
  • Wireshark es una herramienta optimizada para el análisis de archivos `.pcap`

Consideraciones de rendimiento

tcpdump puede consumir muchos recursos del sistema. Especialmente en entornos de alto ancho de banda, capturar paquetes completos o usar filtros complejos puede sobrecargar la CPU y la E/S del disco.

  • Ahorra recursos limitando la longitud del paquete a capturar con la opción `-s`
  • Limita el número de paquetes a capturar con la opción `-c`

Comandos de la misma categoría