
En esta guía, demostraremos cómo instalar tcpdump en un sistema Linux y cómo usar tcpdump para capturar y analizar paquetes TCP/IP.
Cómo instalar Tcpdump
Tcpdump viene preinstalado en muchas distribuciones de Linux. Pero si tcpdump aún no está instalado en su sistema, puede instalar tcpdump en su sistema Linux. Para instalar tcpdump en el sistema Ubuntu 22.04, use el siguiente comando:
$ sudo apto instalar tcpdump
Para instalar tcpdump en Fedora/CentOS, use el siguiente comando:
PS sudo dnf instalar tcpdump
Cómo utilizar el comando Tcpdump para capturar paquetes
Para usar tcpdump para capturar paquetes, use «Ctrl+Alt+t» para iniciar la terminal con privilegios sudo. La herramienta incluye diferentes opciones y filtros para capturar paquetes TCP/IP. Si desea recuperar todos los paquetes de datos móviles para la interfaz de red actual o predeterminada, use el comando 'tcpdump' sin ninguna opción.
El comando dado capturará paquetes de la interfaz de red predeterminada del sistema.
Después de ejecutar este comando, el recuento de todos los paquetes capturados y filtrados se mostrará en el terminal.
Echemos un vistazo al resultado.
Tcpdump puede analizar encabezados de paquetes TCP/IP. Muestra una línea para cada paquete y el comando continuará ejecutándose hasta que presione «Ctrl+C» para detenerlo.
Cada línea proporcionada por tcpdump contiene los siguientes detalles:
- Marca de tiempo de Unix (por ejemplo, 02:28:57.839523)
- Protocolo (IP)
- Nombre de host de origen o IP y número de puerto
- Nombre de host de destino o IP y número de puerto
- Banderas TCP (por ejemplo, bandera [F.]) indica el estado de la conexión, con valores como S (SYN), F (FIN),. (ACK), P (EMPUJAR), R (RST)
- El número de serie de los datos en el paquete de datos (por ejemplo, secuencia 5829:6820)
- Número de confirmación (por ejemplo, ack 1016)
- El tamaño de la ventana (por ejemplo, win 65535) representa la cantidad de bytes disponibles en el búfer de recepción, seguido de las opciones de TCP.
- La longitud de la carga útil de datos (por ejemplo, longitud 991)
Para enumerar todas las interfaces de red del sistema, use el comando «tcpdump» con la opción «-D».
o
$ tcpdump –lista-interfaces
Este comando enumera todas las interfaces de red conectadas o ejecutándose en el sistema Linux.
Capturar paquetes desde una interfaz de red especificada
Si desea capturar paquetes TCP/IP que pasan a través de una interfaz específica, use el indicador «-i» en el comando «tcpdump» y especifique el nombre de la interfaz de red.
El comando dado captura el tráfico en la interfaz «lo». Si desea mostrar información detallada sobre el paquete, utilice el indicador «-v». Para imprimir detalles más completos, utilice el indicador «-vv» con el comando «tcpdump». El uso y análisis regulares ayudan a mantener un entorno de red sólido y seguro.
Asimismo, puedes capturar el tráfico para cualquier interfaz usando el siguiente comando:
Recuperar paquetes usando un puerto específico
Puede recuperar y filtrar paquetes especificando el nombre de la interfaz y el número de puerto. Por ejemplo, para capturar paquetes de red usando el puerto 22 a través de la interfaz «enp0s3», use el siguiente comando:
$ tcpdump -i enp0s3 puerto 22
El comando anterior recuperó todos los paquetes de datos móviles de la interfaz «enp0s3».
Utilice Tcpdump para capturar paquetes limitados
Puede utilizar el indicador «-c» con el comando «tcpdump» para capturar una cantidad específica de paquetes. Por ejemplo, para recuperar cuatro paquetes de datos en la interfaz «enp0s3», utilice el siguiente comando:
Reemplace el nombre de la interfaz con el de su sistema.
Comandos Tcpdump útiles para capturar el tráfico de red
A continuación, enumeramos algunos comandos “tcpdump” útiles que lo ayudarán a capturar y filtrar paquetes o tráfico de red de manera eficiente:
Usando el comando «tcpdump» puede capturar paquetes para una interfaz con una IP de destino o IP de origen definida.
$ tcpdump -i {nombre de interfaz} dst {IP de destino}
Puede capturar paquetes con un tamaño de instantánea de 65535 bytes, que es diferente del tamaño predeterminado de 262144 bytes. En versiones anteriores de tcpdump, el tamaño de captura estaba limitado a 68 o 96 bytes.
$ tcpdump -i enp0s3 -s 65535
Cómo guardar paquetes capturados en un archivo
Si desea guardar el material capturado en un archivo para su posterior análisis, puede hacerlo. Captura el tráfico de la interfaz especificada y luego lo almacena en un archivo «.pcap». Utilice el siguiente comando para guardar los datos capturados en un archivo:
$tcpdump-yo
Por ejemplo, tenemos la interfaz «enps03». Guarde los datos capturados en el siguiente archivo:
$ sudo tcpdump -i enps03 -w volcado.pcap
En el futuro, podrá utilizar Wireshark u otras herramientas de análisis de red para leer este archivo capturado. Por lo tanto, si desea utilizar Wireshark para analizar el paquete, utilice el parámetro «-w» y guárdelo en un archivo «.pcap».
en conclusión
En este tutorial, demostramos a través de diferentes ejemplos cómo usar tcpdump para capturar y analizar paquetes. También aprendimos cómo almacenar el tráfico capturado en un archivo «.pcap» que puede ver y analizar utilizando Wireshark y otras herramientas de análisis de red.