Ich beabsichtige, bestimmte Paketdaten im Kernel zu finden und abzufangen (entweder bestimmte Pakete fallenzulassen oder sie umzuleiten). Ein natürlicher Weg besteht darin, alle Pakete irgendwie zu erfassen, ihre Daten zu überprüfen und bestimmte Pakete abzusetzen oder umzuleiten.Wie man Paket auf TCP Schicht im Kern abfängt, um Daten zu analysieren?
Ich habe versucht, sie direkt im Kernel-Code abzufangen (here, bei point, um die Daten in Benutzerbereich zu kopieren), aber die Daten, die vom Server ohne Anforderungen geschoben wird, kann dort nicht zugegriffen werden.
Eine andere Wahl könnte Netfilter Haken wie this post sein. Ein solcher Hook befindet sich jedoch unterhalb der TCP-Schicht, und es scheint, dass Neuordnung und Paketverlust noch nicht behoben sind.
Also frage ich mich, ob es elegante Lösungen gibt, Pakete zu fangen und auf TCP-Ebene zu operieren?
Danke!
Sie auf Snort und schreiben Regeln für das aussehen könnte (oder, wie es ist Open Source, den Code bekommen, und herauszufinden, was sie tun). – Cwissy
@Cwissy Danke! Also darf ich noch eine Frage stellen: Weißt du, ob Snort auf TCP funktioniert (um eine Neuordnung zu ermöglichen)? Mein Bauchgefühl ist, dass es die Neuordnung umgehen könnte, weil es libpcap verwendet, das von tcpdump verwendet wird. Hab ich recht? – zzy
Nein, tut mir leid. Ich stelle mir vor, dass es tun muss, aber wie ich weiß, können Sie passende Regeln schreiben, die tief in die Pakete eindringen, d. H. Wenn eine E-Mail von einer bestimmten Adresse kommt, Pakete von der IP-Adresse fallen lassen, die sie sendet. Dazu müsste jedes Paket geöffnet werden und es wäre sinnlos, wenn nicht die ganze Nachricht in der richtigen Reihenfolge wäre. – Cwissy