Frage

Es ist nicht nur ein Capture Ich suche hier zu tun. Ich möchte zuerst das Paket aufnehmen und dann in Echtzeit, überprüfen Sie die Nutzlast für bestimmte Daten, entfernen Sie diese, um eine Signatur zu injizieren und das Paket in den Stapel reinject wie bisher gesendet werden.

hatte ich eine Lese der ipfw Umleitungs Sockets IPFW und es sieht sehr vielversprechend aus. Wie sieht es Beispiele in Paketen zu modifizieren und sie zurück in den Stapel Reinjezierung Sockets abzulenken? Auch als eine Frage der Neugier, wäre es möglich, die Daten aus der Steckdose mit Java zu lesen oder würde dies beschränkt mich mit Verpackung Mangeln und Reinjezierung etc?

War es hilfreich?

Lösung

Ich wollte andere Antworten auf Echo, die iptables (abhängig von der Komplexität der beiden Muster, die Sie passen und das Paket Modifikationen sind versucht, die Sie machen wollen) empfohlen - bis ich nahm Notiz von dem BSD-Tag auf die Frage.

Wie Stephen Pellicer bereits erwähnt hat, libpcap eine gute Möglichkeit ist, um die Pakete für die Erfassung. Ich glaube aber, daß libpcap auch Pakete senden verwendet werden. Als Referenz bin ich ziemlich sicher, dass tcpreplay verwendet es pcap formatierte Dateien wiederzugeben.

Andere Tipps

Siehe Steckdosen umleiten: Umleiten Sockets mini HOWTO .

Sie arbeiten durch vorbeifahrenden Verkehr eine gewisse ipfw Regel auf eine spezielle Raw Socket passend, die dann veränderten Verkehr in die Netzwerkschichten reinject können.

Wenn Sie nur für Paketerfassung suchen, ist libpcap sehr beliebt. Es ist in grundlegenden Werkzeuge wie tcpdump und ätherisch verwendet. Soweit „in den Stapel Einhaken“, es sei denn, Sie grundsätzlich die Möglichkeit, die Art und Weise zu ändern planen die Vernetzung (dh fügen Sie Ihre eigene Schicht oder verändern das Verhalten von TCP) implementiert ist, Ihre Idee IPF die Verwendung für das Paket Modifikation oder Intervention wie scheint die beste Wette. In Linux sie ein bestimmtes Umleitungsziel für Module User-Space hat, IPF hat wahrscheinlich etwas ähnliches oder man könnte IPF ändern etwas ähnliches zu tun.

Wenn Sie nur daran interessiert sind, die Pakete zu sehen, dann ist libpcap der Weg zu gehen. Sie können es unter: http://www.tcpdump.org/

Es ist möglich, dies mit dem QUEUE oder NFQUEUE iptables in User-Space zu tun Ziel, denke ich. Die Client-Anwendung legt in eine Warteschlange und empfängt alle passenden Pakete, die sie ändern können, bevor sie wieder eingespritzt sind (es kann sie auch fallen, wenn er will).

Es ist eine Client-Bibliothek libnetfilter_queue, die es braucht, gegen zu verknüpfen. Leider Dokumentation ist minimal, aber es gibt einige Mailing-Liste Posts und Beispiele Klopfen um.

Aus Gründen der Performance werden Sie nicht, dies zu jedem Paket tun wollen, sondern nur bestimmte passend diejenigen, die Sie Standard-Firewall-Regeln mit Übereinstimmen müssen würden. Wenn das nicht genug tun, müssen Sie Ihre eigene netfilter-Kernel-Modul schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top