Anydump ist ein tcpdump-Wrapper und bietet die Möglichkeit tcpdump auf allen Interfaces auszuführen ohne den Überblick über die Herkunft der einzelnen Ereignisse zu verlieren.
Möchte man auf seinem System auf allen Netzwerk-Interfaces gleichzeitig einen tcpdump ausführen, so nutzt man tcpdump -i any. Soweit so langweilig.
Tcpdump ist in seiner Funktion auf Firewalls leider in einer gewissen Art eingeschränkt. Denn sobald mehrere Interfaces belauscht werden, ist es nicht mehr bestimmbar, welches Interface den Traffic gesehen hat. Das Problem wurde hier auch schon beschrieben. Da wir auf der Arbeit oft diese Art von tcpdumps nutzen, wollte ich eine Möglichkeit implementieren, um genau die fehlende Information anzuzeigen. Dabei ist folgendes raus gekommen:
Das Skript ruft alle Interfaces per ifconfig auf und startet für jedes Interface einen tcpdump mit den gegebenen Parametern.
Alle Ausgaben werden per sed mit einem Interface-Identifier-Präfix ausgestattet und auf der Shell ausgegeben.
Es ist möglich die meisten Parameter von tcpdump zu verwenden und auch der Modus, ein einzelnes Interace zu monitoren, wird unterstützt. Das ist nötig, falls man vor hat einen Alias für Anydump anzulegen.
Es ist noch nicht alles perfekt, aber soweit funktionieren alle Funktionen.
Ich würde mich sehr über Verbesserungsvorschläge freuen. Vielleicht hat ja auch jemand eine Idee, wie man die multiblen Zusammenfassungen beim beenden des Dumps in den Griff bekommt.