42 votos

Monitoreo de tráfico de HTTP mediante tcpdump

Para monitorear el tráfico HTTP entre un servidor web y un servidor web, actualmente estoy usando tcpdump. Esto funciona bien, pero me gustaría deshacerse de algunos datos superfluos en la salida (que yo sé acerca de tcpflow y wireshark, pero no están disponibles en mi entorno).

De la tcpdump el hombre de la página:

Para imprimir todas las IPv4, HTTP paquetes desde y hacia el puerto 80, es decir, imprimir sólo los paquetes que contienen los datos, no se, por ejemplo, SYN y paquetes de fin y ACK-sólo los paquetes.

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

Este comando

sudo tcpdump-Un 'src example.com y el puerto tcp 80 y (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

proporciona el siguiente resultado:

19:44:03.529413 IP 192.0.32.10.http > 10.0.1.6.52369: Flags [P.], seq 918827135:918827862, ack 351213824, ganar 4316, opciones [nop,nop,TS val 4093273405 ecr 869959372], la longitud de 727

E.....@....... ....P..6.0.........D...... __..e=3...__HTTP/1.1 200 OK Server: Apache/2.2.3 (Red Hat) Content-Type: text/html; charset=UTF-8 Fecha: Sat, 14 Nov 2009 18:35:22 GMT Edad: 7149
Content-Length: 438

<HTML> <HEAD> <TITLE>Ejemplo de Página Web</TITLE> </HEAD> <cuerpo>
<p>Usted ha llegado a esta página web ...</p> </BODY> </HTML>

Esto es casi perfecto, excepto por la parte resaltada. ¿Qué es esto, en fin, lo más importante, ¿cómo me deshago de ella? Tal vez es sólo un pequeño retoque a la expresión al final de los comandos?

39voto

TonyB Puntos 2482

tcpdump impresiones de paquetes completos. "La basura" que se ven son en realidad TCP cabeceras del paquete.

usted puede, sin duda, el masaje de la salida con decir, un script en perl, pero ¿por qué no utilizar tshark, la versión textual de wireshark en su lugar?

tshark 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

toma los mismos argumentos como tcpdump (misma biblioteca), pero dado que se trata de un analizador que puede hacer la inspección profunda de paquetes, de modo que usted puede mejorar su filtra incluso más, es decir,

tshark 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -R'http.request.method == "GET" || http.request.method == "HEAD"'

18voto

Steve Mould Puntos 141

echa un vistazo a ngrep - mighe ser de alguna utilidad para usted.

como referencia para los demás httpry [ servidor parece estar ahora, pero espero que sea temporal ] y tshark también son útiles para el pasivo para el análisis del protocolo - la primera solo para http, el segundo - para mucho más.

5voto

Mole24 Puntos 41

Trate de httpry o justniffer

Justniffer funciona bien en los paquetes tcp de la reordenación del retrasmissions y fragmentación ip

1voto

ScottZ Puntos 367

Me gustaría sugerir el uso de un atontada tcpdump línea de comandos que almacena todo en un archivo pcap para el proceso de postproducción. Dependiendo de qué es exactamente lo que están buscando en el diagnóstico de tcpflow funciona muy bien para poner de comunicaciones de nuevo juntos en una manera coherente para el análisis.

Algunos otros de buena información, incluyendo algunos de los usos para los httpry se puede encontrar en: http://taosecurity.blogspot.com/2008/06/logging-web-traffic-with-httpry.html

0voto

JamesHannah Puntos 1354

¿El servidor de la web que usted está utilizando no producir los registros? Sin duda que sería una mucho mejor manera de controlar el tráfico HTTP, existe una gran cantidad de herramientas para analizar los datos y cualquier competente servidor web debe producir confiable de registros.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X