regra de correspondência do iptables para receber o tamanho da janela?

regra de correspondência do iptables para receber o tamanho da janela?

Preciso de uma regra para combinar pacotes sem opções definidas e/ou tamanho de recebimento de janela específico definido:

IP (tos 0x0, ttl 66, id 9000, offset 0, flags [nenhum], proto TCP (6), comprimento 40) yyyy11111 > xxxxhttp: Flags [S], cksum 0xe425 (correto), seq 1729214256, win 715, comprimento 0

Portanto, este pacote ganhou 715, flags [none] -> como eu poderia combinar esses pacotes?

Responder1

Obrigado pelas respostas, mas acho que encontrei a melhor solução (melhor em velocidade):

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

A linha acima garante que se trata de um pacote TCP, então encontre o comprimento do IP e o adote (há uma extração adicional de dois bytes) aos bytes que precisam ser comparados (no exemplo 715). Em uma palavra, todos poderiam extrair/encontrar/comparar cada bit/byte nos pacotes com o ótimo módulo -> u32. Para mais informações:iptables-u32.v0.1

Responder2

Iptables tem opções para lidar com flags TCP e opções TCP, nomeadamente --tcp-option numbere --tcp-flags.

Para o tamanho da janela, você pode usar o módulo string com a opção: --hex-string pattern. Então, a opção será --hex-string 02CBno seu caso. Para obter resultados precisos, você deve restringir o deslocamento da pesquisa usando --frome --to. Olhe paramanual do iptablespara mais informações.

informação relacionada