Cómo usar el comando tcpdump en linux

Cómo usar el comando tcpdump en linux

El tcpdump El comando se puede usar para capturar el tráfico de red en un sistema Linux. Es una utilidad de línea de comandos versátil en la que los administradores de la red a menudo confían para solucionar problemas.

Lo que llegará a encontrar es que la cantidad de tráfico de redes capturados en una interfaz puede ser fácilmente abrumador. tcmpdump Hace que nuestro trabajo sea un poco más fácil al permitirnos aislar solo el tráfico que nos interesa. Por supuesto, para hacer esto, debe estar familiarizado con las diversas banderas y configuraciones que acompañan el comando.

En esta guía, verá cómo usar tcpdump a través de ejemplos y explicaciones. Siga en su propio sistema si desea aprender a capturar el tráfico de red y dominar el tcpdump dominio.

En este tutorial aprenderás:

  • Cómo instalar TCPDUMP en las distribuciones principales de Linux
  • Ejemplos de comando tcpdump
  • Cómo filtrar el tráfico TCPDUMP por puerto, protocolo, fuente y destino
  • Cómo escribir capturas tcpdump para archivar
  • Cómo interpretar la salida del comando tcpdump
Uso del comando tcpdump para capturar el tráfico de red en Linux Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier distribución de Linux
Software tcpdump
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Instale TCPDUMP en las distribuciones de Major Linux

Hay una buena posibilidad de que su distribución de Linux ya tenga tcpdump Instalado de forma predeterminada, especialmente si está ejecutando una distribución dirigida a servidores. En caso de que aún no esté instalado, puede usar el comando apropiado a continuación para instalarlo a través del Administrador de paquetes de su sistema.

Para instalar TCPDump en Ubuntu, Debian y Linux Mint:

$ sudo apt install tcpdump 

Para instalar tcpdump en Centos, Fedora, Almalinux y Red Hat:

$ sudo dnf install tcpdump 

Para instalar TCPDump en Arch Linux y Manjaro:

$ sudo Pacman -S tcpdump 

Ejemplos de comando tcpdump

NOTA
Toda su tcpdump Los comandos deben ejecutarse con la cuenta de usuario root o con sudo. La utilidad requiere privilegios de administrador para ejecutar.

La forma más simple del comando es usar la utilidad sin opciones adicionales, como esta:

# tcpdump 

Si no especifica de qué interfaz de red le gustaría capturar el tráfico, como en el comando anterior, entonces, entonces tcpdump elegirá una interfaz para usted.

Continuará "arrojar" el tráfico capturado a su terminal hasta que interrumpe el comando. La forma más fácil de hacer esto es con Ctrl + C.

Si tiene más de una interfaz de red, será mejor especificar en qué interfaz está intentando capturar el tráfico, ya que tcpdump puede no elegir el que desee de forma predeterminada. Utilizar el -D opción para imprimir una lista de interfaces de red que tcpdump puedo usar.

# tcpdump -d 1.ENP0S3 [UP, Running] 2.Lo [Up, Running, Loopback] 3.Cualquier (pseudo-dispositivo que capture en todas las interfaces) [arriba, en ejecución] 4.Bluetooth-Monitor (Bluetooth Linux Monitor) [Ninguno] 5.Interfaz NFLOG (Linux NetFilter Log (NFLOG) [Ninguno] 6.Interfaz NFQueue (Linux NetFilter Queue (NFQueue) [Ninguno] 

Tenemos algunas interfaces diferentes que podemos usar. Alternativamente, tenemos el cualquier Opción disponible que nos permitirá capturar el tráfico en todas las interfaces de red simultáneamente. Si queremos capturar el tráfico de red en el ENP0S3 interfaz, usaríamos la siguiente sintaxis del comando.

# TCPDUMP -I ENP0S3 

Puedes usar el -V opción para aumentar la verbosidad de la salida, o -VV y -VVV para aumentarlo aún más.

# TCPDUMP -I ENP0S3 -VV 

Si no quieres tcpdump Para emitir datos sin cesar a su terminal, puede usar el -C opción para especificar cuántos paquetes desea que la utilidad capture. tcpdump dejará de ejecutar el comando después de que se haya alcanzado el umbral, en lugar de esperar a que interrumpe. El siguiente comando nos permitirá capturar solo los primeros 15 paquetes.

# tcpdump -c 15 

Si no quieres tcpdump Para realizar la resolución DNS en las direcciones de red en la salida, puede usar el -norte Opción en su comando. Esto mostrará todas las direcciones de red como direcciones IP, en lugar de resolverlas a nombres de dominio.

# tcpdump -n 

Si prefiere guardar la salida del tráfico de red en el archivo, en lugar de tenerlo en la lista en su pantalla, siempre puede redirigir el tcpdump salida con lo habitual > y >> operadores.

# tcpdump> tráfico.TXT 

Otra opción es escribir la captura de red en el archivo. Estos archivos suelen tener el .PCAP Extensión del archivo, y no puede ser leído por un editor de texto ordinario.

# tcpdump -n -w tráfico.PCAP 

Para abrir el archivo para un análisis posterior, use el -riñonal opción y el nombre de su archivo.

# tcpdump -r tráfico.PCAP 

Interpretar la salida del comando tcpdump

Cada paquete que tcpdump capturas se escribe como una línea individual. Una de esas líneas se verá así:

14:21:46.134249 IP 10.0.2.15.54000> 104.dieciséis.168.35.443: Flags [.], ACK 2915, ganar 63000, longitud 0 

Aquí le mostramos cómo interpretar esa línea de datos:

  • 14:21:46.134249 - Marca de tiempo de cuándo fue capturado el paquete.
  • IP 10.0.2.15.54000 - Número de IP y puerto del host de origen.
  • 104.dieciséis.168.35.443 - Número de IP y puerto del host de destino.
  • Banderas [.] - Banderas TCP (SYN, ACK, PSH, etc.). [.] significa ACK.
  • ACK 2915 - El número de reconocimiento.
  • ganar 63000 - El número de ventana (bytes en el búfer de recepción).
  • longitud 0 - La duración de los datos de carga útil.

Filtrar tráfico tcpdump

Una de las mejores características de tcpdump es que podemos filtrar exactamente el tráfico que queremos ver. Sin filtrar el tráfico por adaptador (como se ve arriba), el número de puerto y el protocolo de paquetes, la cantidad de tráfico capturado puede volverse abrumadora y casi imposible de examinar.

A pesar del nombre tcpdump, Podemos usar la herramienta para filtrar todo tipo de tráfico, no solo TCP. Por ejemplo, use la siguiente sintaxis para filtrar el tráfico que usa UDP.

# tcpdump -n udp 

O el siguiente ejemplo que filtra ICMP:

# tcpdump -n icmp 

También puede usar el número de protocolo correspondiente para filtrar un protocolo específico. Por ejemplo, ICMP es el protocolo número 1, por lo que la siguiente sintaxis hará lo mismo que el ejemplo anterior.

# tcpdump -n proto 1 

Para ver una lista completa de protocolos de red y sus números correspondientes, consulte la lista de números de protocolo IP en Wikipedia.

Para filtrar el tráfico con un destino específico o una dirección IP de origen, podemos usar el anfitrión calificador con el -norte opción. Por ejemplo, para filtrar el tráfico relacionado con el host en la dirección IP 10.10.150.20:

# tcpdump -n host 10.10.150.20 

Alternativamente, use el neto Calificador Si desea filtrar el tráfico hacia o desde una red completa. Por ejemplo, el siguiente comando filtrará el tráfico relacionado con el 192.168.1.24/04 red.

# tcpdump -n net 192.168.1 

Utilizar el puerto y rango de puertos Calificadores para filtrar paquetes relacionados con un puerto específico o rango de puertos, respectivamente. Por ejemplo, el siguiente comando filtrará nuestro tráfico relacionado con el puerto 80 (http).

# tcpdump -n puerto 80 

O, para filtrar el tráfico desde los puertos 20-30, se utilizaría el siguiente comando.

# tcpdump -n retrange 20-30 

Añade el DST, SRC, SRC y DST, y SRC o DST Calificadores Si desea filtrar en función de la dirección de origen y/o destino o puerto de los paquetes. Por ejemplo, el siguiente comando filtrará paquetes que tienen una dirección IP de origen de 10.10.150.20.

# tcpdump -n src host 10.10.150.20 

O en este ejemplo, filtramos paquetes destinados al puerto SSH (puerto 22).

# tcpdump -n dst puerto 22 

Filtros de combinación

Podemos combinar estos diversos filtros cubiertos arriba utilizando el y (&&), o (||), y no (!) operadores en nuestro tcpdump dominio.

Por ejemplo, el siguiente comando capturará el tráfico destinado para 10.10.150.20 en el puerto 80 (http).

# tcpdump -n dst host 10.10.150.20 y TCP Port 80 

O crear aún más filtros granulares mediante la combinación de reglas dentro de los paréntesis. Por ejemplo, este comando hará lo mismo que el anterior, pero también capturará el puerto 443 (https).

# tcpdump -n 'dst host 10.10.150.20 y (puerto TCP 80 o puerto TCP 443) ' 

Pensamientos de cierre

En esta guía, vimos cómo usar el tcpdump Utilidad de línea de comando para capturar el tráfico de red en un sistema Linux. Como hemos visto en este tutorial, el comando puede ser bastante complejo y aceptar una entrada muy granular, lo que nos permite filtrar el tráfico exacto que queremos ver.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Comandos de Linux: los 20 comandos más importantes que necesitas ..
  • Comandos básicos de Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Instale Arch Linux en VMware Workstation
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Cosas para instalar en Ubuntu 22.04
  • Cómo tomar una captura de pantalla en Kali Linux
  • Cómo tomar una captura de pantalla en Manjaro