全部博文(297)
分类: LINUX
2007-08-01 10:08:42
DOS是英文Denial of Service的缩写,意为“拒绝服务攻击”,DDOS是英文Distributed Denial of Service的缩写,意为“分布式拒绝服务攻击”。那么什么要叫做拒绝服务呢?可以这么理解,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。可以说DOS是DDOS的前身,为了能够使其具有更高的攻击效率,从而就产生了这种分布式拒绝服务攻击,也就是用户通常所说的DDOS攻击。但是DDOS和DOS还是有所不同,DDOS的攻击策略侧重于通过很多“僵尸主机”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务,分布式拒绝服务攻击一旦被实施,攻击网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源。
DDOS的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机。另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务。
如何判断网站是否遭受了流量攻击呢?可通过Ping命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量攻击,此时若发现和你的主机接在同一交换机上的服务器也访问不了了,基本可以确定是遭受了流量攻击。当然,这样测试的前提是你到服务器主机之间的ICMP协议没有被路由器和防火墙等设备屏蔽,否则可采取Telnet主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时Ping你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都Ping不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量攻击,再一个流量攻击的典型现象是,一旦遭受流量攻击,会发现用远程终端连接网站服务器会失败。
相对于流量攻击而言,资源耗尽攻击要容易判断一些,假如平时Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping还可以Ping通,则很可能遭受了资源耗尽攻击,此时若在服务器上用Netstat -an命令观察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等状态存在,而ESTABLISHED很少,则可判定肯定是遭受了资源耗尽攻击。还有一种属于资源耗尽攻击的现象是,Ping自己的网站主机Ping不通或者是丢包严重,而Ping与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受攻击后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,其实带宽还是有的,否则就Ping不通接在同一交换机上的主机了。
以下为典型的DDOS攻击示意图:
图 1
其下是利用xdos这款攻击软件模拟DDOS攻击经过:
◆应用平台◆
Windows2000 pro,IIS5.0。
◆实战流程◆
一.确定目标
二.攻击目标
三.防范方法
◆应用工具◆
xdos:Dos下经典的DDOS攻击工具。
◆实施步骤◆
一、确定目标
这里为本地搭建的环境,如下图所示:
图 2
用户可以在cmd下使用ping 命令形式获得目标站点ip,从而确定目标,方法如下:
1.用户点击“开始”->“运行”->输入cmd然后按回车即可打开cmd窗口。
2.Cmd下输入ping www.****.com.cn即可得到****网站的ip,如下图所示:
图 3
其中Pinging antares.****.com.cn [218.30.66.65] with 32 bytes of data:
218.30.66.65即为****网站的IP。
二、攻击目标
利用我们的xdos对此网站进行攻击,此软件的使用格式是xdos ip 端口 -t 次数 -s *,这里给用户解释下,ip为用户需要攻击的ip,端口为需要攻击的端口,这里是攻击Web服务,因此这里用80端口,-t后面跟的是攻击次数,一般5-10就可以了,-s为随机伪造攻击ip,完整的命令如下:
xdos 127.0.0.1 80 –t 5 –s *
出现如下图示则说明攻击正在进行:
图 4
稍后用户再看看被攻击的网站,如下图所示:
图 5
站点已经显示连接用户过多禁止访问了,这就是说明攻击成功了。
小提示:现在的DDOS攻击中主要有以下三种DDOS攻击技术:
1.SYN/ACK Flood攻击
2. TCP全连接攻击
3. 刷Script脚本攻击
三、防范方法
以上给用户讲解了不少关于DDOS攻击技术的资料,那用户该如何防范DDOS攻击,使自己在DDOS攻击中的损失减至最低呢?首先用户应明确一个问题,那就是DDOS攻击是不可能完全杜绝的,只能将攻击强度减至最低,也不能单单通过某些安全产品就可以防范DDOS攻击的,用户需要从多个方面做出防范措施,才能够最大程度的抵御DDOS攻击,以下是多年抵御DDOS攻击的前辈所总结出来的十分有效的措施:
1.采用高性能的网络设备:首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDOS攻击是非常有效的。
2.尽量避免NAT的使用:无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT的使用,因为采用此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使用NAT,那就没有好办法了。
3.充足的网络带宽保证:网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYNFlood攻击,当前至少要选择100M的共享带宽,最好的当然是挂在1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M,这点一定要搞清楚。
4.升级主机服务器硬件:在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,若有志强双CPU的话就用它吧,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,别只贪IDE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用3COM或Intel等名牌的,若是Realtek的还是用在自己的PC上吧。
5.把网站做成静态页面:大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现。看看新浪,搜狐,网易等门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的80%属于恶意行为。
6.增强操作系统的TCP/IP栈:Win2000和Win2003作为服务器操作系统,本身就具备一定的抵抗DDOS攻击的能力,只是默认状态下没有开启而已,若开启的话可抵挡约10000个SYN攻击包,若没有开启则仅能抵御数百个,具体怎么开启,自己去看看微软的这篇文章吧:
http://www.microsoft.com/china/technethttp://security.chinaitlab.com/guidance/secmod109.mspx
也许有的人会问,那我用的是Linux和FreeBSD怎么办?很简单,按照这篇文章去做吧:
7.安装专业抗DDOS防火墙
以上的七条对抗DDOS建议,适合绝大多数拥有自己主机的用户,但假如采取以上措施后仍然不能解决DDOS问题,就有些麻烦了,可能需要更多投资,增加服务器数量并采用DNS轮巡或负载均衡技术,甚至需要购买七层交换机设备,从而使得抗DDOS攻击能力成倍提高,只要投资足够深入,总有攻击者会放弃的时候,那时候你就成功了!
如果用户发现自己的网站正遭受DDOS攻击,用户首先要做的是尽可能保护网站的服务器,主要是防火墙以外的服务器,因为它最容易遭到攻击。尽可能关闭不必要的服务,减轻服务器的负担;增加数据包过滤器,限制进出的数据流量。若实在不行,减少服务器可连接的通道数量,牺牲一些性能来保住服务器。如果DDoS的攻击耗尽了你网站的带宽资源的话,实际上已经没有什么事情可做了,认栽吧,你的服务器已经终止服务了