1.要想防护DDOS,就必须要了解DDOS技术。如:DDOS原理,攻击种类,攻击软件,攻击特征,检测与防护的软件、解决方案。作为运维人员,在入行前,无论是自学还是参加机构培训,都应该获得一些这方面的知识。如果确实不清楚,请认真阅读下本文。题外话:徒弟要下山了,师傅起码要叮嘱下江湖险恶的事情及江湖规矩吧!这是老男孩在linux培训时学生就业前必须要讲的内容。本点内容老男孩称之为“知彼”。

2.对网站进行DDOS压力测试。工作中最好象普通压力测试一样,对自己的网站做适当的常见DDOS压力测试(访问低谷期),然后通过检测工具找到网站架构中弱点,加以优化、弥补之,老男孩称之为“军事演习”(数据库、存储等的备份等都要实际恢复模拟演练,负载均衡高可用也是如此)。只有平时多做未雨绸缪,并且模拟实战演练,这样在真正遇到问题时才能镇定自若,从容解决问题。作为运维人员,我们要充分考虑这些问题,从多方面着手解决问题,不排除向公司申请资金,购买设备武装运维部。

3.选择口碑好、服务好、安全防护好点的机房,贵的机房有其贵的道理,这点一定要灌输给大老思想,别死抠便宜机房,实际上大方向可以说为公司业务考虑,小方面可理解为自己日后出问题免责。另外,选IDC时,购买机房带宽就把这些事谈好,有没有防火墙、电力冗余设备,临时紧急问题能否帮我们(比如临时把带宽从500M提升到1000M)。还有一些相关问题,这里猫腻很多,参考下老手的经验比较好些。

4.网站架构尽量无单点,做集群高可用性部署,前后端多架设cache。互联网缓存无处不在(无论是网站架构中还是硬件设备里)。本点内容老男孩称之为“要让缓存无处不在”。

5.系统(包括web,db)自身优化及安全配置,不要动不动就配置6553510吨的汽车非要标着能装20吨的货物,20吨来了,汽车直接变废铁了。服务器服务连接数量等要有限制,这样不至于大攻击大流量把服务器压垮,大不了慢点而已,可以连接上查看问题。本点内容老男孩称之为“定量”。

6.平时预留可以撑住增加30%以上流量的突发情况的资源,资源包括带宽、服务器、架构承受并发能力。要通过数据说话。大家观察下门户朋友的分享,都是靠数据来说话,定性定量来分析。其实,这是项目管理的基本知识,对风险的把控,不光体现在这里,做人做事方方面面都要有风险的把控,比如,和美女约会,说19:00到,要把堵车等等时间都计算了,别可丁可卯。本点内容老男孩称之为“知己”。

7.网站架构优化(老男孩发表过7层架构优化思路,多用缓存,如WEB,DB缓存内容),可参考老男孩的博文(图文并茂):如何才能做到网站高并发访问http://oldboy.blog.51cto.com/2561410/615721

8.多把内容或内容放在CDN,既请老虎帮忙!比如把www.etiantian.org首页,二级导航页、及其他静态页放cdn,JS,CSS及图片、视频都放CDN。当然,这需要类似7点的好的网站架构。本点内容老男孩称之为狐假虎威

9.有流量有资金的公司可以通过DNS做跨机房策略,打不过他们,咱可以跑。CDN公司经常会遭受多达数G的流量攻击,整个机房都可能瘫掉,咋办?把业务切走、分流,做资源调度。题外话:一个高级网站架构人员在维护网站时就象当年主席在千里之外运筹帷幄的感觉一样,真的,很有成就感!内部切业务,切机房,分流大股敌人为小股围而歼之,再分流再围而歼之!本点内容老男孩称之为三十六计,走为上策

10.软硬件防护。apache,nginx都有相应的DDOS防护模块,iptables,做单IP的并发限制,流量限制,syn及部分攻击限制。硬件DDOS防火墙黑洞、金盾都可以使用(这里有一点注意,要本分做人,不要贪图小便宜,欺骗得罪安全厂商,比如,试用了设备,然后无理由不买,很多问题的恶果都是自己不经意间埋下的)题外话:为公司省钱不花钱而维护不好网站,这不是公司看到的,也不是我们期望的。适当花钱把事办好就是完美。

11.保留各种攻击证据,日志,有可能的话,打110报警,大规模攻击都不是无目的的。同行竞争、恶意竞争、敲诈勒索都有过案例。这些事辅助手段,不能报警后就等死,或者依靠110解决。现在很多攻击还是比较难从法律解决的,期待,以后能好些。

12.不在群里、论坛、BLOG等处发布攻击性、炫耀式的言论。尤其不能暴漏公司的地址等信息。

13.当发生DDOS攻击问题时,不要自己死扛,要第一时间主动和领导汇报,寻求更多的资源协助才是道理。这个问题很多运维人员都有。

14.有很多疑似DDOS攻击,如服务器中毒外发流量,CDN切机房加机房疯狂来抓数据、内容被盗链(曾经遇到一天1-2个图片跑了20T的流量)等,要有判断方法。比如一个病人明明得了感冒,非当非典治,那估计好好的病人可能就被治挂了。很多疑似DDOS攻击,都可以再一个比较短的时间得到解决,关键就是如何快速判断攻击源及攻击类型,这个是运维人员需要提高的地方(自身能力及运维意识方面提升)。

15.平时多交往一些你身边的运维高手、牛人。当真正发生问题时,一个电话也许就能解决你半天都解决不了的问题。老男孩就经常接到一些IT好友们的各种求助电话!其中包括DDOS攻击及疑似DDOS攻击的求助。不要自封为王,闭门造车、孤立自己!低手,中手,高手都是一样,老男孩更不例外!三人行!

16.了解“自己”,学会扬长避短。架构在好的网站,其实也是有弱点的。我们要把弱点隐藏好,比如:普通站点bbs搜索页、及动态直接调数据库及存储的程序地址等等。弱点如果被发现,黑客就可以用比较小的代价就让网站发生致命的结果。在动物界以小拨千斤的例子很多。

17. 古有谈虎色变,今有谈癌色变,咱们互联网界就是谈DDOS色变了。太多朋友都说,“什么真正DDOS防不了之类的泄气的话”! 老男孩想说,只有想不到的,没有做不到的!我们作为运维人员,首先要尽力做好自己。该防护的的优化的做好,该提醒的提醒老大。居安思危,多提前思考问题,做适合你公司的解决方案,选机房选设备等方案建议完,让老大拿主意。这样退一步,出问题也不是你的问题了,你该做的做了,该提醒的提醒了(不要口头),以解决方案的形式出现。最好图文并茂的专业解决方案形式发给老大及相关核心技术。以免老大不认账。

    实际上DDOS虽然常见,但真正有威胁的并不太多,所以,请读者也不要人人自危,谈DDOS色变。努力做好自己就可以了。
======================================================================

附录:没完成的DDOS内容

1)什么是DOS,DDOSDDOS的基本原理?

2)为什么会遭受DDOS攻击?

3)攻击类型、种类、攻击原理?

    SYN Flood攻击

    IP欺骗DOS攻击

    UDP洪水攻击

    Ping洪流攻击

    泪滴(teardrop)攻击

    Land攻击

    Smurf攻击

    Fraggle攻击

 4)曾经流行的部分DDOS压力测试工具列表

    arp并发压力测试软件.rar       

    CC并发压力器.rar              

    FastSend.rar              

    UDP flood.rar             

    阿拉丁UDP洪水并发压力器.rar   

    安防cc.rar                

    联盟DDOS并发压力器.rar 

    凤凰DDOS压力测试.rar                 

    TSOC安全配置核查服务.rar                       

    Web漏洞扫描.zip                    

    科来网络分析系统.rar                                               

    猎狐.zip                                                   

    傀儡僵尸软件.rar

5)不同攻击工具的攻击特征?

6)有哪些检测DDOS攻击的工具?

   SYN Flood攻击检测工具.rar

7)疑似DDOS攻击案例及实战解决过程。

8)真正DDOS攻击案例及实战解决过程。

  参考http://oldboy.blog.51cto.com/2561410/741596

============================================================

    老男孩从机房选用、硬件防护、系统优化、整体架构、日志分析、江湖求助分析的可谓面面俱到,这里面所提到的一些,很多时候会被大家所忽视,针对这些我来谈谈我的理解。

1、“知彼”:就像打仗一样,要想防范敌人,就必须对敌人有一番了解,防范DDOS攻击也一样,要了解DDOS的几种攻击类型、攻击原理、攻击特征及,抓包和分析日志那是必须的,,只有知道了这些信息,才能制定应对措施。

2、知已:“知彼”以后还要“知己”,要了解自己了的带宽、服务器、防火墙、架构的承受能力,再就是制定相应的应急预案,有什么情况下起用什么样的应对策略,让处理问题有序的进行,以保证业务正常对外提供服务为原则。

3IDC机房的选用:这一点确实很关键,要寻找一些有实力、能提供更高级别防护、当面对攻击时能快速响应并配合做各种防护策略的IDC厂商合作,当然这种机房的价格也就相对会高些,这个根椐实际情况来考虑,成本和安全找到一个平衡点,不要为公司省钱,当出现问题时,公司可能就不会考虑你为公司省了多少,而是损失了多少。

4、架构设计:对于整体架构的设计要基于核心单点无单点(如果要求更高些,可以整体无单点)、多缓存的原则,保证高可用,跨ISP、跨机房多点分部式部署,不能在一颗树上吊死,大量的DDOS攻击导致整个机房跨掉的我是碰到过好几次,就像老男孩说的,实在抗不起我可以躲,再不行就玩躲猫猫的游戏。

5、系统优化:操作系统内核优化、程序层的代码优化、数据库层的结构优化、存储层的性能优化、业务层的业务逻辑优化、整体构架的节点优化 … … ,对于老男孩所说的“不要动不动就配置65535很有感触,很多运维人员总觉得配置的最大连接数越大越好,其实不然,这个要根椐实际情况来设置,如果把连接数设的太大,一但攻击来了,还没等你去分析问题,服务器就已经挂了。

6CDN:借助CDN来分担压力。

7、硬件防护:对于软件防护,我想一般在对操作系统内核做优化的时候这些都已经考虑进去了,对于硬件防护我们可以使用傲盾、黑洞等专业的防DDOS防火墙组建集群。

8、数据包及日志分析:对于那种四两拨千斤(SYN floodCC)或者疑似DDOS的攻击,可以通过分析数据包、日志来按制定防护策略,如果说要报警,这些也可以为警方提供线索。

9、疑似DDOS攻击:如果文件被盗链、服务器中毒、前端缓存服务器设置不合理、程序BUG、交换机(路由器)故障等,要通过抓包分析、日志分析来定位问题。

10、第三方求助:对于大量的攻击可以请求上层的IDC或者ISP协助处理,对于一些无法准确判断的攻击方式可以请求行业内相熟的高手来协助处理,懂得求助往往事半功倍,还能快速的处理问题。

还是那句话,当面对问题了,一定要冷静的分析问题,分析   分析   再分析  解决问题 ,还有就是要会利用变通的手法去解决问题。


本文出自 “老男孩的linux博客” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/845349