Tcpdump oder ähnlich - Wie kann ich nur eine Instanz jedes Paketziels und -ports erfassen?

456
Darren

Ich möchte etwas wie tcpdump bis zu einer Woche laufen lassen und daher die Ausgabe so kurz wie möglich gestalten, um die Dateigröße zu reduzieren und die Analyse nach der Erfassung zu beschleunigen.

Alles was ich tun muss, ist die erste Instanz jeder Paketquelle oder -adresse (IP-Adresse und Port) zu protokollieren, damit ich ein Bild davon erstellen kann, welche Geräte mit meinem Server kommunizieren (oder umgekehrt).

Sobald ein Paket von der IP-Adresse 192.168.1.10 an Port 80 erkannt wird, erfassen Sie also keine weiteren Pakete mehr von dieser Adresse an diesen Port.

Bonuspunkte, wenn eine Tabelle mit Paketzahlen von jeder Quelle / jedem Ziel erstellt werden kann.

Das Beste, was ich mit so habe kommen weit ist tcpdump mit der laufen -tund -qOptionen (keine Zeitstempel und ruhig, respectively) und den Ausgang durchlaufen sortund uniqzu verringern (aber nicht beseitigen) die Duplikate. Pakete, die sich an denselben Zielport aber von verschiedenen Quellports her bewegen, durchlaufen beispielsweise dieses Netz.

1
Mit tcpdump ist das nicht möglich. Sie sollten nach TCP-Paketen filtern, die mindestens die Schichten 2 und 3 filtern, da Sie nur an IP: Port im Paket interessiert sind. Sehen Sie sich tshark für die Nachanalyse an, es bietet spektakuläre Optionen zum Analysieren von PCaps und ist für größere als die Wireshark-GUI wesentlich effizienter. MaQleod vor 6 Jahren 0
Es kann nützlich sein, die Funktion "tcpdump" -G zusammen mit -w zu verwenden, um pcap-Dateien mit überschaubarer Größe, die nach dem angegebenen Intervall nachbearbeitet werden können, in ein komprimierteres Format zu schreiben. Nevin Williams vor 6 Jahren 0
Sie brauchen nur das Verbindungstupel oder wirklich den Paketinhalt? Im ersten Fall denke ich, dass einige "iptables" -Regel ausreichen würde, um die Protokollierung für jedes neue Paket durchzuführen. Es scheint mir, dass die Bonuspunkte Ihrem ersten Ziel widersprechen, denn das Aufrechterhalten einer Zählung bedeutet, dass Sie alle Pakete sehen müssen und nicht nach dem ersten Ziel aufhören müssen. Patrick Mevzek vor 6 Jahren 0
@PatrickMevzek, nur die IP-Adresse und den Port. Ich weiß, worauf du hinauswillst; Ich meinte, wenn wir die Pakete weiter erfassen müssen, wäre eine Zählung schön. Darren vor 6 Jahren 0
Schreiben Sie einfach ein Skript und leiten Sie die Ausgabe von tcpdump hinein. Sollte mit einer beliebigen Programmiersprache machbar sein. SpiderPig vor 6 Jahren 1
Sie können dies mit einem kleinen Skript tun, indem Sie einfach einen Bezeichner aus den Adressen erstellen, z. B. `id = hex2ascii (md5 (" "+ source +": "+ source.port +"), "+ dest +": "+ dest.port )) `Sie können Dateien mit der ID erstellen und tcp dump an diese anhängen, wenn Sie den Inhalt benötigen, oder Sie fragen einfach nach der Existenz, wenn Sie nur die Adressen speichern möchten. Sie können die aktuelle ID im Arbeitsspeicher zwischenspeichern, wenn Sie Ihr Skript als Dämon ausführen. inf3rno vor 6 Jahren 0

0 Antworten auf die Frage