Ich bin versucht, ein Userspace-Anwendung zu schreiben, die in ein Netzwerk-Stack des Betriebssystem einhängen kann, schnüffeln Pakete vorbei fliegen und bearbeiten diejenigen, die ihre Interesse an.Umschreiben von Netzwerkpaketen on the fly mit libnetfilter_queue
Nach viel googeln, es erscheint Für mich ist das die einfachste (und doch einigermaßen robuste) Methode, dies zu tun (auf jeder Plattform) das Projekt libnetfilter_queue
von Linux. Ich habe jedoch Schwierigkeiten, eine angemessene Dokumentation für das Projekt zu finden, außerhalb der begrenzten official Dokumentation. Seine Hauptmerkmale (wie durch die erste Verbindung angegeben sind)
- Empfangen der Warteschlange Pakete von dem Kernel nfnetlink_queue Subsystem
- ausstellende Urteilssprüche und/oder geänderten Pakete zum Kernel nfnetlink_queue Subsystem Reinjezierung
Schwerpunkt ist mein eigenes. Wie genau soll das gemeint sein? Ich habe versucht, den Code sample zu ändern, der zur Verfügung gestellt wird, aber vielleicht verstehe ich etwas falsch. Der Code arbeitet im NFQNL_COPY_PACKET
Modus, also ich am empfange das ganze Paket - aber meine Änderungen scheinen auf meine eigene Anwendung beschränkt zu sein - wie man erwarten würde, angesichts der "Kopie" Semantik.
Mein Gefühl ist, dass ich irgendwie von NF_QUEUE
Gebrauch machen soll, aber ich habe es noch nicht ganz gemunkelt. Irgendwelche Zeiger?
(! Wenn es ein einfacherer Mechanismus, dies zu tun ist, die auch Cross-Plattform ist, würde ich gerne davon hören)
Sedate, haben Sie Erfahrung mit der Verwendung von Java (JNI)? Ich bin gespannt, ob es die Leistung verringert. –
@TinaJasmin Leider habe ich keine Erfahrung mit JNI, daher bin ich mir nicht sicher, wie viel von einem Performance-Hit betroffen wäre. Tut mir leid, ich kann nicht hilfsbereiter sein. –