想像你拥有一家外卖快餐店,你同一条街上的竞争对手一直都想把你挤垮。你过去晚上的工作一向是井井有条的,可是有一个晚上,你的电话响个不停,一笔又一笔的订单接踵而至,你的司机整晚都忙着送东西,结果那些订餐的地址却不存在。而与此同时,你的老顾客尝试通过电话订餐,却怎么也打不通。这时,你的竞争者会顺理成章地接管本该属于你的顾客-往往是倾向于向你订餐而忽略你的竞争对手的那些顾客。这样连续几晚,你将会面临破产,而你的竞争对手的业务则进入了新的历程。
如果你在互联网上开展商务活动,你很容易受到恶意的拒绝服务*** (DoS),而任何运行Web站点、FTP或者邮件管理的服务器都会受到不同程度的***。
我们很容易想到:竞争对手、恶意的***或是对公司极度不满的旧员工都希望给公司带来麻烦。他们选择的方法可能就是让公司的网站或是其他基于服务器的公共服务离线,或者至少拖慢其速度以至部分不可用。有很多方法可以达到这一目的,包括发送大量请求以占用大部分带宽的,或是让服务器超过极限的洪水***。
***可能产生在服务器上、服务器所在的网络中或是服务器的操作系统里。同样存在分布式的***,包括病毒分布***、随机分布式服务器***、同步持续***、协同***等。
你应该怎么在Apache服务器上避免这样的***呢?首先,让我们来分析这类***的原理,以便了解它们是怎么影响你的服务器的。
数据包洪水***
一种中断服务器或是其本地网络的方法是数据包洪水***,它通常使用Internet控制报文协议 (ICMP)包或是UDP包。在最简单的形式下,这些***都是使服务器或是网络的负载过重,这意味着***的网络速度必须比目标的网络速度要快。使用UDP 包的优势是不会有任何包返回到***的计算机。而使用ICMP包的优势是***能让***更加富于变化,发送有缺陷的包会搞乱并锁住受害者的网络。在一种流行的变化中,***能愚弄目标服务器,让其相信正在受到来自自身的洪水***。
磁盘***
这是一种更残忍的***,它不仅仅影响目标计算机的通信,还破坏其硬件。伪造的用户请求利用写命令***目标计算机的硬盘,让其超过极限,并强制关闭。这不仅仅是破坏,受害者会遭遇不幸,因为信息会暂时不可达,甚至丢失。
路由到不可达
通常,DoS***集中在路由器上,***者首先获得控制权并操纵目标机器。当***者能够更改路由器的路由表条目的时候,会导致整个网络不可达。这种***是非常阴险的,因为它开始出现的时候往往令人莫名其妙。毕竟,你的服务器会很快失效,但是当整个网络不可达,还是有很多原因需要详审的。
Apache服务器最大的缺点是,它的普及性使它成为众矢之的。Apache服务器无时无刻不受到DoS***的威胁。
Apache服务器的脆弱性
上面提到的***,面对运行着Apache的服务器,采用了特殊的内核和后台。其中一种的内核伪造真实的TCP/IP数据包,否则他们不能远程的***。但是伪造的TCP/IP数据包现在更容易产生并且更普遍的运用于服务器***活动中。最令人恐惧的事情是,对于这种***,目标计算机上并不需要运行任何程序。
服务器代码另一个可怕的脆弱性是,内存分配特性为服务、客户机功能效率成分提交善意的请求。Apache 服务器可能会因为RAM的不断消耗而崩溃。
自我防护的方法
系统管理员主机对主机***防范
入站的报头将提示Apache服务器为所有附加的报头分配内存。从分配完内存到缺省的最小值,报头的级联的请求会引起可用内存非线形的消耗,最终导致系统崩溃。这类***事实上是一种标准。
如果你正在运行v1.3.2版本的Apache 服务器,你可以抵御这样的***。这非常容易:假设上面谈到的主机对主机***成功了,大量的纯报头请求会强烈的轰击服务器。你的解决方案就是 MaxClients 指令,系统管理员可以通过这个指令设置报头数量的最大值,就可以在内存耗尽以前中断主机对主机***。
在Apache服务器上防范繁殖性***
最有威胁的***是分布式拒绝服务*** (DDoS)。当很多堡垒主机被感染,并一起向你的服务器发动拒绝服务***的时候,你将伤痕累累。繁殖性***是最恶劣的,因为***程序会不通过人工干涉蔓延。
Apache服务器特别容易受***,无论是对分布式拒绝服务***还是隐藏来源的***。为什么?因为Apache服务器无处不在。在万维网上分布着无数的Apache服务器,因此为Apache定制的病毒 (特别是SSL蠕虫) 潜伏在许多主机上;带宽如今已经非常充裕,因此有很多的空间可供***操纵。Apache系统趋向稳定,很少需要生机,因此这些问题是让人头疼的。
***蠕虫利用服务器代码的漏洞,通过SSL握手将自己安装在Apache服务器上。***利用缓冲溢出将一个伪造的钥匙安装在服务器上 (适用于运行低于0.9.6e 版本的OpenSSL的服务器)。***者能够在被感染的主机上执行恶意代码,在许多这样病毒的作用下,下一步就是对特定的目标发动一场浩大的分布式拒绝服务***了。通过将这样的蠕虫散播到大量的主机上,大规模的点对点***得以进行,对目标计算机或者网络带来不可挽回的损失。
你该做些什么?还不赶紧升级你的OpenSSL!升级到0.9.6e或者更高版本;伪造的钥匙将起不了任何作用,也不能***到系统里。一些反病毒程序能发现并杀死SSL蠕虫,但是别指望这些:蠕虫可能产生变体,从而逃脱反病毒软件的追捕。注意重启Apache可以杀死这样的病毒,但是对防止将来的感染没有任何意义。
防火墙仍然非常有价值
在网络***中,防火墙能更好的保护你的安全。你必须明白它能做什么,不能做什么。防火墙能够帮助你抵御常规的拒绝服务***(利用伪造用户发送不虚假的请求),至少能起到缓和的作用。然而防火墙不能帮助你抵御采用合法服务的拒绝服务***,因此在部署防火墙的时候安全人员不应该遗漏这一点。
当拒绝服务***是一次网络***的时候,防火墙确实很受用。这种类型的***的实质是数据包洪水***,防火墙能发现那些不正常的数据包并向你提示可疑的事件。此外,你的防火墙甚至可以检查进入你主机的远程用户。
如何检测***
你可能猜得出,检测网络级的拒绝服务***要比服务器级的简单一些。网络***影响通讯和路由,这些都是可以正常监控的。你可以在linuxsecurity.com找到一些相关专业软件的细节。
DoS服务器***的检测要麻烦一些,因为在服务器级很难分辨请求是合法的还是伪造的。你能做的事情主要是了解网络何时产生异常,因此你能在起初被***的时候检测到***。有一些著名的软件就是出于这一目的的。你可以参考Tripwire、Nagios和 SNIPS (系统/网络集成轮询系统)。
DoS防范机动
自从Apache 1.3开始,一个被称作mod_dosevasive的新模块出现了。它的意思是" DoS防范机动(DoS evasive maneuvers)" 它的功能是拒绝伪造的数据请求。它密切监控带宽和资源使用率。虽然它对分布式拒绝服务***毫无办法 (几乎每有一个软件能对付分布式拒绝服务***),但是它对防范普通的拒绝服务***还是�
��常有效,绝对值得投资。