Con el comando de Linux tcpdump, puedes analizar los paquetes que se envían dentro de tu red. Para optimizar el análisis, puedes recurrir a una serie de opciones y filtros.

¿Para qué sirve el comando tcpdump de Linux?

tcpdump es una he­rra­mie­n­ta es­pe­cia­l­me­n­te valiosa para analizar el tráfico de red en Linux y, en caso necesario, so­lu­cio­nar posibles problemas de red. Este programa de línea de comandos, que se encuentra prei­n­s­ta­la­do en la mayor parte de las di­s­tri­bu­cio­nes de Linux más conocidas (como Debian o Ubuntu), pro­po­r­cio­na in­fo­r­ma­ción sobre los paquetes de datos que han sido enviados o recibidos en tu red. A pesar de lo que su nombre pueda indicar, el comando tcpdump de Linux permite analizar, además de paquetes TCP, paquetes UDP e ICMP. No obstante, para usar este comando vas a necesitar permisos root.

¿Cómo funciona el comando tcpdump?

La función que realiza tcpdump se conoce como “sniffing”. Al utilizar el comando tcpdump en Linux, es­pe­ci­fi­cas la interfaz de red que el programa debe mo­ni­to­ri­zar. Además, podrás hacer uso de distintos filtros para adaptar y optimizar el proceso. El comando se ejecuta en la línea de comandos y es ahí donde se mostrarán los re­su­l­ta­dos co­rre­s­po­n­die­n­tes del análisis.

¿Cómo es la sintaxis de tcpdump?

La sintaxis de Linux tcpdump es muy simple y se co­rre­s­po­n­de con:

$ tcpdump [opciones] [filtros]
bash

Aunque no es necesario es­pe­ci­fi­car ninguna opción, es re­co­me­n­da­ble hacerlo para ase­gu­rar­te de que tcpdump tiene en cuenta la interfaz de red adecuada. Los filtros tampoco son obli­ga­to­rios, pero si no se es­pe­ci­fi­ca ninguno, cpdump analizará todos los paquetes de todos los hosts, lo que puede generar una gran cantidad de in­fo­r­ma­ción que haga difícil co­m­pre­n­der y analizar los datos obtenidos.

¿Qué opciones y filtros se pueden usar con Linux tcpdump?

tcpdump se puede usar con gran variedad de opciones y filtros. Las opciones más im­po­r­ta­n­tes son las si­guie­n­tes:

  • A: imprime el contenido de un paquete en ASCII.
  • c [cantidad]: tcpdump se detiene au­to­má­ti­ca­me­n­te tras analizar la cantidad es­pe­ci­fi­ca­da de paquetes.
  • D: con esta opción se muestra una lista de todas las in­te­r­fa­ces di­s­po­ni­bles.
  • i [Interfaz]: con esta opción se es­pe­ci­fi­ca la interfaz que se debe capturar.
  • s [cantidad]: establece cuántos bytes por paquete se deben capturar.

Con tcpdump se pueden usar los si­guie­n­tes filtros:

  • dst: solo se analizan paquetes cuyo destino coincide con el valor es­ta­ble­ci­do. Este valor puede ser host, net, port o portrange.
  • host: este filtro se ocupa de que solo se tengan en cuenta los paquetes que tienen una dirección IP es­pe­cí­fi­ca como origen o destino, o en su lugar, un nombre de host es­pe­cí­fi­co.
  • net: este filtro solo considera los paquetes que tienen una dirección IP dentro de un rango de red es­pe­cí­fi­co como origen o destino.
  • port: con este filtro se es­pe­ci­fi­ca un puerto es­pe­cí­fi­co entre 0 y 65535, que se analizará de forma exclusiva.
  • portrange: este filtro contiene un rango de puertos entre 0 y 65535 que se analizará de forma exclusiva.
  • proto: este filtro solo considera los paquetes con un protocolo de red es­pe­cí­fi­co. El filtro puede tener los si­guie­n­tes valores: arp, decnet, ether, fddi, ip, ip6, rarp, tcp, udp o wlan.
  • src: solo se analizan los paquetes cuyo origen coincide con un valor es­ta­ble­ci­do. Este valor puede ser host, net, port o portrange.

Ejemplos para el comando tcpdump

Fi­na­l­me­n­te, te mostramos cómo puedes usar tcpdump. En el ejemplo que puedes encontrar a co­n­ti­nua­ción, se usa un comando sudo de Linux.

$ sudo tcpdump -D
bash

De este modo puedes comprobar qué in­te­r­fa­ces de red están di­s­po­ni­bles.

$ sudo tcpdump -i wlx14a3c782966b
bash

De este modo, solo se analiza la interfaz del nombre es­pe­ci­fi­ca­do.

$ sudo tcpdump -c 5 -i wlx14a3c782966b
bash

De esta forma indicas que tcpdump solo incluya cinco paquetes.

Ir al menú principal