2013-04-30 8 views
10

Gibt es eine Möglichkeit, tcpdump (live oder nach dem Erstellen eines Dumps) basierend auf TCP-Verbindungszeit (Verbindungsdauer) zu filtern?tcpdump - Wie filtert man basierend auf tcp Verbindungszeit/-dauer

Ich registriere http Json RPC Verkehr. Ich möchte nur Verbindungen aufzeichnen, die länger sind als 1000 ms.

In Wireshark gibt es Werkzeug in Menü-> Statistics-> Conversations (Registerkarte TCP) und dort kann ich nach "Dauer" sortieren. Aber ich möchte langlebige Verbindungen vorher aufzeichnen (oder filtern) (nicht im Wireshark).

In Pseudo-Befehle möchte ich so etwas wie dies zu tun:

tcpdump -i eth0 port 80 and connectionTime>1000ms -w data.pcap 

oder nach der Aufnahme:

cat data.pcap | SOMETOOL -connectionTime>1000ms > dataLongConnections.pcap 

SOMETOOL Daten gefiltert exportieren muss formatiert werden, dass Wireshark verstehen. Weil ich nach dem Filtern diese Daten in Wireshark analysieren möchte.

Wie kann ich das tun?

+0

Haben Sie SplitCap wie von kauppi vorgeschlagen? Sie können nicht mit tcpdump nach Sitzungsdauer filtern, da es sich nicht um einen Stateful-Filter handelt. SplitCap scheint auf den ersten Blick das zu bieten, was Sie für den Anfang benötigen. –

+0

Um hinzuzufügen, was Tom Regner gesagt hat: 'tcpdump' verfolgt die Sitzungsdauer nicht. Der Grund, dass 'Wireshark' Ihnen die Informationen zeigen kann, ist, weil 'Wireshark' selbst die Sitzungsdauer verfolgt und nicht einfach 'tcpdump' analysiert. –

Antwort

1

Sie müssen Ihren Datenverkehr unter Fluss Ebene statt Paket Ebene betrachten.

Wenn Sie mit NetFlow gearbeitet haben, könnten Sie flow-tools und flow-nfilter verwenden, um die Flüsse nach Dauer zu filtern. So könnten Sie convert your pcap to NetFlow und später filtern.

Der Nachteil ist, dass am Ausgang erhalten Sie NetFlow, nicht PCAP. Für den Aufbau einiger Statistiken ist es ausreichend, aber Pakete zu überprüfen - nicht sicher.

Sie können auch Ihr eigenes Werkzeug mit libpcap in C (schwer) oder scapy in Python (einfacher Weg) bauen. Die letztere Option sollte nicht zu schwierig sein (vorausgesetzt, Sie arbeiten mit Python)

2

SplitCap könnte für Sie arbeiten. Es dauert PCAP als eine Eingabe und Ausgabe separate PCAPs für jede TCP/UDP-Sitzung. Nach dem Split konnten Sie aus den ausgegebenen PCAPs die interessanten herausfiltern.

Verwandte Themen