iptables:无法删除包含特定 IP 地址的传入 DNS 响应

iptables:无法删除包含特定 IP 地址的传入 DNS 响应

我想删除包含 的传入 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使用UDPTCP。

其次,A记录的线路表示在RFC 1035中定义如下:

3.4.1. A RDATA format

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ADDRESS                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

ADDRESS         A 32 bit Internet address.

因此,IPv4 地址不会像您尝试匹配时那样被编码为字符串,而是被编码为 32 位整数,因此值为 10、10、34、35

相关内容