Tutorial detallado de Tcpdump
Tcpdump es una herramienta que intercepta paquetes de red y genera el contenido del paquete. Con sus potentes funciones y estrategias de interceptación flexibles, se ha convertido en la herramienta preferida para el análisis de redes y la resolución de problemas en sistemas tipo UNIX.
Tcpdump admite el filtrado de capa de red, protocolo, host, red o puerto, y proporciona declaraciones lógicas como y, o, no para ayudarlo a eliminar información inútil.
-c: Especifica el número de paquetes que se capturarán.
-i interfaz: especifica la interfaz que tcpdump necesita monitorear. De forma predeterminada, se rastreará la primera interfaz de red.
-n: La dirección se expresa explícitamente como un número; de lo contrario, como un nombre de host, lo que significa que la opción -n no resuelve el nombre de host.
-nn: Excepto por el efecto de -n, el puerto se muestra como un valor numérico; de lo contrario, se muestra el nombre del servicio del puerto.
-P: Especifica si el paquete a capturar es un paquete entrante o un paquete saliente. Los valores que se pueden dar son "in", "out" e "inout", y el valor predeterminado es "inout".
-s len: establece la longitud de captura de paquetes de tcpdump en len; de lo contrario, el valor predeterminado es 65535 bytes. Cuando los paquetes a capturar son grandes, es posible que se trunquen los paquetes si la longitud no se establece lo suficiente. Si se produce el truncamiento del grupo,
: el símbolo "[|proto]" aparecerá en la línea de salida (proto en realidad se mostrará como el nombre del protocolo). Pero cuanto más se tarde en capturar len, mayor será el tiempo de procesamiento del paquete y se reducirá la cantidad de paquetes que tcpdump puede almacenar en caché.
Esto provocará la pérdida de paquetes de datos, por lo que siempre que pueda capturar el paquete deseado, cuanto menor sea su longitud, mejor.
-e: cada línea de salida contendrá información del encabezado de la capa de enlace de datos, como la MAC de origen y la MAC de destino.
-P: Impresión rápida. Es decir, se imprime muy poca información de protocolo, por lo que las líneas de salida son relativamente cortas.
-X: Los datos del encabezado del paquete de salida se generarán en modo 16 hexadecimal y ASCII.
-XX: Los datos del encabezado del paquete de salida se enviarán en 16 y ASCII al mismo tiempo.
-v: produce resultados detallados al analizar e imprimir.
-vv: Produce una salida más detallada que -v.
-vvv: Produce una salida más detallada que -vv.
-D: Lista las interfaces que se pueden utilizar para capturar paquetes. El número de interfaz y el nombre de la interfaz aparecerán en la lista y se pueden usar después de "-i".
-F: Lee la expresión del paquete capturado del archivo. Si se utiliza esta opción, todas las demás expresiones dadas en la línea de comando no tendrán ningún efecto.
-w: envía los datos capturados a un archivo en lugar de a la salida estándar. Se puede combinar con la opción "-G
time" para hacer que el archivo de salida cambie automáticamente a otro archivo cada segundo. Estos archivos se pueden cargar con la opción "-r" para su análisis e impresión.
-r: Lee datos del archivo de paquete dado. Utilice "-" para leer desde la entrada estándar.
= = El formato básico de la unidad de expresión es "ID de tipo de directorio original" = =
Para conocer la sintaxis de la expresión, consulte la sintaxis de filtrado pcap-filter pcap-filter-packet.
Host, red, puerto, rango de puertos
Por ejemplo: host 192.168.201.128, red 128.3, puerto 20, rango de puertos 6000-6008 '
src , dst, src o dst, src y dst
Tcp, udp, icmp, si no se proporciona ningún tipo de protocolo, coinciden todos los tipos posibles.
El operador = "y /; amp/ o / || / not /!" está conectado para formar una expresión condicional compleja ==.
Por ejemplo, "host foo y no el puerto FTP y no el puerto FTP-datos" significa que los paquetes de datos filtrados deben cumplir los requisitos de "paquetes con host foo y el puerto no FTP (puerto 21) y FTP-datos (puerto 20)". La correspondencia entre los puertos y nombres comunes se puede encontrar en el archivo /etc/service del sistema Linux.
Además, se puede omitir el mismo modificador, como por ejemplo "tcp dstport ftp o ftp-data o dominio" tiene el mismo significado que "tcp dstport ftp o TCP dstport FTP-data o TCP dstport dominio" , que indica un paquete de datos El protocolo es TCP y el puerto de destino es FTP o FTP-datos o dominio (puerto 53).
Utilice corchetes "()" para cambiar la prioridad de la expresión, pero debe tenerse en cuenta que los corchetes serán interpretados por el shell, así que utilice barra invertida "," para escapar a "()", Utilice comillas si es necesario.
==**tcpdump solo puede capturar paquetes que fluyen a través de esta computadora* * = =
De forma predeterminada, iniciar tcpdump directamente monitoreará la primera interfaz de red (no todos los paquetes que fluyen). en el puerto). Se capturarán muchos resultados de esta manera y el desplazamiento será muy rápido.
Tenga en cuenta que la expresión está entre comillas simples, lo que evita que el shell malinterprete los paréntesis.