Solution 1 :
Le décalage pour les drapeaux DNS dans le paquet IP est de 28 octets et vous devez vérifier les 2 derniers bits dans la règle fieldu32 de 2 octets car c'est "28&0x000F=0x03"
Ma règle de test est :iptables -A INPUT -m u32 -p udp --sport 53 --u32 "28&0x000F=0x03" -j LOG
BTW J'aime l'idée d'utiliser cette règle de pare-feu pour le DNS à horizon partagé, je vais la tester pour certains de mes réseaux.
Solution 2 :
Cela supprime les réponses "rejetées" de BIND9 aux requêtes UDP usurpées !
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: "