五、如果你此前从未见过这类DNS请求,请立刻丢弃这一数据包
这类请求信息很可能是由伪造的代理服务器所发送的,或者是由于客户端配置错误,也有可能是开发人员用于调试的请求信息。但是我们应该知道,这也有可能是攻击者发送的。所以无论是哪一种情况,都应该直接丢弃这类数据包。
创建一个白名单,在其中添加允许服务器处理的合法请求信息。
白名单可以屏蔽掉非法的查询请求信息以及此前从未见过的数据包。
这种方法能够有效地保护你的服务器不受泛洪攻击的威胁。
除此之外,这种方法也可以保证合法的域名服务器只对合法的DNS查询请求进行处理和响应。
六、要求DNS客户端证实其合法性
身份伪造/欺骗是DNS攻击中常用的一种技术。
如果服务器能够要求DNS客户端出示相应的凭证,并证明其合法性,那么服务器就可以避免接收到泛洪的数据包。
FortiDDoS也采用了这种反欺骗技术。
七、对响应信息进行缓存处理,以防止DNS服务器因过载而导致的宕机
FortiDDoS在产品中内嵌了高性能的DNS缓存工具,再加上硬件的逻辑处理,它每秒钟可以处理上百万条DNS查询请求。
如果某一查询请求对应的响应信息已经存在于服务器的DNS缓存之中,那么缓存就可以直接对请求进行处理。这样可以有效地防止服务器因过载而发生宕机。
八、使用ACLs
有的时候,你可能不希望服务器对查询请求中的某些信息进行处理。而我们可以通过其他的方式轻松地屏蔽掉这些信息。比如说,如果你不希望外部IP地址发送查询请求,那么你可以直接将这类请求数据包丢弃。
九、利用ACLs,BCP38,以及IP地址合法性来对查询请求进行过滤
每一个架设了DNS服务器的企业都应该限制其用户的凭证数量。
当服务器接收到了伪造的攻击数据包时,只需要设置一个简单的过滤器,就可以防止来自全世界各个地区的攻击向量对服务器进行攻击。
还有一种情况,某些伪造的数据包也许是由网络内部的地址所发送的。利用BCP38来对数据包进行过滤,也可以防止服务器接收来自于未知来源地址所发送的数据包。
如果服务提供商还为客户提供了DNS解析服务,那么提供商就可以利用BCP38来防止服务器接收来自于其客户或者内部地址的攻击数据包。
十、提供过量的可用带宽
如果服务器日常需要处理的DNS通信量达到了X Gbps,请确保你所提供的服务带宽不要超过一定的范围。如果你所提供的带宽超出了服务器所需要使用的,那么攻击者就有可能对你的服务器进行泛洪攻击。
总结
在本文中,我们给广大用户提供了十个非常简单的方法,这些方法可以有效地帮助你缓解基于DNS的DDoS攻击,并保证你所提供的服务可以满足客户的使用需求。
原文链接:http://blog.fortinet.com/post/10-simple-ways-to-mitigate-dns-based-ddos-attacks
(责任编辑:安博涛)