如何设置“安全”的开放式解析器?

And*_*w B 28 domain-name-system

这是一个关于保护公共 DNS 解析器的规范问题

开放式 DNS 服务器看起来非常简洁和方便,因为它们提供了我们可以在公司内一致使用的 IP 地址,无论它们位于何处。Google 和 OpenDNS 提供了此功能,但我不确定我是否希望这些公司能够访问我们的 DNS 查询。

我想设置这样的东西供我们公司使用,但我听到很多关于这是危险的做法(特别是在放大攻击方面),我想确保我们这样做是正确的。在构建这种类型的环境时,我需要记住哪些事情?

And*_*w B 33

您需要了解以下几点:


这是一个网络工程问题。

大多数希望设置此类环境的人都是系统管理员。太好了,我也是系统管理员!工作的一部分是了解您的职责在哪里结束,其他人的职责从哪里开始,相信我,这不是系统管理员可以自己解决的问题。原因如下:

  • UDP 是一种无状态协议。没有客户端握手。
  • 针对 DNS 服务器的查询是未经身份验证的两步事务(查询、回复)。服务器无法在回复之前知道源 IP 是否被欺骗。
  • 当查询到达服务器时,阻止欺骗性 UDP 数据包已经太晚了。欺骗只能通过称为入口过滤的实践来防止,该主题包含在文件BCP 38BCP 84 中。这些是由位于 DNS 服务器前面的网络设备实现的。
  • 我们无法为您提供有关如何从头到尾设置数据中心或如何实施这些最佳实践的演练。这些东西非常适合您自己的需求。问答格式对此不起作用,并且本网站无意替代聘请专业人士从事专业工作。
  • 不要假设您价值 10 亿美元的大到不能倒的公司正确实施了入口过滤。

这不是最佳实践。最好的做法是不要这样做。

设置面向互联网的 DNS 解析器非常容易。建立一个机构所需要的研究远远少于了解这样做所涉及的风险。这是善意无意中助长他人的恶行(和痛苦)的案例之一。

  • 如果您的 DNS 服务器将响应它看到的任何源 IP 地址,则您正在运行一个开放式解析器。这些不断被用于针对无辜方的放大攻击每天都有新的系统管理员站出来打开解析器,这使得恶意个人不断扫描它们是有利可图的。您的开放式解析器是否将用于攻击并没有真正的问题:截至 2015 年,这几乎是给定的。这可能不是立竿见影的,但肯定会发生。
  • 即使您使用 DNS 软件(即 BIND)应用 ACL,所做的只是限制您的服务器将回复哪些欺骗性 DNS 数据包。重要的是要了解您的 DNS 基础设施不仅可以用来攻击 ACL 中的设备,还可以用来攻击您的 DNS 服务器与其将响应的设备之间的任何网络设备。如果您不拥有数据中心,那不仅仅是您的问题。

Google 和 OpenDNS 能做到这一点,为什么我不能呢?

有时需要权衡热情与现实。以下是一些很难问自己的问题:

  • 这是您想一时兴起建立的东西,还是您有几百万美元可以投资做的事情?

  • 你有专门的安全团队吗?专门的虐待团队?他们是否都有处理新基础设施滥用和外部投诉的周期?

  • 你有法律团队吗?

  • 当所有这一切都说完并完成后,所有这些努力是否会开始为自己付出代价,为公司带来利润,或者超过处理导致您朝这个方向发展的不便的货币价值?


最后,我知道这个帖子是问答,对大多数与它相关联的人来说有点失望。Serverfault 是为了提供答案,“这是一个坏主意,不要这样做”的答案通常不会被认为很有帮助。有些问题比一开始看起来要复杂得多,这就是其中之一。

如果您尝试完成这项工作,您仍然可以在尝试实施此类解决方案时向我们寻求帮助。要意识到的主要问题是问题本身太大,无法以方便的问答形式提供答案。您需要已经投入大量时间研究该主题,并就您在实施过程中遇到的特定逻辑问题与我们联系。本问答的目的是让您更好地了解大局,并帮助您理解为什么我们无法回答如此广泛的问题。

帮助我们保持互联网安全!:)

  • 作为补充,人们可以通过 [openresolver 项目](http://openresolverproject.org) 检查他们的公共范围内没有开放的 dns 中继。每个人都应该记住,互联网包含大约 [2000 万](http://openresolverproject.org/breakdown.cgi) 接受递归查询的开放中继。后果示例:CloudFlare 遭受了 300 Gb/s DNS 放大攻击,使用了其中的 0.1% (5认同)