iptables para receber o tamanho da janela?

2

Eu preciso de uma regra para corresponder aos pacotes sem o conjunto de opções e / ou o conjunto de tamanho de recebimento de janelas específico:

IP (tos 0x0, ttl 66, id 9000, offset 0, flags [none], proto TCP (6), length 40) y.y.y.y.11111 > x.x.x.x.http: Flags [S], cksum 0xe425 (correct), seq 1729214256, win 715, length 0

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

    
por neoX 24.11.2011 / 23:03

2 respostas

5

Obrigado por 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 assegura que é um pacote TCP, depois encontra o comprimento IP e adota (há uma extração adicional de dois bytes) para os bytes que precisam comparar (no exemplo 715). Em uma palavra todos poderiam extrair / encontrar / comparar cada bit / byte nos pacotes com o grande módulo - > u32. Para mais informações: iptables-u32.v0.1

    
por 26.11.2011 / 03:03
1

O Iptables tem opções para lidar com sinalizadores TCP e opções TCP, ou seja, --tcp-option number e --tcp-flags .

Para o tamanho da janela, você pode usar o módulo de string com a opção: --hex-string pattern . Então, a opção será --hex-string 02CB no seu caso. Para obter resultados precisos, você deve restringir o deslocamento de pesquisa usando --from e --to . Veja o manual do iptables para mais informações.

    
por 25.11.2011 / 13:22