
Iptables podem combinar pacotes por string.
Exemplo para DNS:
iptables -A INPUT -i eth0 -p udp --dport 53 -m string --hex-string "|09|proxypipe|03|net" --algo bm -j DROP
Como realizar essa correspondência em nftables?
Responder1
Com nftables, você pode usar a sintaxe Raw Payload Expression (documentadaaqui) para corresponder a um pacote com base no conteúdo de um pedaço de bits.
Portanto, uma regra para bloquear consultas proxypipe.net
seria assim:
meta l4proto udp udp dport 53 @th,160,120 0x0970726f787970697065036e657400 counter drop comment "block queries for proxypipe.net"
O exemplo acima pegaria 120 bits de dados, começando no bit 160 do cabeçalho de transporte ( @th
), e os compararia com o equivalente hexadecimal de|09|proxypipe|03|net
Observe que, diferentemente da versão do iptables, o acima só corresponderia proxypipe.net
a uma posição fixa no pacote. Isso significa que não bloquearia foobar.proxypipe.net
nenhum outro subomain.