iptables-Übereinstimmungsregel zum Empfangen der Fenstergröße?

iptables-Übereinstimmungsregel zum Empfangen der Fenstergröße?

Ich brauche eine Regel zum Abgleichen von Paketen ohne festgelegte Optionen und/oder mit festgelegter spezifischer Empfangsfenstergröße:

IP (tos 0x0, ttl 66, id 9000, offset 0, flags [keine], proto TCP (6), länge 40) yyyy11111 > xxxxhttp: Flags [S], cksum 0xe425 (korrekt), seq 1729214256, win 715, länge 0

Dieses Paket hat also Win 715, Flags [keine] -> wie könnte ich solche Pakete zuordnen?

Antwort1

Vielen Dank für die Antworten, aber ich glaube, ich habe die beste Lösung (mit der besten Geschwindigkeit) gefunden:

iptables -I INPUT -m u32 --u32 "6&0xFF=0x6 && 0>>22&0x3C@12&0xFFFF=0x02CB" -j LOG

Die obige Zeile stellt sicher, dass es sich um ein TCP-Paket handelt, ermittelt dann die IP-Länge und passt sie (es werden zusätzlich zwei Byte extrahiert) an die Bytes an, die verglichen werden müssen (im Beispiel 715). Mit einem Wort könnte jeder mit dem großen Modul -> u32 jedes Bit/Byte in den Paketen extrahieren/finden/vergleichen. Weitere Informationen:iptables-u32.v0.1

Antwort2

Iptables verfügt über Optionen zum Umgang mit TCP-Flags und TCP-Optionen, nämlich --tcp-option numberund --tcp-flags.

Für die Fenstergröße können Sie das String-Modul mit der Option: verwenden --hex-string pattern. In Ihrem Fall lautet die Option also --hex-string 02CB. Um genaue Ergebnisse zu erhalten, sollten Sie den Suchversatz mit --fromund einschränken --to. Sehen Sie sich aniptables-HandbuchFür mehr Information.

verwandte Informationen