domingo, 6 de marzo de 2011

Monitoreo de trafico en red: tcpdump

Hace unos meses publiqué, en una página que frecuento llamado Taringa, un pequeño artículo sobre el uso de esta utilidad, me pareció interesante compartirla con ustedes. Es realmente muy interesante.
Tcpdump es una excelente herramienta que nos permite monitorear a través de nuestra preciada y querida consola de Linux todos los paquetes que atraviesen la interfaz indicada. A su vez, los múltiples filtros, parámetro y opciones que tcpdump nos ofrece, nos permite infinidades de combinaciones, al punto de poder monitorear todo el trafico completo que pase por la interfaz, como el trafico que ingrese de una ip, un host o una pagina especifica, podemos solicitar el trafico de un puerto especifico o pedirle a esta magnifica herramienta que nos muestre todos los paquetes cuyo destino sea una dirección MAC específica.

Aquí algunos ejemplos: 

# tcpdump -i wlan0 host www.google.com
Resultados arrojados por tcpdump al ingresar a Google


En este caso le decimos a tcpdump que capture y nos informe acerca de los paquetes recibidos por parte de google en la interface wlan0, pero podemos ir mas alla, por ejemplo: 

# tcpdump -i wlan0 port not 80 and host www.google.com

en este caso solicitamos aquellos paquetes que pasen por wlan0, que provengan de google pero que no pasen por el puerto 80 (el puerto del protocolo http), de manera que no se filtren los paquetes debidos al navegador y de esta manera podemos saber si san google nos envía información por algún puerto que no debería.
Aquí algunos ejemplos sacados de wikipedia (mas precisamente de ACA): 


Ejemplos


Capturar tráfico cuya dirección IP de origen sea 192.168.3.1 

tcpdump src host 192.168.3.1 

Capturar tráfico cuya dirección origen o destino sea 192.168.3.2 

tcpdump host 192.168.3.2 

Capturar tráfico con destino a la dirección MAC 50:43:A5:AE:69:55 

tcpdump ether dst 50:43:A5:AE:69:55 

Capturar tráfico con red destino 192.168.3.0 

tcpdump dst net 192.168.3.0 

Capturar tráfico con red origen 192.168.3.0/28 

tcpdump src net 192.168.3.0 mask 255.255.255.240
tcpdump src net 192.168.3.0/28 

Capturar tráfico con destino el puerto 23 

tcpdump dst port 23 

Capturar tráfico con origen o destino el puerto 110 

tcpdump port 110 

Capturar los paquetes de tipo ICMP 

tcpdump ip proto \icmp 

Capturar los paquetes de tipo UDP 

tcpdump ip proto \udp
tcpdump udp 

Capturar el tráfico Web 

tcpdump tcp and port 80 

Capturar las peticiones de DNS 

tcpdump udp and dst port 53 

Capturar el tráfico al puerto telnet o SSH 

tcpdump tcp and (port 22 or port 23) 

Capturar todo el tráfico excepto el web 

tcpdump tcp and not port 80 

otra forma: 

tcpdump tcp and ! port 80 

Capturar todo el trafico a host 10.168.1.100 puerto 80, en full verbose mode, full snap length, sin ponerla en modo promiscuo, sin convertir las direcciones de salida, imprimir en ASCII y volcar todo el dump en un file 

tcpdump -vvv -n -s 65535 -A -p -w /tmp/tcpdump host 10.168.1.100 and port 80 


Analisis de los datos arrojados

15:23:44.772291 IP 192.168.1.17.52798 > 85.Red-83-37-170.dynamicIP.rima-tde.net.65000: . ack 1791 win 7851 <nop, nop, timestamp 5520421 997821> 

  • 15:23:44772291: Indica hh:mm:fracciones 
  • src: Dirección y puerto origen. 
  • dst: Dirección y puerto destino. 
  • flags: Flags de la cabecera TCP. (.) si no hay flags o combinación de S (SYN), F (FIN), P (PUSH), W (reducción de la ventana de congestión), E (ECN eco). 
  • dataseq: Número de secuencia del primer byte de datos en este segmento TCP. El formato es primero:último (n). 
  • ack: El número de asentimiento. Indica el número siguiente de secuencia que se espera recibir. 
  • window: Tamaño de la ventana de recepción. 
  • urgent: Existen datos urgentes. 
  • options: Indica la existencia de opciones. Van entre "<"...">". 

Bueno, como ven, la herramienta tiene alcances realmente enormes y podria ser muy util si se la sabe usar.
Aclaro que el texto fue escrito por mi por primera vez en un post de Taringa.

1 comentario:

  1. Muchas gracias por la info, estoy empezando es esto de la administración de redes y me viene de perlas. Saludos desde Argentina

    ResponderEliminar