我的DNS服务器被攻击了吗? 我该怎么办呢?

我一直有一些间歇性的DNS服务器的问题,其中某些isp的DNS服务器没有我的主机名在caching中,并无法查找它们。 与此同时,为这些主机名parsing查询正确。 这是间歇性的,对我来说总是很好,所以当有人向我的网站报告连接问题时很难确定问题。

在试图弄清楚这一点,我一直在看我的日志,看看是否有任何我应该知道的错误。

我在我的日志中发现了成千上万个来自不同ip的消息,但是都请求类似的dnslogging:

May 12 11:42:13 localhost named[26399]: client 94.76.107.2#36141: query (cache) 'burningpianos.com/MX/IN' denied May 12 11:42:13 localhost named[26399]: client 94.76.107.2#29075: query (cache) 'burningpianos.com/MX/IN' denied May 12 11:42:13 localhost named[26399]: client 94.76.107.2#47924: query (cache) 'burningpianos.com/MX/IN' denied May 12 11:42:13 localhost named[26399]: client 94.76.107.2#4727: query (cache) 'burningpianos.com/MX/IN' denied May 12 11:42:14 localhost named[26399]: client 94.76.107.2#16153: query (cache) 'burningpianos.com/MX/IN' denied May 12 11:42:14 localhost named[26399]: client 94.76.107.2#40267: query (cache) 'burningpianos.com/MX/IN' denied May 12 11:43:35 localhost named[26399]: client 82.209.240.241#63507: query (cache) 'burningpianos.com/MX/IN' denied May 12 11:43:35 localhost named[26399]: client 82.209.240.241#63721: query (cache) 'burningpianos.org/MX/IN' denied May 12 11:43:36 localhost named[26399]: client 82.209.240.241#3537: query (cache) 'burningpianos.com/MX/IN' denied 

我已经读过Dan Kaminsky的dnscaching中毒漏洞( http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html ),我想知道这些日志logging是否是某个恶魔企图攻击我的DNS服务器。

在我的日志中有成千上万的logging,所有请求“燃烧的钢琴”,一些为com和一些org,最寻找一个mxlogging。 有来自多个IP的请求,但每个IP将每天要求数百次。

所以这就像一个袭击闻起来像我。 什么是防御呢?

我不能确定它是什么,但我可以告诉你什么不是:

  1. 这不是Kaminsky / cache中毒攻击。
    • Kaminsky攻击要求在查询的域名前面有一个随机的“nonce”
    • 你的服务器是权威的,而不是caching
  2. 对第三方IP地址进行reflection攻击的体积不够大

对于它的价值,我认为这是这些域的​​错误configuration,虽然从这里他们似乎是脱机。 我可以看到在burningpianos.com的胶水logging中有一些不一致的地方burningpianos.com服务器说他们是209.97.196.66和.67–是吗?

相反,布拉德的build议,我会说,如果可能的话,你应该实际configuration你的服务器返回一个REFUSED响应这些域名的查询。

简单地删除查询意味着对方的客户将继续重试,这似乎已经发生了。

如果这样做时stream量下降,它立即告诉你,源地址没有被欺骗,这将加强理论,它是错误的configuration。

那么有可能你是Kaminskycaching中毒的目标。 这些请求可能会尝试通过在您的DNS服务器的响应中查找单调递增的查询标识来查看您的DNS服务器是否易受影响。 但显然你的DNS服务器不是一个公共cachingrecursion名称服务器,因为所有的请求都被拒绝了,但是我猜想这样的门户敲打对于脚本小子是不可避免的。 只要您的域名服务器不提供公共cachingrecursionDNS,即使您的旧版本容易受到Kaminsky攻击,也没有什么可担心的。

其他的可能性包括:对burnpianos.com的怪异的错误configuration或某种尝试的reflection攻击。 这两种方式都很烦人,但不会造成危害,只要您不会因为发送拒绝回复而浪费您的(或者在reflection攻击情况下的无辜者)带宽。 我会假设,因为查询被拒绝,只是放弃了没有答复的请求,但我不是一个绑定专家,所以我不确定。

确保绑定configuration中的allow-query只允许您希望为您的DNS信息服务的IP范围。

否则,开始阻止正在请求的IP,因为它似乎是某种垃圾邮件/反向散射,特别是如果每​​个IP都发出许多重复的请求。

它看起来可能是您的服务器上的DNS攻击或试图附加您看到的地址。 伪造导致风暴的请求的udp地址很容易到达目标服务器。 logging查询可能会让你的DNS服务器变得更容易,但是看到这种活动很有帮助。

你可能会想允许每个人查询。 如果你阻止任何人,那么他们将无法查找你的服务器。 同时检查你的所有名字服务器是否提供了良好的数据。 dnscog.com可以从外面检查你的服务器。

确保你阻止外部地址的cachingrecursion和查询。

关于一些服务器没有你的dnsparsingcaching..检查您的DNSlogging的TTL。 这是生存时间,如果设置为较低的数字,将导致服务器不能长时间cachinglogging。

这不应该阻止他们解决你,虽然他们应该只是打一个根服务器,并查找您的DNS服务器,并得到一个权威的答案。

Ť

只是通过,但在这种情况下,我发现allow-query-cache指令是为了避免这个消息而设置的。 将以下内容添加到/etc/bind/named.conf.options文件中:

 // only localhot can query cached recursive dns entries allow-query-cache { 127.0.0.1 }; 

资料来源: https : //kb.isc.org/article/AA-00503/0/Whats-the-difference-between-allow-query-cache-and-allow-recursion.html