它是一个分配了公共IP的服务器,我托管了几个Web服务应用程序,包括网站和API.我被告知我的服务器“正在运行一个开放的DNS解析器,用于将拒绝服务攻击转发给外部实体.”
这是什么意思?这次攻击是如何起作用的?我怎样才能保护我的系统免受此类滥用?
在我的特定情况下,有问题的服务器位于Windows Server 2012上,它为Active Directory域提供DNS服务.
解决方法
此攻击的工作方式非常简单 – 因为您的服务器将解析来自任何人的递归DNS查询,攻击者可以通过向您的服务器发送递归DNS查询来使其参与DDoS,该查询将返回大量数据,远大于原始DNS请求包.通过欺骗(伪造)他们的IP地址,他们会将这些额外的流量引导到受害者的计算机而不是他们自己的计算机,当然,他们会尽可能快地向您的服务器和任何其他开放DNS发出请求.他们可以找到解析器.通过这种方式,管道相对较小的人可以通过使用管道上的所有带宽来“放大”拒绝服务攻击,从而为受害者引导更大量的流量.
ArsTechnica did a decent article on the recent DNS Amplification DDoS attack against Spamhaus,值得快速阅读以获得基础知识(以及放大的良好视觉效果).
保护系统免受滥用的最简单方法是限制服务器对本地子网执行递归查找的地址. (具体取决于您正在使用的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),转到“远程IP地址”部分,然后添加LAN上正在使用的子网,以及需要访问Active Directory的服务器的任何面向公众的IP地址.与BIND示例一样,IPv4专用地址空间为127.0.0.0/8 10.0.0.0/8 192.168.0.0/16和172.16.0.0/12.
>老实说,我不确定这会对您的环境产生什么影响,因为您还没有真正说明在您的环境中如何配置DNS和AD,因此,它是最后一个选项.
>
>打开DNS管理器.
>在控制台树中,右键单击适用的DNS服务器,然后单击“属性”.
>哪里?
> DNS /适用的DNS服务器
>单击“高级”选项卡.
>在“服务器选项”中,选中“禁用递归”复选框,然后单击“确定”.
>由于我们有一个多森林环境,并使用条件转发器来工作,我不打算检查那个盒子.也许你可以考虑一些事情.