iptables -m string inspecionando somente a carga útil do udp

2

Esta é a regra com a qual estou trabalhando:

iptables -A QUERY -p udp -m length --length 24:63 -m udp -m string --algo bm --hex-string '|ffffffff|' --from 12 --to 28 -j QUERYLIMIT

Existe uma maneira de inspecionar apenas a carga útil do UDP em vez de processar todo o cabeçalho? O problema com essa regra é que o tamanho do cabeçalho pode mudar.

Estou ciente de -m u32 ... essa é a única maneira de lidar com isso?

    
por evcz 26.01.2011 / 00:28

1 resposta

2

Indo pela página iptables man, parece-me que -m u32 é de fato sua melhor aposta se você quiser usar o iptables puro. É a coisa com a qual você está combinando em um determinado local na carga útil, ou você realmente precisa de uma versão somente com carga útil de -m string ?

Se você tiver alguma habilidade de programação, também poderá ver o QUEUE target, que passa pacotes para um daemon do userspace para filtrar. Aqui está um exemplo de uso da tabela QUEUE para verificar os pacotes DNS usando Perl . Observe que isso não será rápido, especialmente se você usar o Perl ou outra linguagem de script. Se você quiser usar C, a biblioteca para olhar é libnetfilter_queue .

Também notei que sua regra atual começa no byte 12, que a posiciona para verificar os endereços de origem e de destino no cabeçalho IP. Não sei se isso está correto ou não, mas é algo a ser lembrado se você substituir a regra por uma regra somente de carga útil.

    
por 16.02.2011 / 08:52