|
|
目前对DNS服务器的攻击基本都是假冒IP的潮水攻击。普通情况下,DNS查询是UDP协议,无需像TCP那样的三次握手过程,因此DNS服务器无法识别请求包里的源IP是否真实有效。如果大量的假冒IP进行攻击,就造成名字服务器要么计算资源耗尽,要么带宽耗尽,从而拒绝服务。
; W2 L3 x9 v5 R5 s3 `6 Z( m; I由于客户端是假冒IP,因此DNS服务器端的安全策略,例如DNS RRL、或者iptables,都作用不大。唯一有效的方式是从源头制止这种攻击,即各ISP、IDC都要严格执行BCP 38,拒绝非本网络的源IP对外发起请求。# M2 J7 [0 h; ?! I6 H
8 U$ [6 |0 ]- d# G( h) z/ r/ e除了直接攻击DNS服务器外,还有一种情况是DNS服务器被利用来攻击别人。如果攻击者想攻击某个站点,他假冒这个站点的IP,对互联网上开放的DNS服务器发起查询,DNS服务器会将查询应答包返回给站点IP。由于开放的DNS服务器数量众多(比如运营商的递归服务器、各个公司自己的权威服务器),假如攻击者同时往1000台DNS服务器发起查询,那么1000个服务器的返回包到达后,巨大的流量直接把目标站点干掉。示意图请见:
: R* D' l8 u0 S- }- _# ^" A
% C7 @5 a$ J, u3 W$ m这种情况下,可以利用RRL、iptables来保护自己的名字服务器免被攻击者利用来攻击别人。
. ^ y* U! G# v6 r e, ^5 U) C一个简单的iptables规则可以如下:
, n. U, j( W; P; V5 H2 p$ T7 giptables -I INPUT -p udp –dport 53 -m state –state NEW -m recent –set+ f% p9 Y# x( Y" \, R L0 N8 a
iptables -I INPUT -p udp –dport 53 -m state –state NEW -m recent –update –seconds 60 –hitcount 1000 -j DROP0 Y6 w( e( i- e! O8 [ t
上述规则的作用是,如果在1分钟内对DNS的查询频率超过1000次,就拦截掉该源IP。
4 k2 l" z( i9 ^5 y/ l1 u+ l
7 w: a9 K4 Q/ K0 Y9 p7 V原文:http://www.nsbeta.info/archives/389 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|