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`