让Apache服务器远离DoS攻击
时间:2006-09-02 来源:liuxingyuyuni
让Apache服务器远离DoS攻击 |
想像你拥有一家外卖快餐店,你同一条街上的竞争对手一直都想把你挤垮。你过去晚上的工作一向是井井有条的,可是有一个晚上,你的电话响个不停,一笔又一笔的订单接踵而至,你的司机整晚都忙着送东西,结果那些订餐的地址却不存在。而与此同时,你的老顾客尝试通过电话订餐,却怎么也打不通。这时,你的竞争者会顺理成章地接管本该属于你的顾客-往往是倾向于向你订餐而忽略你的竞争对手的那些顾客。这样连续几晚,你将会面临破产,而你的竞争对手的业务则进入了新的历程。 如果你在互联网上开展商务活动,你很容易受到恶意的拒绝服务攻击 (DoS),而任何运行Web站点、FTP或者邮件管理的服务器都会受到不同程度的攻击。 我们很容易想到:竞争对手、恶意的黑客或是对公司极度不满的旧员工都希望给公司带来麻烦。他们选择的方法可能就是让公司的网站或是其他基于服务器的公共服务离线,或者至少拖慢其速度以至部分不可用。有很多方法可以达到这一目的,包括发送大量请求以占用大部分带宽的,或是让服务器超过极限的洪水攻击。 攻击可能产生在服务器上、服务器所在的网络中或是服务器的操作系统里。同样存在分布式的攻击,包括病毒分布攻击、随机分布式服务器攻击、同步持续攻击、协同攻击等。 你应该怎么在Apache服务器上避免这样的攻击呢?首先,让我们来分析这类攻击的原理,以便了解它们是怎么影响你的服务器的。
数据包洪水攻击
磁盘攻击
路由到不可达 Apache服务器最大的缺点是,它的普及性使它成为众矢之的。Apache服务器无时无刻不受到DoS攻击的威胁。
Apache服务器的脆弱性 服务器代码另一个可怕的脆弱性是,内存分配特性为服务、客户机功能效率成分提交善意的请求。Apache 服务器可能会因为RAM的不断消耗而崩溃。 自我防护的方法
系统管理员主机对主机攻击防范 如果你正在运行v1.3.2版本的Apache 服务器,你可以抵御这样的攻击。这非常容易:假设上面谈到的主机对主机攻击成功了,大量的纯报头请求会强烈的轰击服务器。你的解决方案就是MaxClients 指令,系统管理员可以通过这个指令设置报头数量的最大值,就可以在内存耗尽以前中断主机对主机攻击。
在Apache服务器上防范繁殖性攻击 Apache服务器特别容易受攻击,无论是对分布式拒绝服务攻击还是隐藏来源的攻击。为什么?因为Apache服务器无处不在。在万维网上分布着无数的Apache服务器,因此为Apache定制的病毒 (特别是SSL蠕虫) 潜伏在许多主机上;带宽如今已经非常充裕,因此有很多的空间可供黑客操纵。Apache系统趋向稳定,很少需要生机,因此这些问题是让人头疼的。 攻击蠕虫利用服务器代码的漏洞,通过SSL握手将自己安装在Apache服务器上。黑客利用缓冲溢出将一个伪造的钥匙安装在服务器上(适用于运行低于0.9.6e 版本的OpenSSL的服务器)。攻击者能够在被感染的主机上执行恶意代码,在许多这样病毒的作用下,下一步就是对特定的目标发动一场浩大的分布式拒绝服务攻击了。通过将这样的蠕虫散播到大量的主机上,大规模的点对点攻击得以进行,对目标计算机或者网络带来不可挽回的损失。 你该做些什么?还不赶紧升级你的OpenSSL!升级到0.9.6e或者更高版本;伪造的钥匙将起不了任何作用,也不能渗透到系统里。一些反病毒程序能发现并杀死SSL蠕虫,但是别指望这些:蠕虫可能产生变体,从而逃脱反病毒软件的追捕 。注意重启Apache可以杀死这样的病毒,但是对防止将来的感染没有任何意义。
防火墙仍然非常有价值 当拒绝服务攻击是一次网络攻击的时候,防火墙确实很受用。这种类型的攻击的实质是数据包洪水入侵,防火墙能发现那些不正常的数据包并向你提示可疑的事件。此外,你的防火墙甚至可以检查进入你主机的远程用户。
如何检测攻击 DoS服务器攻击的检测要麻烦一些,因为在服务器级很难分辨请求是合法的还是伪造的。你能做的事情主要是了解网络何时产生异常,因此你能在起初被攻击的时候检测到攻击。有一些著名的软件就是出于这一目的的。你可以参考Tripwire、Nagios和 SNIPS (系统/网络集成轮询系统)。
DoS防范机动 |