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

Modified on: Sat, 24 Aug 2019 12:20:02 +0800

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

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

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

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

最佳答案

“开放式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; };

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


对于您说您正在使用的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上正在使用的子网,以及需要的任何面向公众的服务器IP地址访问Active Directory。与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. 在“服务器选项”中,选中“禁用递归”复选框,然后单击“确定”。

      • 由于我们有一个多森林环境,并使用条件转发器来工作,我不会检查那个框。也可以考虑一些事情。
作者:,HopelessN00b

相关问答

添加新评论