我在计算机安全方面没有最强大的背景,但是昨天我的一台公司服务器被我们的主机关闭了。
这是一台分配了公共IP的服务器,在其中托管了多个Web服务应用程序,包括网站和API。有人告诉我我的服务器“正在运行一个开放的dns解析器,该解析器用于将拒绝服务攻击中继到外部实体。”
这是什么意思?这种攻击如何起作用?以及如何保护我的系统免受此类滥用?
在我的特定情况下,该服务器位于Windows Server 2012上,并且正在为Active Directory域提供DNS。
我在计算机安全方面没有最强大的背景,但是昨天我的一台公司服务器被我们的主机关闭了。
这是一台分配了公共IP的服务器,在其中托管了多个Web服务应用程序,包括网站和API。有人告诉我我的服务器“正在运行一个开放的dns解析器,该解析器用于将拒绝服务攻击中继到外部实体。”
这是什么意思?这种攻击如何起作用?以及如何保护我的系统免受此类滥用?
在我的特定情况下,该服务器位于Windows Server 2012上,并且正在为Active Directory域提供DNS。
Answers:
“开放式DNS解析器”是一种DNS服务器,它愿意为Internet上的任何人解析递归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服务器仅处理对本地环回地址(我可以/应该将其设置为本地环回块,整个/ 8)和3个私有IPv4地址空间的递归DNS请求。
对于您说正在使用的Windows Server 2012,具有以下选项。
Remote IP address
部分,并添加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
。