使用 bind9 拒绝外部域名请求

使用 bind9 拒绝外部域名请求

我有 2 台 bind9 服务器已调整为仅权威 DNS 服务器。我注意到 dnstop 显示大量针对外部financialresearch.gov域(不是我的)的请求。每分钟有超过 50k 个请求。我不明白是谁以及为什么向我发送请求,我该如何阻止它们?

绑定named.conf.options配置:

options {
    directory "/var/cache/bind";

    dnssec-validation auto;

    listen-on-v6 {
        any;
    };

    allow-query {
        any;
    };

    recursion no;

    allow-transfer {
        200.200.200.200;
    };
};
Query Name                Count      %   cum%
--------------------- --------- ------ ------
financialresearch.gov      3442   99.7   99.7
digitalocean.com              2    0.1   99.9

挖掘结果:

; <<>> DiG 9.10.6 <<>> @[my-ns-server] financialresearch.gov
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 1034
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;financialresearch.gov.     IN  A

;; Query time: 67 msec
;; SERVER: [my ns server ip]
;; WHEN: Sun Sep 08 00:50:30 +04 2019
;; MSG SIZE  rcvd: 50

答案1

我不明白是谁、为什么向我发送请求,以及我如何阻止他们?

您的日志文件应该能够告诉您谁发送了此请求,但请注意,您很可能只会看到某些递归 DNS 服务器的 IP 地址,而不是原始客户端的 IP 地址。

至于原因,要么是有人随意浏览您的网站,要么是脚本失控并循环尝试相同的错误查询。或者您的名称服务器使用的 IP 可能之前由该域的名称服务器授权使用,并且某些缓存未自行更新。

由于您的名称服务器已经回复REFUSED他们,因此您无需再执行任何操作。

除非您认为此流量出于任何原因开始损害您的服务器/网络,在这种情况下您可能需要:

  • 尝试联系向您查询此信息的 IP 地址的所有者
  • 更加积极,要么在 IP 级别过滤这个特定地址,要么在特定的 DNS 查询;然而,这通常比任何事情都更有害,因此在 DNS 级别进行速率限制可能会更好,请参阅 bind 中的 RRL 功能。

答案2

这是一次 DDOS 攻击尝试:该主机对查询发出了一条大型 UDP 回复 [针对伪造的源 IP] ANY。您可以拒绝查询,但为了减少名称服务器的负载,请执行以下操作:

iptables -m string -I INPUT -p udp --dport 53 --algo bm --icase --string FINANCIALRESEARCH -j DROP 

相关内容