Domain-Name-System
iptables:無法丟棄包含特定 IP 地址的傳入 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
作為響應。
首先,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