Para monitorar o tráfego HTTP entre um servidor e um servidor web, estou usando atualmente tcpdump
. Isso funciona bem, mas eu gostaria de me livrar de alguns dados supérfluos na saída (eu sei sobre tcpflow
e wireshark
, mas eles não estão prontamente disponíveis no meu ambiente).
Na tcpdump
página do manual:
Para imprimir todos os pacotes HTTP IPv4 de e para a porta 80, ou seja, imprima apenas pacotes que contenham dados, não, por exemplo, pacotes SYN e FIN e pacotes somente ACK.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Este comando
sudo tcpdump -A 'src example.com e porta tcp 80 e (((ip [2: 2] - ((ip [0] & 0xf) << 2) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
fornece a seguinte saída:
19: 44: 03.529413 IP 192.0.32.10.http> 10.0.1.6.52369: Flags [P.], seq 918827135: 918827862, ack 351213824, win 4316, options [nop, nop, TS val 4093273405 ecr 869959372], comprimento 727
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK Servidor: Apache / 2.2.3 (Red Hat) Tipo de conteúdo: text / html; charset = UTF-8 Data: sábado, 14 de novembro de 2009 18:35:22 GMT Idade: 7149
Comprimento do conteúdo: 438<HTML> <HEAD> <TITLE> Exemplo de página da web </TITLE> </HEAD> <body>
<p> Você acessou esta página da web ... </p> </BODY> </HTML>
Isso é quase perfeito, exceto pela parte destacada. O que é isso, final - mais importante - como me livrar dele? Talvez seja apenas um pequeno ajuste na expressão no final do comando?
tcp port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420
. Eu adicionei uma página para o Wireshark web site um tempo atrás que ajuda a criar cordas filtros de captura correspondentes: wireshark.org/tools/string-cf.htmldê uma olhada no ngrep - ele pode ser útil para você.
como referência para outros httpry [o servidor parece estar inoperante agora, mas espero que seja temporário] e o tshark também sejam úteis para análise de protocolo passivo - primeiro apenas para http, segundo - por muito mais.
fonte
Experimente o enablepry ou justniffer
Justniffer funciona bem em pacotes tcp reordenando retrasmissions e fragmentação de ip
fonte
Eu sugeriria o uso de uma linha de comando tcpdump simplificada que armazena tudo em um arquivo pcap para pós-processo. Dependendo do que exatamente você está procurando no diagnóstico, o tcpflow funciona muito bem para reunir as comunicações de maneira coerente para análise.
Algumas outras informações boas, incluindo alguns usos para o enablepry, podem ser encontradas em: http://taosecurity.blogspot.com/2008/06/logging-web-traffic-with-httpry.html
fonte
O servidor da web que você está usando não produz logs? Certamente essa seria uma maneira muito melhor de monitorar o tráfego HTTP, há uma infinidade de ferramentas para analisar os dados e qualquer servidor Web competente deve produzir logs confiáveis.
fonte
Existem várias ferramentas disponíveis no mercado, projetadas especialmente para monitorar o tráfego HTTP. Fiddler2 ( http://www.fiddler2.org ) e HTTP Debugger Pro são exemplos dessas ferramentas.
fonte