El "tcpdump" es un analizador de paquetes y se usa para diagnosticar y analizar problemas de red. Captura el tráfico de red que pasa por su dispositivo y lo mira. La herramienta "tcpdump" es una herramienta poderosa para solucionar problemas de red. Viene con muchas opciones, lo que lo convierte en una utilidad de línea de comandos versátil para solucionar problemas de red.
Esta publicación es una guía detallada sobre la utilidad "tcpdump" que incluye su instalación, características comunes y uso con diferentes opciones. Comencemos con la instalación:
Cómo instalar "tcpdump":
En muchas distribuciones, el "tcpdump" sale de la casilla y, para verificarla, use:
$ que tcpdump
Si no se encuentra en su distribución, instálelo usando:
$ sudo apt install tcpdump
El comando anterior se utilizará para distribuciones basadas en Debian como Ubuntu y LinuxMint. Para "Redhat" y "Centos", use:
$ sudo dnf install tcpdump
Cómo capturar paquetes con tcpdump:
Se pueden usar varias interfaces para capturar paquetes. Para obtener una lista de interfaces, use:
$ sudo tcpdump -d
O simplemente use "cualquiera" con el comando "tcpdump" para obtener paquetes de la interfaz activa. Para comenzar a capturar paquetes, uso:
$ sudo tcpdump -interfaz cualquiera
El comando anterior es trazar paquetes desde todas las interfaces activas. Los paquetes se agarrarán continuamente hasta que reciba una interrupción del usuario (CTRL-C).
También podemos limitar el número de paquetes que se capturarán utilizando el indicador "-c" que significa el "recuento."Para capturar 3 paquetes, use:
$ sudo tcpdump -i any -c3
El comando anterior es útil para filtrar un paquete específico. Además, la solución de problemas de los problemas de conectividad requiere que solo se capturen unos pocos paquetes iniciales.
El "tcpdumpEl comando captura paquetes con nombres de IP y puerto de forma predeterminada, pero para limpiar, el desorden y facilitar la salida de entender; Los nombres se pueden deshabilitar usando "-norte" y "-nn"Para la opción de puerto:
$ sudo tcpdump -i any -c3 -nn
Como se muestra en la salida anterior, se han sacado los nombres de IP y puerto.
Cómo comprender la información sobre un paquete capturado:
Para conocer los diversos campos de un paquete capturado, tomemos un ejemplo de un paquete TCP:
Un paquete puede tener varios campos, pero los generales se muestran arriba. El primer campo, "09:48:18.960683,"Representa un momento en que se recibe el paquete. Luego vienen las direcciones IP; la primera ip [216.58.209.130] es la IP de origen y la segunda IP [10.0.2.15.55812] es el destino IP. Entonces obtendrás la bandera [PAG.]; A continuación se dan una lista de banderas típicas:
Bandera | Tipo | Descripción |
"." | Ack | Significa reconocimiento |
S | Síntoma | Bandera para comenzar una conexión |
F | ALETA | Bandera para una conexión cerrada |
PAG | EMPUJAR | Indica el impulso de los datos del remitente |
Riñonal | Primero | Reajuste de conexion |
Y luego viene el número de secuencia "SEQ 185: 255". El cliente y el servidor usan el número de secuencia de 32 bits para mantener y monitorear los datos.
El "ack"Es una bandera; Si es 1, eso significa que el número de reconocimiento es válido, y el receptor espera el siguiente byte.
El número de ventana indica el tamaño del búfer. "Gana 65535"Significa la cantidad de datos que se pueden almacenar en búfer.
Y al final viene la longitud [70] del paquete en bytes que es una diferencia de "185: 255".
Filtrado de paquetes para solucionar los problemas de red:
La herramienta "tcpdump" captura cientos de paquetes, y la mayoría de ellos son de menos importancia, lo que hace que sea muy complejo obtener la información deseada para la solución de problemas. En este caso, el filtrado desempeñará su papel. Por ejemplo, si bien la resolución de problemas si no está interesado en un tipo particular de tráfico, puede filtrarlo utilizando "TCPDUMP", que viene con paquetes de filtrado de acuerdo con las direcciones IP, los puertos y los protocolos.
Cómo capturar un paquete usando el nombre de host con el comando tcpdump:
Para obtener el paquete de un host específico, use:
$ sudo tcpdump -i any -c4 host 10.0.2.15
Si desea obtener solo tráfico unidireccional, use "SRC" y "DST"Opciones en lugar de"anfitrión."
Cómo capturar un paquete usando el número de puerto con el comando tcpdump:
Para filtrar paquetes con el número de puerto, use:
$ sudo tcpdump -i any -c3 -nn puerto 443
El "443" es el número de puerto HTTPS.
Cómo capturar un paquete utilizando el protocolo con el comando tcpdump:
Con el comando "tcpdump", puede filtrar paquetes de acuerdo con cualquier protocolo como UDP, ICMP, ARP, etc. Simplemente escriba el nombre del protocolo:
$ sudo tcpdump -i any -c6 udp
Los comandos anteriores solo capturarán paquetes que pertenecen al protocolo "UDP".
Cómo combinar opciones de filtrado utilizando operadores lógicos:
Se pueden combinar diferentes opciones de filtrado utilizando operadores lógicos como "y/o":
$ sudo tcpdump -i any -c6 -nn host 10.0.2.15 y puerto 443
Cómo almacenar datos capturados:
Los datos atrapados se pueden guardar en un archivo para monitorearlo más tarde, y para esa opción "-W" se utilizará, y "W" significa "Escribir":
$ sudo tcpdump -i any -c5 -w paquete de paquetes.PCAP
La extensión del archivo sería ".PCAP ", que significa" Captura de paquetes."Una vez que se realice la captura, el archivo se guardaría en su unidad local. Este archivo no se puede abrir o leer utilizando ningún programa de editor de texto. Para leerlo, use el "-riñonal"Bandera con" tcpdump ":
$ TCPDUMP -R PACKETDATA.PCAP
Conclusión:
El "tcpdump" es una herramienta valiosa y flexible para capturar y analizar el tráfico de red para solucionar problemas de red. El punto de atención de esta guía es aprender el uso básico y avanzado de la utilidad de línea de comandos "tcpdump". Pero si le resulta difícil, entonces hay un programa menos complejo basado en GUI llamado "Wireshark", que hace prácticamente el mismo trabajo pero con varias características adicionales.