什么是开放式 DNS 解析器,如何保护我的服务器不被黑客滥用?

JSi*_*ris 18 security domain-name-system active-directory ddos windows-server-2012

我没有最强大的计算机安全背景,但昨天我公司的一台服务器被我们的主机关闭。

这是一个分配了公共 IP 的服务器,我在其中托管了多个 Web 服务应用程序,包括网站和 API。有人告诉我,我的服务器“正在运行一个开放的 dns 解析器,用于将拒绝服务攻击中继到外部实体。”

这是什么意思?这种攻击是如何工作的?我怎样才能保护我的系统免受这样的滥用?

在我的特定情况下,有问题的服务器在 Windows Server 2012 上,它为 Active Directory 域提供 DNS 服务。

Hop*_*00b 31

“开放式 DNS 解析器”是愿意为互联网上的任何人解析递归 DNS 查找的 DNS 服务器。它很像一个开放的 SMTP 中继,因为简单的缺乏身份验证允许恶意的第三者使用您的不安全设备传播他们的有效载荷。使用开放式 SMTP 中继,问题在于它们会转发垃圾邮件。使用开放式 DNS 解析器,问题在于它们允许拒绝服务攻击,称为 DNS 放大攻击。

这种攻击的工作方式非常简单 - 因为您的服务器将解析来自任何人的递归 DNS 查询,攻击者可以通过向您的服务器发送递归 DNS 查询来使其参与 DDoS,该查询将返回大量数据,远大于原始 DNS 请求数据包。通过欺骗(伪造)他们的 IP 地址,他们会将这些额外的流量定向到受害者的计算机而不是他们自己的计算机,当然,他们会尽快向您的服务器和任何其他开放 DNS 发出尽可能多的请求他们可以找到的解析器。通过这种方式,管道相对较小的人可以“放大”拒绝服务攻击,方法是使用管道上的所有带宽将大量流量导向受害者。

ArsTechnica 写了一篇关于最近针对 Spamhaus 的 DNS 放大 DDoS 攻击的不错的文章,值得快速阅读以获取基础知识(以及放大的良好视觉效果)。

保护您的系统免受此类滥用的最简单方法是限制您的服务器将对本地子网执行递归查找的地址。(当然,具体取决于您使用的 DNS 服务器)。


例如,如果我使用 BIND 9,并且想简单地防止来自外部地址的 DNS 递归,我将在我的配置中使用以下代码:

options {
    directory "/var/named/master";
    allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };
Run Code Online (Sandbox Code Playgroud)

这行代码告诉我的 BIND 服务器只处理本地环回地址(我想我可以/应该设置为本地环回块,整个 /8)和 3 个私有 IPv4 地址空间的递归 DNS 请求。


对于您说正在使用的 Windows Server 2012,您有以下选项。

1. 将您的 DNS 服务器与 IIS 服务器分开。

  • 至少在一个完美的世界中,您没有理由需要在与 IIS 相同的机器上运行 DNS。
    • 将 DNS 放在未经过 NAT 的内部框上,这样外界就无法访问它,而让 IIS 驻留在世界其他地方可以访问的面向外部的框上。您可以使用双宿主或防火墙规则有选择地允许从 IIS 服务器访问您的 DNS 服务器。

2. 使用防火墙阻止外部 DNS 请求,例如内置的 Windows 防火墙。

  • 令我惊讶的是,Windows DNS 不允许您限制递归 DNS 请求的地址,因此这实际上是 Microsoft 推荐的方法。
  • 在此处输入图片说明
    • 选择 DNS 规则(TCP 和 UDP),转到Remote IP address部分并添加 LAN 上使用的子网,以及需要访问 Active Directory 的任何面向公众的服务器 IP 地址。与 BIND 示例一样,IPv4 私有地址空间是127.0.0.0/8 10.0.0.0/8 192.168.0.0/16172.16.0.0/12

3.禁用递归

  • 老实说,我不确定这会对您的环境产生什么影响,因为您还没有真正说明如何在您的环境中配置 DNS 和 AD,因此,这是最后一个选项。
  • 在此处输入图片说明
    1. 打开 DNS 管理器。
    2. 在控制台树中,右键单击适用的 DNS 服务器,然后单击属性。
    3. 在哪里?
    4. DNS/适用的DNS服务器
    5. 单击高级选项卡。
    6. 在服务器选项中,选中禁用递归复选框,然后单击确定。
      • 由于我们有一个多林环境,并使用条件转发器来工作,我不打算选中那个框。也可能是您需要考虑的事情。

  • 那么 8.8.8.8 或 1.1.1.1 如何防止自己成为开放解析器呢? (5认同)