¿Está intentando capturar paquetes de datos para analizar el tráfico en su red? Tal vez sea un administrador de servidor que se ha encontrado con un problema y desea monitorear los datos transmitidos en la red. Cualquiera que sea la situación, la utilidad tcpdump Linux es lo que necesita.

En este artículo, analizaremos el comando tcpdump en detalle, junto con algunas guías sobre cómo instalar y usar tcpdump en su sistema Linux.

¿Qué es el comando tcpdump?

Tcpdump es una poderosa herramienta de monitoreo de red que permite al usuario filtrar paquetes y tráfico en una red de manera eficiente. Puede obtener información detallada relacionada con TCP / IP y los paquetes transmitidos en su red. Tcpdump es una utilidad de línea de comandos, lo que significa que puede ejecutarla en servidores Linux sin pantalla.

Los administradores del sistema también pueden integrar la utilidad tcpdump con cron para automatizar varias tareas como el registro. Dado que sus numerosas características lo hacen bastante versátil, tcpdump funciona como una herramienta de resolución de problemas y de seguridad.

instagram viewer

Cómo instalar tcpdump en Linux

Si bien la mayoría de las veces encontrará tcpdump preinstalado en su sistema, algunas distribuciones de Linux no se envían con el paquete. Por lo tanto, es posible que deba instalar manualmente la utilidad en su sistema.

Puede comprobar si tcpdump está instalado en su sistema utilizando el cual mando.

cual tcpdump

Si la salida muestra una ruta de directorio (/usr/bin/tcpdump), entonces su sistema tiene el paquete instalado. Sin embargo, si no es así, puede hacerlo fácilmente utilizando el administrador de paquetes predeterminado en su sistema.

Para instalar tcpdump en distribuciones basadas en Debian como Ubuntu:

sudo apt-get install tcpdump

La instalación de tcpdump en CentOS también es fácil.

sudo yum instalar tcpdump

En distribuciones basadas en Arch:

sudo pacman -S tcpdump

Para instalar en Fedora:

sudo dnf instalar tcpdump

Tenga en cuenta que el paquete tcpdump requiere libcap como una dependencia, así que asegúrese de instalarlo también en su sistema.

Ejemplos de Tcpdump para capturar paquetes de red en Linux

Ahora que ha instalado correctamente tcpdump en su máquina Linux, es hora de monitorear algunos paquetes. Dado que tcpdump requiere permisos de superusuario para ejecutar la mayoría de las operaciones, tendrá que agregar sudo a tus mandamientos.

1. Lista de todas las interfaces de red

Para comprobar qué interfaces de red están disponibles para capturar, utilice el -D bandera con el comando tcpdump.

tcpdump -D

Pasando el --list-interfaces flag como argumento devolverá la misma salida.

tcpdump --list-interfaces

El resultado será una lista de todas las interfaces de red que están presentes en su sistema.

Después de obtener la lista de interfaces de red, es hora de monitorear su red capturando paquetes en su sistema. Aunque puede especificar qué interfaz desea utilizar, la alguna El argumento comando tcpdump para capturar paquetes de red usando cualquier interfaz activa.

tcpdump: interfaz cualquiera

El sistema mostrará la siguiente salida.

Relacionados: ¿Qué es el modelo de interconexión de sistemas abiertos?

2. El formato de salida tcpdump

A partir de la tercera línea, cada línea de la salida denota un paquete específico capturado por tcpdump. Así es como se ve la salida de un solo paquete.

17: 00: 25.369138 wlp0s20f3 Out IP localsystem.40310> kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196: 568, ack 1, win 309, options [nop, nop, TS val 117964079 ecr 816509256], longitud 33

Tenga en cuenta que no todos los paquetes se capturan de esta manera, pero este es el formato general seguido por la mayoría de ellos.

La salida contiene la siguiente información.

  1. Marca de tiempo del paquete recibido
  2. Nombre de la interfaz
  3. Flujo de paquetes
  4. Nombre del protocolo de red
  5. Dirección IP y detalles del puerto
  6. Banderas de TCP
  7. El número de secuencia de datos en el paquete.
  8. Ack datos
  9. Tamaño de ventana
  10. Longitud del paquete

El primer campo (17:00:25.369138) muestra la marca de tiempo cuando su sistema envió o recibió el paquete. La hora registrada se extrae de la hora local de su sistema.

Los campos segundo y tercero indican la interfaz utilizada y el flujo del paquete. En el fragmento de arriba, wlp0s20f3 es el nombre de la interfaz inalámbrica y Fuera es el flujo de paquetes.

El cuarto campo incluye información relacionada con el nombre del protocolo de red. Generalmente, encontrará dos protocolos: IP y IP6, donde IP denota IPV4 e IP6 es para IPV6.

El siguiente campo contiene las direcciones IP o el nombre del sistema de origen y destino. Las direcciones IP van seguidas del número de puerto.

El sexto campo de la salida consta de indicadores TCP. Hay varios indicadores que se utilizan en la salida de tcpdump.

Nombre de la bandera Valor Descripción
SYN S Conexión iniciada
ALETA F Conexión finalizada
EMPUJAR PAG Se empujan los datos
RST R La conexión se restablece
ACK . Reconocimiento

La salida también puede contener una combinación de varios indicadores TCP. Por ejemplo, BANDERA [f.] significa un paquete FIN-ACK.

Avanzando en el fragmento de salida, el siguiente campo contiene el número de secuencia (seq 196: 568) de los datos en el paquete. El primer paquete siempre tiene un valor entero positivo y los paquetes siguientes utilizan el número de secuencia relativo para mejorar el flujo de datos.

El siguiente campo contiene el número de reconocimiento (ack 1), o un simple número de Ack. El paquete capturado en la máquina del remitente tiene 1 como número de reconocimiento. En el extremo del receptor, el número de Ack es el valor del siguiente paquete.

El noveno campo de la salida se adapta al tamaño de la ventana (ganar 309), que es el número de bytes disponibles en el búfer de recepción. Hay varios otros campos que siguen el tamaño de la ventana, incluido el Tamaño máximo de segmento (MSS).

El último campo (longitud 33) contiene la longitud del paquete total capturado por tcpdump.

3. Limitar el recuento de paquetes capturados

Mientras ejecuta el comando tcpdump por primera vez, puede notar que el sistema continúa capturando paquetes de red hasta que pasa una señal de interrupción. Puede anular este comportamiento predeterminado especificando el recuento de paquetes que desea capturar de antemano utilizando el -C bandera.

tcpdump --interfaz cualquiera -c 10

El comando antes mencionado capturará diez paquetes de cualquier interfaz de red activa.

4. Filtrar paquetes basados ​​en campos

Cuando está solucionando un problema, obtener un gran bloque de salida de texto en su terminal no lo hace más fácil. Ahí es donde entra en juego la función de filtrado en tcpdump. Puede filtrar los paquetes de acuerdo con varios campos, incluido el host, el protocolo, el número de puerto y más.

Para capturar solo paquetes TCP, escriba:

tcpdump --interfaz cualquiera -c 5 tcp

Del mismo modo, si desea filtrar la salida utilizando el número de puerto:

tcpdump --interface cualquier -c 5 puerto 50

El comando mencionado anteriormente solo recuperará los paquetes transmitidos a través del puerto especificado.

Para obtener los detalles del paquete para un host en particular:

tcpdump --interface any -c 5 host 112.123.13.145

Si desea filtrar los paquetes enviados o recibidos por un host específico, use el src o dst argumento con el comando.

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

También puede utilizar los operadores lógicos y y o para combinar dos o más expresiones juntas. Por ejemplo, para obtener paquetes que pertenecen a la IP de origen 112.123.13.145 y usa el puerto 80:

tcpdump --interface any -c 10 src 112.123.13.145 y puerto 80

Las expresiones complejas se pueden agrupar usando paréntesis como sigue:

tcpdump --interface any -c 10 "(src 112.123.13.145 o src 234.231.23.234) y (puerto 45 o puerto 80)"

5. Ver el contenido del paquete

Puedes usar el -A y -X banderas con el comando tcpdump para analizar el contenido del paquete de red. La -A representa la bandera ASCII formato y -X denota hexadecimal formato.

Para ver el contenido del siguiente paquete de red capturado por el sistema:

tcpdump --interface any -c 1 -A
tcpdump --interfaz cualquiera -c 1 -x

Relacionados: ¿Qué es la pérdida de paquetes y cómo solucionar su causa?

6. Guardar datos de captura en un archivo

Si desea guardar los datos de captura con fines de referencia, tcpdump está ahí para ayudarlo. Solo pasa el -w bandera con el comando predeterminado para escribir la salida en un archivo en lugar de mostrarlo en la pantalla.

tcpdump --interface any -c 10 -w data.pcap

La .pcap extensión de archivo significa captura de paquetes datos. También puede emitir el comando mencionado anteriormente en modo detallado utilizando el -v bandera.

tcpdump --interface any -c 10 -w data.pcap -v

Para leer un .pcap archivo usando tcpdump, use el -r bandera seguida de la ruta del archivo. La -r representa Leer.

tcpdump -r data.pcap

También puede filtrar paquetes de red a partir de los datos del paquete guardados en el archivo.

tcpdump -r data.pcap puerto 80

Supervisión del tráfico de red en Linux

Si se le ha asignado la tarea de administrar un servidor Linux, entonces el comando tcpdump es una gran herramienta para incluir en su arsenal. Puede solucionar fácilmente los problemas relacionados con la red capturando los paquetes transmitidos en su red en tiempo real.

Pero antes de todo eso, su dispositivo debe estar conectado a Internet. Para los principiantes de Linux, incluso conectarse con Wi-Fi a través de la línea de comandos puede ser un poco desafiante. Pero si está utilizando las herramientas adecuadas, es muy sencillo.

Correo electrónico
Cómo conectarse a Wi-Fi a través de la terminal de Linux con Nmcli

¿Quiere conectarse a una red Wi-Fi a través de la línea de comandos de Linux? Esto es lo que necesita saber sobre el comando nmcli.

Leer siguiente

Temas relacionados
  • Linux
  • Seguridad
  • Análisis forense de redes
Sobre el Autor
Sharma profundo (37 Artículos publicados)

Deepesh es el editor junior para Linux en MUO. Ha estado escribiendo contenido informativo en Internet durante más de 3 años. En su tiempo libre le gusta escribir, escuchar música y tocar la guitarra.

Más de Deepesh Sharma

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.