首页 > 代码库 > 使用bind新功能rate-limit防止DNS放大攻击和流量攻击

使用bind新功能rate-limit防止DNS放大攻击和流量攻击

    目前好多做DNS解析的服务,都采用了bind开源软件。好处就不多说了。但是在安全方面是个软肋,遭受DDOS流量攻击和放大攻击是常有的事情。在14年12月isc发布了最新的bind9.10-p1稳定版,同时对rate-limit默认支持(之前bind9.9的扩展支持版本,同样支持处于开发功能,需要在编译安装的时候./configure --enable-rrl开启rate-limit功能)。rate-limit可以有效防止放大攻击和DDOS流量攻击。

    DDOS流量攻击就不多说了,关于放大攻击原理,大家可参考博文:

http://blog.sina.com.cn/s/blog_90bb1f200101iazl.html

http://blog.csdn.net/yatere/article/details/6418888

https://blog.cloudflare.com/deep-inside-a-dns-amplification-ddos-attack/

isc官方对放大攻击的解释:

https://kb.isc.org/article/AA-00897/11/What-is-a-DNS-Amplification-Attack.html


正常DNS递归查询
技术分享



DNS放大攻击示例
技术分享


了解了DNS放大攻击后,我们来看下bind最新功能rate-limit的使用方法:

isc官方给出的说明:

https://kb.isc.org/article/AA-00994/189/Using-the-Response-Rate-Limiting-Feature-in-BIND-9.9-Subscription-Version.html

技术分享

在我们的named.conf配置文件中,添加方法可参考如下配置方式:

options{
    .......
     rate-limit {
            ipv4-prefix-length 32;
            window 10;
            responses-per-second 20;
            errors-per-second 5;
            nxdomains-per-second 5;
            slip 2;
              };
    ..........
};


关于参数具体使用说明情况,大家可参考bind手册Page53-P59的说明情况。 


同样,在此之前,或者不愿升级bind的,可通过iptables防止DDOS攻击和放大攻击

iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP

效果也不错。大家可有选择性的去使用。

本文出自 “ComeFrom二龙山下/七道门” 博客,转载请与作者联系!

使用bind新功能rate-limit防止DNS放大攻击和流量攻击