我想删除包含 的传入 DNS 响应10.10.34.35
。我该怎么做?
我尝试过这样的方法:
iptables -I INPUT -m udp -p udp --sport 53 -m string --algo kmp --hex-string '|31 30 02 31 30 02 33 34 02 33 35|' -j DROP
但它不会丢弃它们,我仍然会收到它们。然而,简单地这样做会iptables -I INPUT -m udp -p udp --sport 53 -j DROP
阻止所有来自端口 53 的消息,但我想选择其中一部分包含10.10.34.35
响应的消息。
答案1
首先,DNS使用UDP和TCP。
其次,A记录的线路表示在RFC 1035中定义如下:
3.4.1. A RDATA format
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
where:
ADDRESS A 32 bit Internet address.
因此,IPv4 地址不会像您尝试匹配时那样被编码为字符串,而是被编码为 32 位整数,因此值为 10、10、34、35