我有 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