bind9 奇怪的日志和很多

xyr*_*xus 2 bind

这是我来自 bind 的日志,这些请求不会停止并且命名使用了大量 CPU

    27-Sep-2018 21:34:19.693 queries: info: client 217.107.34.85#25183 (jk1l.ru): query: jk1l.ru IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:19.738 queries: info: client 109.148.129.56#15451 (jk1l.ru): query: jk1l.ru IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:19.796 queries: info: client 217.107.34.85#22807 (isc.org): query: isc.org IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:19.805 queries: info: client 74.99.171.161#80 (jk1l.ru): query: jk1l.ru IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.242 queries: info: client 142.112.165.146#80 (eftps.gov): query: eftps.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.243 queries: info: client 122.114.207.223#80 (aids.gov): query: aids.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.302 queries: info: client 217.107.34.85#36681 (isc.org): query: isc.org IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.368 queries: info: client 92.11.206.190#80 (aids.gov): query: aids.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.426 queries: info: client 74.99.171.161#80 (eftps.gov): query: eftps.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.438 queries: info: client 217.107.34.85#51622 (aids.gov): query: aids.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.570 queries: info: client 70.29.66.36#47689 (eftps.gov): query: eftps.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.794 queries: info: client 109.148.129.56#37777 (eftps.gov): query: eftps.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.918 queries: info: client 74.99.171.161#80 (isc.org): query: isc.org IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.941 queries: info: client 217.107.34.85#16138 (aids.gov): query: aids.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:20.961 queries: info: client 74.99.171.161#80 (isc.org): query: isc.org IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:21.145 queries: info: client 74.99.171.161#80 (aids.gov): query: aids.gov IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:21.156 queries: info: client 92.11.206.190#80 (isc.org): query: isc.org IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:21.381 queries: info: client 68.84.209.198#80 (jk1l.ru): query: jk1l.ru IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:21.382 queries: info: client 68.84.209.198#80 (jk1l.ru): query: jk1l.ru IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:21.417 queries: info: client 74.99.171.161#80 (isc.org): query: isc.org IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:21.421 queries: info: client 68.84.209.198#80 (jk1l.ru): query: jk1l.ru IN ANY +E (192.168.0.200)
27-Sep-2018 21:34:21.513 queries: info: client 68.84.209.198#80 (jk1l.ru): query: jk1l.ru IN ANY +E (192.168.0.200)
Run Code Online (Sandbox Code Playgroud)

我应该担心吗?

Håk*_*ist 5

首先,关于日志条目,只需指出查询日志中的值的含义可能会很有趣:

查询日志条目首先以@0x 格式报告客户端对象标识符。接下来,它报告客户端的 IP 地址和端口号,以及查询名称、类和类型。接下来,它报告是否设置了 Recursion Desired 标志(+ 如果设置,- 如果未设置),如果查询已签名(S),EDNS 与 EDNS 版本号(E(#))一起使用,如果 TCP已使用 (T),如果设置了 DO (DNSSEC Ok) (D),如果设置了 CD (检查禁用) (C),如果接收到有效的 DNS 服务器 COOKIE (V),或者如果 DNS COOKIE 选项没有存在有效的服务器 COOKIE (K)。在此之后,将报告查询发送到的目标地址。

查看您的条目之一(基本上都是一样的):

27-Sep-2018 21:34:19.796 queries: info: client 217.107.34.85#22807 (isc.org): query: isc.org IN ANY +E (192.168.0.200)
Run Code Online (Sandbox Code Playgroud)

我们看到+(需要递归)和E(EDNS)并且 qtype 是ANY.
同样相关的是T(TCP)的缺失。

这是一个组合,当他们知道有大量记录的域名选择时,本质上是优化以获得通过 UDP 发回的尽可能大的响应。(递归能够使用任何选择的域名,EDNS 允许超过 512 字节的 UDP 应答(容易欺骗)。

这或多或少是反射放大 DDoS 攻击的理想选择,在这种攻击中,攻击者将受害者的 IP 地址作为源地址发送大量微小查询,让您的服务器将生成的大量响应发送到受害者的地址。

要解决这个问题,显而易见的事情是:

  • 如果有的话,您可能没有充分的理由允许对公众进行递归。你会想要禁用它!请参阅allow-recursion将递归访问限制为仅您的预期客户端或recursion完全禁用递归。
  • BIND 还内置了Response-Rate Limiting,它允许您对来自允许的客户端的相同查询进行速率限制(请参阅前面的要点)。要么强制超过您配置的阈值的客户端切换到 TCP(不是微不足道的欺骗)以实际获得实际答案或开始完全丢弃响应。

从更大的角度来看,ISP 应该过滤其客户的源 IP(参见BCP38)以限制任何人声称自己是任何 IP 地址的可能性(就像在这种类型的欺骗中所做的那样)。