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.