现在的位置: 首页 > 综合 > 正文

magento — 如何预防减轻ddos对magento网站的攻击

2013年01月17日 ⁄ 综合 ⁄ 共 2397字 ⁄ 字号 评论关闭

最近,ddos攻击实在是让人头痛,尤其是针对magento网站的攻击。magento会消耗很多的系统资源,这使得apache变得非常的脆弱。尽管知道ddos攻击是it领域一个令人无可奈何的问题,但是还是查阅了很多的资料希望能够找一些办法来应对。

 

原文:

Protect your Apache server from DoS attacks

http://www.serverorigin.com/ddoshost.php

 

如果你开了一家外卖餐馆,同一条街上的竞争对手肯定无时不刻想干掉你。你可能已经习惯了轻松的夜晚生意,但是突然有一天你的电话响个不停,订单像潮水一样涌来,你的司机忙碌一整个晚上,将外卖送到那些根本不存在的地址,而与此同时,许许多多的正常客户却打不进电话来下单。而你的竞争对手却得到了被你忽略掉的客户(那些扔掉你的电话把电话打到你的竞争对手那边的客户)。几天之后你就彻底完蛋了,而搞鬼的人却生意非常好。

 

这和电子商务中可能遇到的DOS攻击类似。从某种程度上讲,任何一个正在运行中的web服务器,FTP服务器,邮件服务器,只要接入到internet,就有可能受到此类攻击。竞争对手,无聊的黑客或遭解顾的员工如果想对公司破坏,通常是选择使用公司的网站或其它基于网络的服务下线,至少使它变慢,直到不能用。这有很多种方法包括通过炸弹式的无效用户请求消耗掉所有的带宽资源或者让服务器超负荷,消耗掉所有的资源为止。

 

这种攻击可以在服务器上直接进行,也可以在服务器所在的网络。也有分布式攻击(DDOS),包括通过攻击程序任意的,自发的,定时的同时并发的对目标网站进行协同攻击。

 

如何保护apache免受攻击呢?首先还是来了解一下这些攻击的原理及它们是如何影响服务器的。

 

包泛滥攻击(Packet flooding)

 

通过发送大量的icmp(Internet Control Message Protocol)包或udp包扰乱服务器。简单的说,这种攻击是通过使服务器或网络超过它本身的负荷能力。当然前提是攻击者有一个更快的网络。UDP的优点是没有任何数据包会返回到攻击都的机器上。ICMP的优势是它的攻击可以更加复杂,发送不完整的包可以使用目标网络混乱甚至锁定整个网络。

 

磁盘攻击(Disk attack)

这是比较野蛮的攻击。目标不是受害人的网络交通而是硬件。伪造用户请求让受害方机器进行读写操作,使之超过极限,最终强迫关机。这种打击是毁灭性的,而不是临时不能访问,甚至丢失所有的数据。

 

 

路由攻击(Routing to nowhere)

 

攻击目标是网络路由。一旦获取了路由控制权,它们可以将对目标机器的流量定向到其它地方。这个时候目标机器人的流量不是变多,而是变少,甚至是0。此时不仅是一台服务器受影响,而是整个网络有可能出问题。

 

apache弱点

 

上面所提到的攻击主要是针对apache的。它利用了kernel和apache守护进程的特点。一是kernel总是假设TCP/IP包是可信的,不然它们就没法进来了。但是现在伪造TCP/IP包是很容易的,而且通常被用来攻击服务器。最可怕的是这个BUG的存在不是在于目标服务器有没有安装什么软件,而是与生俱来的。另外一个缺点是内存分配。它不管请求好坏,总是分配内存,只在乎客户端户端的功能和性能。

 

系统管理员阻止主机对主机的攻击(hot-to-host attack)

  任何一个发送过来的请求都会通知apache分配内存以处理这个请求相关的任何内容。由于内存分配是根据最小分配值进行分配的,那么一连串的请求就会造成对可用内在资源的非线性分配,最终消耗掉内存以致崩溃。而系统管理可以通过apache提供的MaxClients配置指令来限制apache所服务器最大数量客户端。这样就会在系统资源耗尽之前终止掉主机对主机的攻击。

 

防御自发式攻击

DDOS攻击是我们要防御的最粗爆的攻击之一。当多个机器感染了攻击目标是你的服务器的攻击程序时,你就完蛋了。自发式攻击是最糟糕的,因为它完全不需要人为的任何参与,自主进行攻击。

 

apache不仅对ddos攻击表现的脆弱,而且也会被利用来作为攻击源。为什么?因为apache很流行,网络上有无数个apache服务器,所以,专门针对apache的病毒(尤其是ssl 蠕虫)有很多的攻击目标。这些病毒通过利用apache在ssl握手代码的一个漏洞将自己安装在apache上面。攻击都领先一个KEY,apache响应后会导致缓冲区溢出(当然只有运行open ssl .0.9.6以下版本)。

 

你需要做的是,如果你有在用ssl,那么更新版本。不要让自己的服务器成了黑客的帮凶。

 

 

防火墙

防火墙能够帮你阻止传统的DOS攻击,防止那些末验证用户的非法请求攻击,至少可以减轻。但是它不能阻止利用正规服务的DDOS攻击。防火墙可以对包进行检查并清除任何可疑的包,而且可以对进入你的网络的远程用户名进行审查。

 

如何检测攻击

你可能知道,在网络层比在服务器上更容易检测到攻击。网络攻击通常会搞乱网络和路由,而且在监测时这些是显而易见的。

 

DOS攻击比较难于检测,因为在服务器层我们很难确定分析出哪些用户是伪造的。你唯一能做的是确定什么时候你的服务器不正常了,这样你才能在它受到攻击的开始阶段就发现问题。有很多软件可以帮忙做到这一点,帮助你监测服务器的状态: Tripwire, Nagios, SNIPS (System/Network Integrated Polling System).

 

apache模块 DoS evasive

 

从apache1.3开始,你可以使用mod_dosevasive这个apache模块来预防dos攻击,它的作用是用来阻止伪造的请求。它通过监测带宽和资源的使用情况来实现的。但是它对ddos攻击无能为力,而且几乎没有什么软件能够很好的预防DDOS的攻击。

 

抱歉!评论已关闭.