服务器之生死12小时
网络通信
前一段时间,朋友总给我说他的那两台服务器有点问题,在一两天之内访问量突然变得很大,访问网络的速度有所下降,但是没有出现其他什么情况。我们几个当时很忙也没在乎他的唠叨总觉得我们的又不是大型的IDC谁来找我们麻烦。
结果让人意想不到的事情发生了,那天凌晨1:20我的电话响了,是朋友打过来的,说是服务器很不对劲可能是被攻击了。因为我是他的编外网管,我立即和其他几人赶到……
怎么回事?服务器满负荷运行(一般情况下我们的服务器在1点多访问量是很小的),两台服务器上安装的瑞星杀毒软件不停报警,说是发现Mydoom病毒,并立即清除病毒,可是令人恐怖的是病毒如洪水一般开始涌来,杀毒软件也已经在满负荷运行,服务器CPU占用一直在100%。情况很紧急,如果再这样下去估计杀毒软件首先崩溃。特别是那台邮件服务器,整个服务器资源基本已经被杀毒软件耗掉了,大量的带毒邮件不停的冲击着Mail服务器,但是这时候如果关闭瑞星后果将不堪设想!
先来说一下这次我们被攻击的服务器的配置和网络环境(图1)。
立即用笔记本电脑上网查询Mydoom的资料,连微软网站都将它列为危险病毒(微软相关网址:http://www.microsoft.com/china/security/incident/Mydoom.asp)(图2)。
它通过电子邮件大量传播。该怎么办?邮件服务器是绝对不能关的,但是这样用不了多久服务器崩溃也就完了。情急之中一个助手提出把他的P4机子搬过来做双机负载!想了一想,他的P4 3.0GHZ/512MB的内存,用来做双机负载估计还能挺一会。就这样在做好配置后在邮件服务器上挂上了一台P4的PC,邮件服务器CPU占用明显下降到82%,那一夜我们一直守在服务器旁,截止到早晨8:10经过统计瑞星在邮件服务器上共截获Mydoom病毒3万多个!让我第一次领略到病毒的厉害。到早晨9点已经显得比较平静,网络访问也比较正常,看来一场浩劫是挺过去了。
可是,就在我们大家疲惫不堪准备休息的时候,让我做梦都想不到的事情发生了。Web服务器开始出现大量的非法连接,4块SCSI硬盘突然像着了魔一样狂转起来,这到底是怎么回事,瞬间CPU资源占用达到98%,该怎么办?我马上给一个经销网络设备的同学打电话请求他借给我一台天网硬件防火墙和一台硬件防毒墙。因为我知道我们安装的软件防火墙顶不了多长时间的,时间一长耗尽资源防火墙就是服务器的第一个杀手。
不一会,同学送来了一台天网FW2010硬件防火墙和一台熊猫PAGD Load Balance硬件防毒墙,知道这东西很贵重,没几万元下不来,他亲自给我们送过来了并且只能借给我们3个小时。朋友不解地问安装防火墙就可以了,要防毒墙做什么,可是我有预感接下来的情况不妙。
这时Web服务器CPU占用100%,内存可用为30MB,我心里忐忑不安这可是4GB的内存啊,怎么就能突然间耗得还剩30MB了。恐怖的阴影笼罩在心头,不能再拖了,立即挂上天网防火墙。配置完毕,瞬间指示灯疯狂的闪起来,有大量的非法数据包被挡在了防火墙外。这时看到邮件服务器上的瑞星又开始报警了,还是Mydoom,看来这下要背水一战了,不到5分钟邮件服务器CPU占用达到87%,可用内存45MB,瑞星疯狂杀毒可是病毒就像发了洪水一样涌来,比昨晚的攻击更加猛烈,这样下去服务器绝对挂掉,马上挂上防毒墙,这台防毒墙配置有点麻烦,耽搁了一阵。挂上了!让人惊叹的是不愧是硬件防毒墙,指示灯不停的闪烁,堵截来自四面八方的带毒邮件。现在两台服务器在“双墙防护”下艰难地熬过了这一关。12:15天网首先显示非法连接停止。12:40熊猫防毒墙显示带毒邮件大量减少。
就这样,我们的服务器艰难地挺过了恐怖的12个小时。下午1点服务器完全恢复正常。事后朋友悄悄告诉我是他有3个月没给系统打补丁,这次发生了这事才想起来……
后记:这次我们的服务器被攻击原因是显而易见的──服务器竟然3个月没有打补丁,这种低级错误确实令人很难容忍,相信在很多公司企业和学校的服务器上还是漏洞重重吧,希望看了本文能给你一些启示。
这次的攻击很棘手,病毒和黑客联合攻击,甚至使用上了DDOS,看来目的很明确就是要把我们拖垮。既要防毒又要防黑,在这样的情况下仅依靠单机版本的杀毒软件和防火墙是顶不了事的,因为在大量病毒和非法数据包涌来时,你的杀毒软件和防火墙会耗尽系统资源,成为威胁服务器的头号敌人。
最好要加配硬件防火墙和防毒墙,当然他们的价格还不是你我能承受的。其实对于我们小型的服务器完全可以做到很好的防护,目前由于对DDOS攻击还没有十分有效的解决办法,是因为DDOS利用了TCP/IP协议的漏洞,除非我们干脆不用TCP/IP才能完全阻止DDOS攻击,但是我们现在仍然有对付它的办法,首先我们要在服务器上做相关设置关闭不必要的服务、限制同时打开的Syn半连接数目、缩短Syn半连接的time out 时间,还有就是前面提到的及时打补丁。
其实我们的路由器可以看作是一台简单的防火墙,在路由器上做些设置也能起到很好的作用,现在CISCO的路由器应用很广泛,我们就以CISCO为例子说明做好以下设置: unicast reverse-path、访问控制列表(ACL)过滤、设置SYN数据包流量速率、升级版本过低的ISO、为路由器建立LOG Server。这五步设置好了,很多非法数据包在路由器上就被扔掉了,会给服务器减轻很多压力,不过这时候路由器会承受很大压力,你的服务器可用带宽会变得很小,实在不行可以向ISP报警让他们在主干路由器上限制流量。
我们再回到服务器,有人问为什么服务器配置得好好的补丁也打了,但是在突然遇到大规模攻击的时候怎么那么不堪一击,不一会就垮了?你设想,一个人他或许能抬得起100斤的东西,但是如果你突然给他放上100斤,估计那人立马双膝跪地,这是因为他承受不了那么大的冲击。我们的服务器也是这个原理,所以就要仔细调整服务器的各项参数。
根据我们站点访问量大的特点,对Web服务器和Mail服务器进行适度的预加重处理,即通过预先使服务器达到一定的负载,以使得整个系统的负载在访问量变化时不会出现很大的变化,如果出现了很大的变化,很有可能使得服务器崩溃。这一点很有效。最后一点,要经常查看路由器和服务器日志记录,有很多网管不愿看这个东西觉得麻烦,可是它就是你的网络安全体格表,必须要经常调阅,一旦发现异常立即查找原因。
好了,这次攻击总算结束,由此引来的感想却很多。就在本文截笔时,从各大网络安全场上传来了Mydoom病毒变种来袭……

