什么是开放的DNSparsing器,以及如何保护我的服务器免受黑客的滥用?

我没有最强的计算机安全背景,但昨天我的一台服务器被我们的主机closures了。

这是一个分配了公共IP的服务器,我托pipe了几个Web服务应用程序,包括网站和API。 有人告诉我,我的服务器“正在运行一个开放的DNSparsing器,用于将拒绝服务攻击转发给外部实体。”

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

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

“开放式DNSparsing器”是一个DNS服务器,它愿意parsing互联网上任何人的recursionDNS查询。 这就像一个开放的SMTP中继,简单的缺乏身份validation允许恶意的第三方使用不安全的设备传播他们的有效载荷。 打开SMTP中继,问题是他们转发垃圾邮件。 使用开放的DNSparsing器,问题是他们允许被称为DNS放大攻击的拒绝服务攻击。

这种攻击的方式非常简单 – 因为您的服务器将parsing来自任何人的recursionDNS查询,攻击者可以通过向您的服务器发送recursionDNS查询来返回大量数据,从而使其参与到DDoS中原始的DNS请求包。 通过欺骗(伪造)他们的IP地址,他们会将这些额外的stream量引导到受害者的计算机而不是他们自己的计算机上,当然,他们会尽可能多地向您的服务器发送请求,以及任何其他开放的DNS他们可以findparsing器。 以这种方式,一个pipe道较小的人可以通过使用pipe道上的所有带宽来“扩大”拒绝服务攻击,从而将更多的stream量引导到受害者身上。

ArsTechnica就最近对Spamhaus的DNS Amplification DDoS攻击做了一个体面的文章 ,值得快速阅读以获得基础知识(以及放大的良好视觉效果)。

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


例如,如果我使用的是BIND 9,并且想要防止从外部地址进行DNSrecursion,那么我会在我的configuration文件中使用以下代码:

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; }; 

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


对于您所说的Windows Server 2012,您有以下选项。

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

  • 至less在完美的世界里,没有理由需要在IIS的同一个盒子上运行DNS。
    • 把DNS放在一个没有NAT的内部框中,这样外面的世界就无法得到它,让IIS驻留在世界其他地方的面向外部的盒子上。 您可以使用双归属或防火墙规则来select性地允许从您的IIS服务器访问您的DNS服务器。

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

  • 令我惊讶的是,Windows DNS不允许您限制recursionDNS请求被遵守的地址,所以这实际上是Microsoft推荐的方法。
  • 在这里输入图像描述
    • selectDNS规则(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. 禁用recursion 。

  • 我真的不知道这会对你的环境产生什么影响,因为你没有真正地说明你的环境中DNS和AD是如何configuration的,因此这是最后的select。
  • 在这里输入图像描述
    1. 打开DNSpipe理器。
    2. 在控制台树中,右键单击适用的DNS服务器,然后单击“属性”。
    3. 哪里?
    4. DNS /适用的DNS服务器
    5. 点击高级选项卡。
    6. 在“服务器”选项中,选中“禁用recursion”checkbox,然后单击“确定”。
      • 由于我们有一个多森林的环境,并使用条件转发器来工作,我不打算检查这个框。 也许你也应该考虑一下。