我的 Web 服务器时常出现 DNS 问题,某些 ISP 的 DNS 服务器缓存中没有我的主机名,因此无法查找它们。同时,对这些主机名的 OpenDNS 查询可以正确解析。这是间歇性的,但对我来说它总是运行良好,因此当有人报告我的网站连接问题时,很难确定问题所在。
为了弄清楚这一点,我一直在查看我的日志以查看是否存在我应该知道的错误。
我在我的日志中发现了数千条以下消息,来自不同的 IP,但都请求类似的 DNS 记录:
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 的 DNS 缓存中毒漏洞(http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html),我怀疑这些日志记录是否是某些恶意人员试图攻击我的 dns 服务器。
我的日志中有数千条记录,全部请求“burningpianos”,一些请求 com,一些请求 org,大多数请求 mx 记录。请求来自多个 ip,但每个 ip 每天会请求数百次。
所以我觉得这像是一次攻击。有什么方法可以防御呢?
答案1
我无法确切地告诉你它是什么,但我可以告诉你它不是什么:
- 这不是 Kaminsky/缓存中毒攻击。
- Kaminsky 攻击要求查询的域名前面有一个随机的“nonce”
- 你的服务器是权威的,而不是缓存的
- 其数量还不足以构成针对第三方 IP 地址的反射攻击
不管怎样,我认为这是这些域的错误配置,尽管从这里看它们似乎处于离线状态。我可以看到胶水记录中存在一些不一致之处burningpianos.com
-.com
服务器显示它们是 209.97.196.66 和 .67 - 是你吗?
与布拉德的建议相反,我想说,如果可能的话,你应该实际配置您的服务器以返回REFUSED
对这些域名查询的响应。
简单地放弃查询意味着另一端的客户端将继续重试,这似乎已经发生了。
如果你这样做时流量下降,它会立即告诉你源地址是不是欺骗,这将强化它是错误配置的理论。
答案2
嗯,是的可能的您正成为 Kaminsky 缓存投毒的目标。这些请求可能是试图通过在您的 DNS 服务器响应中查找单调递增的查询 ID 来查看您的 DNS 服务器是否易受攻击。但显然您的 DNS 服务器不是公共缓存递归名称服务器,因为所有请求都被拒绝,但我认为这种敲门声对于脚本小子来说是不可避免的。只要您的名称服务器不提供公共缓存递归 DNS,就没有什么可担心的,即使您使用的是易受 Kaminsky 攻击的旧版本。
其他可能性包括,burningpianos.com 方面存在奇怪的配置错误或某种反射攻击企图。这两种情况都很烦人,但只要您没有通过发送拒绝的回复来浪费您的(或反射攻击情况下的无辜者的)带宽,就不会造成危害。我认为由于查询被拒绝,它只是丢弃了请求而不进行回复,但我不是绑定专家,所以我不确定。
答案3
确保allow-query
绑定配置仅允许您希望向其提供 DNS 信息的 IP 范围。
否则,开始阻止正在请求的 IP,因为它看起来像某种垃圾邮件/反向散射,特别是如果每个 IP 都在发出许多重复请求。
答案4
对于某些服务器缓存中没有您的 DNS 解析的情况,请检查 DNS 记录的 TTL。这是生存时间,如果设置为较低的数字,将导致服务器不会长时间缓存您的记录。
但这不应阻止他们解决您的问题,因为他们应该只访问根服务器并查找您的 DNS 服务器并获得权威答案。
电视