防范服务器拒绝服务攻击技巧
目前网络中有一种攻击让网络管理员最为头疼,那就是拒绝服务攻击,简称DOS和DDOS。它是一种滥用资源性的攻击,目的就是利用自身的资源通过一种放大或不对等的方式来达到消耗对方资源的目的。同一时刻很多不同" m$ y" f- G9 Z& \% a$ p. I
2 z" j. |2 ]- L' X9 @- `$ H8 j 的IP对服务器进行访问造成服务器的服务失效甚至死机。
1 e) ~) x! o* a+ j1 D
3 k; `% p8 n& ?: b, A! A 今天就笔者公司管理服务器的经验为各位读者介绍几个简单有效的防范拒绝服务攻击的方法,虽然不能彻底防护,但在与DDOS的战斗中可以最大限度降低损失。( q5 r* R, a1 D
v) F& I! q; o( t/ ~3 r* q
1、如何发现攻击
6 M$ t: p" q3 T; T/ |% Z2 W
9 o: f* a3 _' t0 ^7 M 在服务器上可以通过CPU使用率和内存利用率简单有效的查看服务器当前负载情况,如果发现服务器突然超负载运作,性能突然降低,这就有可能是受攻击的征兆。不过也可能是正常访问网站人数增加的原因。如何区分这两种情况呢?按照下面两个原则即可确定受到了攻击。
# L+ P& [2 z. \. o5 F : v* a% k- r* r- ]& @
(1)网站的数据流量突然超出平常的十几倍甚至上百倍,而且同时到达网站的数据包分别来自大量不同的IP。6 F8 \) q- F6 L1 n$ M: _1 t
. H. K$ o8 S s, j
(2)大量到达的数据包(包括TCP包和UDP包)并不是网站服务连接的一部分,往往指向你机器任意的端口。比如你的网站是Web服务器,而数据包却发向你的FTP端口或其它任意的端口。+ n$ @/ _& n3 Z& ?2 [: J
- J8 G! U1 V# l- ^ @ C4 u D4 ^* S 2、BAN IP地址法
3 v. v4 V5 v( N+ ^( z2 J! G . s9 s" m( @( q& f a
确定自己受到攻击后就可以使用简单的屏蔽IP的方法将DOS攻击化解。对于DOS攻击来说这种方法非常有效,因为DOS往往来自少量IP地址,而且这些IP地址都是虚构的伪装的。在服务器或路由器上屏蔽攻击者IP后就可以有效的防范DOS的攻击。不过对于DDOS来说则比较麻烦,需要我们对IP地址分析,将真正攻击的IP地址屏蔽。
1 d0 C2 B9 ~4 A, ]6 ]- K# S+ m( a5 J! z 6 a) G5 }+ ?0 h) N3 G5 x
不论是对付DOS还是DDOS都需要我们在服务器上安装相应的防火墙,然后根据防火墙的日志分析来访者的IP,发现访问量大的异常IP段就可以添加相应的规则到防火墙中实施过滤了。: a5 x7 C# k8 f7 N$ w$ Z: O X
/ V! U0 |/ [+ Z
当然直接在服务器上过滤会耗费服务器的一定系统资源,所以目前比较有效的方法是在服务器上通过防火墙日志定位非法IP段,然后将过滤条目添加到路由器上。例如我们发现进行DDOS攻击的非法IP段为211.153.0.0 255.255.0.0,而服务器的地址为61.153.5.1。那么可以登录公司核心路由器添加如下语句的访问控制列表进行过滤。* h& c' ^8 m: }1 `) F' t2 a* L( l
* \$ S4 L9 f7 {, S. |
cess-list 108 deny tcp 211.153.0.0 0.0.255.255 61.135.5.1 0.0.0.0,这样就实现了将211.153.0.0 255.255.0.0的非法IP过滤的目的。 a r7 p( W+ {3 [% C: t1 t2 f
) R6 X; z9 |2 w f& d 小提示:在访问控制列表中表示子网掩码需要使用反向掩码,也就是说0.0.255.255表示子网掩码为255.255.0.0 。" r# F0 M$ p4 N1 c1 W) I
- S O3 _% K! K* R 3、增加SYN缓存法
2 N6 a# c0 Z# r# d* x1 P% c2 G0 Y+ s
: t4 |: \; S) p# Y2 Z 上面提到的BAN IP法虽然可以有效的防止DOS与DDOS的攻击但由于使用了屏蔽IP功能,自然会误将某些正常访问的IP也过滤掉。所以在遇到小型攻击时不建议大家使用上面介绍的BAN IP法。我们可以通过修改SYN缓存的方法防御小型DOS与DDOS的攻击。该方法在笔者所在公司收效显著。
) D) l/ \* C0 \" Q6 s+ v * i& \8 R- @( I5 P
修改SY缓存大小是通过注册表的相关键值完成的。我们将为各位读者介绍在WINDOWS2003和2000中的修改方法。. g! S) e7 s: f. N
! Y! _5 {6 b: u9 o
(1)WIN2003下拒绝访问攻击的防范:( X1 ^! R& V$ n. k, O- q6 l
) ~: D& c2 q- ]5 u! j9 [% s8 P 第一步:“开始->运行->输入regedit”进入注册表编辑器。, o- ?& R% Y- S: N$ I
0 p$ J3 O b9 w2 w# l* ^ 第二步:找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,在其下的有个SynAttackProtect键值。默认为0将其修改为1可更有效地防御SYN攻击。4 U/ q0 j! i, _5 _
+ n$ e6 X7 S, s9 N6 Y' L
小提示:该参数可使TCP调整SYN-ACKS的重新传输。将SynAttackProtect设置为1时,如果系统检测到存在SYN攻击,连接响应的超时时间将更短。
* k, ^5 R3 J$ Y8 y9 f
# j2 S. k$ X" s" a! X$ v 第三步:将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下EnableDeadGWDetect键值,将其修改为0。该设置将禁止SYN攻击服务器后强迫服务器修改网关从而使服务暂停。& v- }' ]! x8 M
8 h+ u1 t) w: g8 a 第四步:将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下EnablePMTUDiscovery键值,将其修改为0。这样可以限定攻击者的MTU大小,降低服务器总体负荷。
& Q% d) r) L; _4 x. Q3 B
7 [# r3 Z( x4 T" n- c8 j6 s( V 第五步:将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下KeepAliveTime设置为300,000。将NoNameReleaseOnDemand
F1 M2 x6 w2 F* Y. |6 O * f; H# b5 `, E
设置为1。# d9 p' _9 U, v$ U3 F! U4 Z8 N
- p6 R; }8 z# j ] (2)WIN2000下拒绝访问攻击的防范:7 E( k% }6 U! D) w
9 b& J4 T L/ S+ P1 b, |: p$ v 在WIN2000下拒绝访问攻击的防范方法和2003基本相似,只是在设置数值上有些区别。我们做下简单介绍。& h- R! K. w8 O: m6 Y/ [& f
6 c: w c; T0 _8 \ 第一步:将SynAttackProtect设置为2。
, s% O) [8 n' H5 L$ b6 u( z 2 k2 h% N0 e7 c. G& N
第二步:将EnableDeadGWDetect设置为0。
, M. j I. d1 O* m
# L7 {; K; k3 C. Q* J6 s. H' h1 Q3 N" ~ 第三步:将EnablePMTUDiscovery设置为0。$ ^" |, z& ^* {& t9 |# W; D; {; U
D: H9 h$ X3 Y 第四步:将KeepAliveTime设置为300000。
7 _0 d1 c! n4 u5 y * j9 i/ j$ d( o4 o7 v1 p1 ~4 m
第五步:将NoNameReleaseOnDemand设置为1。
' ]) N3 a% n w& O9 r * c& G0 L4 E/ l+ [2 O% E) J
总结:经过上面介绍的察觉攻击法,BAN IP法和最后的修改注册表法可以有效的防范DOS与DDOS的攻击。不过由于DDOS攻击的特点,实际上没有一台服务器能够彻底防范它,即使安装了专业的防范DDOS的硬件防火墙也不能百分之百的避免损失。今天介绍的几个方法只是免费的防范手段,实际中能起到一定的效果。
搜索更多相关主题的帖子:
服务器 技巧 攻击