Zur Überwachung des HTTP-Verkehrs zwischen einem Server und einem Webserver verwende ich derzeit tcpdump
. Dies funktioniert einwandfrei, aber ich möchte einige überflüssige Daten in der Ausgabe entfernen (ich weiß über tcpflow
und Bescheid wireshark
, aber sie sind in meiner Umgebung nicht ohne weiteres verfügbar).
Von der tcpdump
Manpage:
Alle IPv4-HTTP-Pakete an und von Port 80 drucken, dh nur Pakete drucken, die Daten enthalten, z. B. keine SYN- und FIN-Pakete und nur ACK-Pakete.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Dieser Befehl
sudo tcpdump -A 'src example.com und tcp port 80 und (((ip [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
liefert folgende Ausgabe:
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], length 727
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK Server: Apache / 2.2.3 (Red Hat) Inhaltstyp: text / html; Zeichensatz = UTF-8 Datum: Samstag, 14. November 2009 um 18:35:22 Uhr GMT Alter: 7149
Länge des Inhalts: 438<HTML> <HEAD> <TITLE> Beispiel-Webseite </ TITLE> </ HEAD> <body>
<p> Sie haben diese Webseite erreicht ... </ p> </ BODY> </ HTML>
Dies ist fast perfekt, mit Ausnahme des hervorgehobenen Teils. Was ist das, Ende - was noch wichtiger ist - wie werde ich es los? Vielleicht ist es nur eine kleine Änderung des Ausdrucks am Ende des Befehls?
tcp port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420
. Ich habe vor einiger Zeit eine Seite zur Wireshark-Website hinzugefügt, die Ihnen hilft, Capture-Filter für Zeichenfolgen zu erstellen: wireshark.org/tools/string-cf.htmlSchauen Sie sich ngrep an - es könnte für Sie von Nutzen sein.
als referenz für andere httpry [server scheint derzeit nicht verfügbar zu sein, aber ich hoffe, es ist nur vorübergehend] und tshark sind auch nützlich für die passive Protokollanalyse - erstens nur für http, zweitens - für vieles mehr.
quelle
Versuchen Sie es mit httpry oder justniffer
Justniffer eignet sich gut für TCP-Pakete, die Retrasmissionen und IP-Fragmentierungen neu anordnen
quelle
Ich würde vorschlagen, eine heruntergekommene tcpdump-Befehlszeile zu verwenden, die alles in einer pcap-Datei für den Postprozess speichert. Je nachdem, was genau Sie bei der Diagnose von tcpflow betrachten, können Sie die Kommunikation zur Analyse auf kohärente Weise wieder zusammenstellen.
Einige andere gute Informationen, einschließlich einiger Verwendungszwecke für httpry, finden Sie unter: http://taosecurity.blogspot.com/2008/06/logging-web-traffic-with-httpry.html
quelle
Produziert der von Ihnen verwendete Webserver keine Protokolle? Sicherlich wäre das eine viel bessere Möglichkeit, den HTTP-Verkehr zu überwachen. Es gibt eine Vielzahl von Tools zur Analyse der Daten, und jeder kompetente Webserver sollte zuverlässige Protokolle erstellen.
quelle
Auf dem Markt sind verschiedene Tools erhältlich, die speziell für die Überwachung des HTTP-Datenverkehrs entwickelt wurden. Fiddler2 ( http://www.fiddler2.org ) und HTTP Debugger Pro sind Beispiele für solche Tools.
quelle