Soluzione 1:
L'offset per i flag DNS nel pacchetto IP è di 28 byte ed è necessario controllare gli ultimi 2 bit nella regola 2byte fieldu32 perché è "28&0x000F=0x03"
La mia regola di test è:iptables -A INPUT -m u32 -p udp --sport 53 --u32 "28&0x000F=0x03" -j LOG
A proposito, mi piace l'idea di utilizzare questa regola del firewall per il DNS con orizzonte diviso, andando a testarla per alcune delle mie reti.
Soluzione 2:
Questo elimina le risposte "rifiutate" BIND9 alle attuali query UDP contraffatte!
iptables -F OUTPUT
#iptables -A OUTPUT -p udp --sport 53 -j LOG --log-prefix="OUT-UPD-RAW : "
#iptables -A OUTPUT -m u32 -p udp --sport 53 --u32 "28&0xFFFF=0x8105" -j LOG --log-prefix="STOPPED-DNS-REJECTED-REPLY "
iptables -A OUTPUT -m u32 -p udp --sport 53 --u32 "28&0xFFFF=0x8105" -j DROP
iptables -A OUTPUT -p udp --sport 53 -j LOG --log-prefix="OUT-UPD-SENT: "