我一直有一些间歇性的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将每天要求数百次。
所以这就像一个袭击闻起来像我。 什么是防御呢?
我不能确定它是什么,但我可以告诉你什么不是:
对于它的价值,我认为这是这些域的错误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