Dropping Pakete mit passendem String iptables Tropfen alle nachfolgenden Pakete ohne Spiel
-
06-07-2019 - |
Frage
Ich versuche, einen Wurm Filterung Dienstprogramm auf Anwendungsebene zu schreiben.
Ich habe Setup Regel folgende TCP-Paket mit spezifischer Teilkette fallen zu lassen.
iptables -A INPUT -p tcp -m String --string "test" -j DROP --algo KMP
Sobald jedoch eine Paketfolge mit passendem wird alle nachfolgenden Pakete gefunden, auch mit nicht passenden Strings werden fallen gelassen, bis ich die Regel aus iptable spülen.
ich würde gerne wissen, warum dies passiert ist, und was ist die Lösung für sie.
Dank
Lösung
tcp orientierte zuverlässiges Protokoll verbunden, die die Folge von Datenhält gesendet werden. es hält zu versuchen, die bestimmte Nutzlast zu ändern, bis es dort erreicht, so dass Sie nicht andere nachfolgende Nutzlast bis die älteren erreicht senden können, das ist, warum Sie das Gefühl, dass alle nachfolgenden Pakete fallen gelassen werden.
Wenn Sie die ähnliche Regel für udp gesetzt wird dies nicht passieren Sie in der Lage sein wird, alle nachfolgenden Pakete zu empfangen, die die Zeichenfolge nicht übereinstimmen. dies liegt daran, dass udp ein verbindungsloses, unzuverlässiges Protokoll ist.
Andere Tipps
Ein bisschen spät hier, aber die Leute mit ähnlichen Problemen zu sehen. Eine Möglichkeit, dies zu umgehen, ist diese Regel in der RAW-Kette zu tun. ALLE Pakete werden hier vor jeder Art von conntrack getroffen wird auf das Paket gelegt, deshalb ist es am besten Filterung zu tun hier.
iptables -A PREROUTING -t raw -p tcp -m string --string "test" -j DROP --algo kmp