¿IPtables coincide con la regla para recibir el tamaño de la ventana?

¿IPtables coincide con la regla para recibir el tamaño de la ventana?

Necesito una regla para hacer coincidir paquetes sin opciones configuradas y/o tamaño de recepción de ventana específico establecido:

IP (tos 0x0, ttl 66, id 9000, desplazamiento 0, banderas [ninguna], proto TCP (6), longitud 40) yyyy11111 > xxxxhttp: Banderas [S], cksum 0xe425 (correcto), secuencia 1729214256, win 715, longitud 0

Entonces, este paquete tiene win 715, banderas [ninguna] -> ¿cómo podría hacer coincidir esos paquetes?

Respuesta1

Gracias por las respuestas, pero creo que encontré la mejor solución (la mejor en velocidad):

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

La línea anterior garantiza que es un paquete TCP, luego encuentra la longitud de IP y la adopta (hay una extracción adicional de dos bytes) a los bytes que se necesitan comparar (en el ejemplo 715). En una palabra, todos podrían extraer/encontrar/comparar cada bit/byte en los paquetes con el gran módulo -> u32. Para más información:iptables-u32.v0.1

Respuesta2

Iptables tiene opciones para manejar indicadores TCP y opciones de TCP, a saber --tcp-option numbery --tcp-flags.

Para el tamaño de la ventana, puede utilizar el módulo de cadena con la opción: --hex-string pattern. Entonces, la opción estará --hex-string 02CBen tu caso. Para obtener resultados precisos, debe restringir el desplazamiento de búsqueda usando --fromy --to. Mira amanual de iptablespara más información.

información relacionada