Cisco路由器如何防止DDoS***

1、使用 ip verfy unicast reverse-path 网络接口命令
     这个功能检查每一个经过路由器的数据包。在路由器的CEF(Cisco Express Forwarding)表该数据包所到达网络接口的所有路由项中,如果没有该数据包源IP地址的路由,路由器将丢弃该数据包。例如,路由器接收到一个源IP地址为1.2.3.4的数据包,如果CEF路由表中没有为IP地址1.2.3.4提供任何路由(即反向数据包传输时所需的路由),则路由器会丢弃它。
     单一地址反向传输路径转发(Unicast Reverse Path Forwarding)在ISP(局端)实现阻止SMURF***和其它基于IP地址伪装的***。这能够保护网络和客户免受来自互联网其它地方的侵扰。使用Unicast RPF 需要打开路由器的"CEF swithing"或"CEF distributed switching"选项。不需要将输入接口配置为CEF交换(switching)。只要该路由器打开了CEF功能,所有独立的网络接口都可以配置为其它交换(switching)模式。RPF(反向传输路径转发)属于在一个网络接口或子接口上激活的输入端功能,处理路由器接收的数据包。
     在路由器上打开CEF功能是非常重要的,因为RPF必须依靠CEF。Unicast RPF包含在支持CEF的Cisco IOS 12.0 及以上版本中,但不支持Cisco IOS 11.2或11.3版本。
2、使用访问控制列表(ACL)过滤RFC 1918中列出的所有地址
     参考以下例子:
interface xy ip access-group 101 in access-list 101 deny ip 10.0.0.0 0.255.255.255 any

access-list 101 deny ip 192.168.0.0 0.0.255.255 any

access-list 101 deny ip 172.16.0.0 0.15.255.255 any

access-list 101 permit ip any any 3、参照RFC 2267,使用访问控制列表(ACL)过滤进出报文
     参考以下例子:
     {ISP中心} -- ISP端边界路由器 -- 客户端边界路由器 -- {客户端网络}
     ISP端边界路由器应该只接受源地址属于客户端网络的通信,而客户端网络则应该只接受源地址未被客户端网络过滤的通信。以下是ISP端边界路由器的访问控制列表(ACL)例子:
access-list 190 permit ip {客户端网络} {客户端网络掩码} any

access-list 190 deny ip any any [log]

interface {内部网络接口} {网络接口号}

ip access-group 190 in      以下是客户端边界路由器的ACL例子:
access-list 187 deny ip {客户端网络} {客户端网络掩码} any

access-list 187 permit ip any any

access-list 188 permit ip {客户端网络} {客户端网络掩码} any

access-list 188 deny ip any any

interface {外部网络接口} {网络接口号}

ip access-group 187 in

ip access-group 188 out        如果打开了CEF功能,通过使用单一地址反向路径转发(Unicast RPF),能够充分地缩短访问控制列表(ACL)的长度以提高路由器性能。为了支持Unicast RPF,只需在路由器完全打开CEF;打开这个功能的网络接口并不需要是CEF交换接口。
4、使用CAR(Control Access Rate)限制ICMP数据包流量速率
     参考以下例子:
interface xy

rate-limit output access-group 2020 3000000 512000 786000 conform-action

transmit exceed-action drop

access-list 2020 permit icmp any any echo-reply      请参阅IOS Essential Features 获取更详细资料。
5、设置SYN数据包流量速率
interface {int}

rate-limit output access-group 153 45000000 100000 100000 conform-action

transmit exceed-action drop

rate-limit output access-group 152 1000000 100000 100000 conform-action

transmit exceed-action drop

access-list 152 permit tcp any host eq www

access-list 153 permit tcp any host eq www established        在实现应用中需要进行必要的修改,替换:

     45000000为最大连接带宽 1000000为SYN flood流量速率的30%到50%之间的数值。
     burst normal(正常突变)和 burst max(最大突变)两个速率为正确的数值。
     注意,如果突变速率设置超过30%,可能会丢失许多合法的SYN数据包。使用"show interfaces rate-limit"命令查看该网络接口的正常和过度速率,能够帮助确定合适的突变速率。这个SYN速率限制数值设置标准是保证正常通信的基础上尽可能地小。
     警告:一般推荐在网络正常工作时测量SYN数据包流量速率,以此基准数值加以调整。必须在进行测量时确保网络的正常工作以避免出现较大误差。
     另外,建议考虑在可能成为SYN***的主机上安装IP Filter等IP过滤工具包。
6、搜集证据并联系网络安全部门或机构
     如果可能,捕获***数据包用于分析。建议使用SUN工作站或Linux等高速计算机捕获数据包。常用的数据包捕获工具包括TCPDump和snoop等。基本语法为:
tcpdump -i interface -s 1500 -w capture_file snoop -d interface -o capture_file -s 1500      本例中假定MTU大小为1500。如果MTU大于1500,则需要修改相应参数。将这些捕获的数据包和日志作为证据提供给有关网络安全部门或机构。
DDOS***:分布式拒绝服务***(DDoS)原理及防范

DDoS***概念

DoS的***方式有很多种,最基本的DoS***就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。
DDoS***手段是在传统的DoS***基础之上产生的一类***方式。单一的DoS***一般是采用一对一方式的,当***目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS***的困难程度加大了 - 目标对恶意***包的"消化能力"加强了不少,例如你的***软件每秒钟可以发送3,000个***包,但我的主机与网络带宽每秒钟可以处理10,000个***包,这样一来***就不会产生什么效果。
这时侯分布式的拒绝服务***手段(DDoS)就应运而生了。你理解了DoS***的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台***机来***不再能起作用的话,***者使用10台***机同时***呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
高速广泛连接的网络给大家带来了方便,也为DDoS***创造了极为有利的条件。在低速网络时代时,***占领***用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得***可以从更远的地方或者其他城市发起,***者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。
被DDoS***时的现象

  • 被***主机上有大量等待的TCP连接
  • 网络中充斥着大量的无用的数据包,源地址为假
  • 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯
  • 利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求
  • 严重时会造成系统死机
***运行原理




如图一,一个比较完善的DDoS***体系分成四大部分,先来看一下最重要的第2和第3部分:它们分别用做控制和实际发起***。请注意控制机与***机的区别,对第4部分的受害者来说,DDoS的实际***包是从第3部分***傀儡机上发出的,第2部分的控制机只发布命令而不参与实际的***。对第2和第3部分计算机,***有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自***的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦***连接到它们进行控制,并发出指令的时候,***傀儡机就成为害人者去发起***了。
有的朋友也许会问道:"为什么***不直接去控制***傀儡机,而要从控制傀儡机上转一下呢?"。这就是导致DDoS***难以追查的原因之一了。做为***者的角度来说,肯定不愿意被捉到(我在小时候向别人家的鸡窝扔石头的时候也晓得在第一时间逃掉,呵呵),而***者使用的傀儡机越多,他实际上提供给受害者的分析依据就越多。在占领一台机器后,高水平的***者会首先做两件事:1. 考虑如何留好后门(我以后还要回来的哦)!2. 如何清理日志。这就是擦掉脚印,不让自己做的事被别人查觉到。比较不敬业的***会不管三七二十一把日志全都删掉,但这样的话网管员发现日志都没了就会知道有人干了坏事了,顶多无法再从日志发现是谁干的而已。相反,真正的好手会挑有关自己的日志项目删掉,让人看不到异常的情况。这样可以长时间地利用傀儡机。
但是在第3部分***傀儡机上清理日志实在是一项庞大的工程,即使在有很好的日志清理工具的帮助下,***也是对这个任务很头痛的。这就导致了有些***机弄得不是很干净,通过它上面的线索找到了控制它的上一级计算机,这上级的计算机如果是***自己的机器,那么他就会被揪出来了。但如果这是控制用的傀儡机的话,***自身还是安全的。控制傀儡机的数目相对很少,一般一台就可以控制几十台***机,清理一台计算机的日志对***来讲就轻松多了,这样从控制机再找到***的可能性也大大降低。
***是如何组织一次DDoS***的?

这里用"组织"这个词,是因为DDoS并不象***一台主机那样简单。一般来说,***进行DDoS***时会经过这样的步骤:
1. 搜集了解目标的情况
下列情况是***非常关心的情报:
  • 被***目标主机数目、地址情况
  • 目标主机的配置、性能
  • 目标的带宽
对于DDoS***者来说,***互联网上的某个站点,如[url]http://www.mytarget.com[/url],有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。以yahoo为例,一般会有下列地址都是提供[url]http://www.yahoo.com[/url]服务的:
66.218.71.87
66.218.71.88
66.218.71.89
66.218.71.80
66.218.71.81
66.218.71.83
66.218.71.84
66.218.71.86
如果要进行DDoS***的话,应该***哪一个地址呢?使66.218.71.87这台机器瘫掉,但其他的主机还是能向外提供www服务,所以想让别人访问不到[url]http://www.yahoo.com[/url]的话,要所有这些IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS***者来说情况就更复杂了,他面对的任务可能是让几十台主机的服务都不正常。
所以说事先搜集情报对DDoS***者来说是非常重要的,这关系到使用多少台傀儡机才能达到效果的问题。简单地考虑一下,在相同的条件下,***同一站点的2台主机需要2台傀儡机的话,***5台主机可能就需要5台以上的傀儡机。有人说做***的傀儡机越多越好,不管你有多少台主机我都用尽量多的傀儡机来攻就是了,反正傀儡机超过了时候效果更好。
但在实际过程中,有很多***并不进行情报的搜集而直接进行DDoS的***,这时候***的盲目性就很大了,效果如何也要靠运气。其实做***也象网管员一样,是不能偷懒的。一件事做得好与坏,态度最重要,水平还在其次。
2. 占领傀儡机
***最感兴趣的是有下列情况的主机:
  • 链路状态好的主机
  • 性能好的主机
  • 安全管理水平差的主机
这一部分实际上是使用了另一大类的***手段:利用形***。这是和DDoS并列的***方式。简单地说,就是占领和控制被***的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS***任务的帐号。对于一个DDoS***者来说,准备好一定数量的傀儡机是一个必要的条件,下面说一下他是如何***并占领它们的。
首先,***做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现互联网上那些有漏洞的机器,象程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞…(简直举不胜举啊),都是***希望看到的扫描结果。随后就是尝试***了,具体的手段就不在这里多说了,感兴趣的话网上有很多关于这些内容的文章。
总之***现在占领了一台傀儡机了!然后他做什么呢?除了上面说过留后门擦脚印这些基本工作之外,他会把DDoS***用的程序上载过去,一般是利用ftp。在***机上,会有一个DDoS的发包程序,***就是利用它来向受害目标发送恶意***包的。
3. 实际***
经过前2个阶段的精心准备之后,***就开始瞄准目标准备发射了。前面的准备做得好的话,实际***过程反而是比较简单的。就象图示里的那样,***登录到做为控制台的傀儡机,向所有的***机发出命令:"预备~ ,瞄准~,开火!"。这时候埋伏在***机中的DDoS***程序就会响应控制台的命令,一起向受害主机以高速度发送大量的数据包,导致它死机或是无法响应正常的请求。***一般会以远远超出受害方处理能力的速度进行***,他们不会"怜香惜玉"。
老到的***者一边***,还会用各种手段来监视***的效果,在需要的时候进行一些调整。简单些就是开个窗口不断地ping目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入***。
DDoS***实例 - SYN Flood***

SYN-Flood是目前最流行的DDoS***手段,早先的DoS的手段在向分布式这一阶段发展的时候也经历了浪里淘沙的过程。SYN-Flood的***效果最好,应该是众***不约而同选择它的原因吧。那么我们一起来看看SYN-Flood的详细情况。
Syn Flood原理 - 三次握手
Syn Flood利用了TCP/IP协议的固有漏洞。面向连接的TCP三次握手是Syn Flood存在的基础。
TCP连接的三次握手



图二 TCP三次握手 如图二,在第一步中,客户端向服务端提出连接请求。这时TCP SYN标志置位。客户端告诉服务端序列号区域合法,需要检查。客户端在TCP报头的序列号区中插入自己的ISN。服务端收到该TCP分段后,在第二步以自己的ISN回应(SYN标志置位),同时确认收到客户端的第一个TCP分段(ACK标志置位)。在第三步中,客户端确认收到服务端的ISN(ACK标志置位)。到此为止建立完整的TCP连接,开始全双工模式的数据传输过程。
Syn Flood***者不会完成三次握手



图三 Syn Flood恶意地不完成三次握手 假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的***者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理***者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称做:服务器端受到了SYN Flood***(SYN洪水***)。

下面是我在实验室中模拟的一次Syn Flood***的实际过程
这一个局域网环境,只有一台***机(PIII667/128/mandrake),被***的是一台Solaris 8.0 (spark)的主机,网络设备是Cisco的百兆交换机。这是在***并未进行之前,在Solaris上进行snoop的记录,snoop与tcpdump等网络监听工具一样,也是一个很好的网络抓包与分析的工具。可以看到***之前,目标主机上接到的基本上都是一些普通的网络包。
……           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes           ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes192.168.0.66 -> 192.168.0.255 NBT Datagram Service Type=17 Source=GU[0]192.168.0.210 -> 192.168.0.255 NBT Datagram Service Type=17 Source=ROOTDC[20]192.168.0.247 -> 192.168.0.255 NBT Datagram Service Type=17 Source=TSC[0]           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes192.168.0.200 -> (broadcast)  ARP C Who is 192.168.0.102, 192.168.0.102 ?           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes192.168.0.66 -> 192.168.0.255 NBT Datagram Service Type=17 Source=GU[0]192.168.0.66 -> 192.168.0.255 NBT Datagram Service Type=17 Source=GU[0]192.168.0.210 -> 192.168.0.255 NBT Datagram Service Type=17 Source=ROOTDC[20]           ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes           ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes……
接着,***机开始发包,DDoS开始了…,突然间sun主机上的snoop窗口开始飞速地翻屏,显示出接到数量巨大的Syn请求。这时的屏幕就好象是时速300公里的列车上的一扇车窗。这是在Syn Flood***时的snoop输出结果:
…… 127.0.0.178 -> lab183.lab.net AUTH C port=1352  127.0.0.178 -> lab183.lab.net TCP D=114 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=115 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net UUCP-PATH C port=1352  127.0.0.178 -> lab183.lab.net TCP D=118 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net NNTP C port=1352  127.0.0.178 -> lab183.lab.net TCP D=121 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=122 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=124 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=125 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=126 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=128 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=130 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=131 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=133 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=135 S=1352 Syn Seq=674711609 Len=0 Win=65535……
这时候内容完全不同了,再也收不到刚才那些正常的网络包,只有DDoS包。大家注意一下,这里所有的Syn Flood***包的源地址都是伪造的,给追查工作带来很大困难。这时在被***主机上积累了多少Syn的半连接呢?我们用netstat来看一下:
# netstat -an | grep SYN
……192.168.0.183.9      127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.13     127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.19     127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.21     127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.22     127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.23     127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.25     127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.37     127.0.0.79.1801          0      0 24656      0 SYN_RCVD192.168.0.183.53     127.0.0.79.1801          0      0 24656      0 SYN_RCVD……
其中SYN_RCVD表示当前未完成的TCP SYN队列,统计一下:
# netstat -an | grep SYN | wc -l
5273
# netstat -an | grep SYN | wc -l
5154
# netstat -an | grep SYN | wc -l
5267
…..

共有五千多个Syn的半连接存储在内存中。这时候被***机已经不能响应新的服务请求了,系统运行非常慢,也无法ping通。
这是在***发起后仅仅70秒钟左右时的情况。
DDoS的防范

到目前为止,进行DDoS***的防御还是比较困难的。首先,这种***的特点是它利用了TCP/IP协议的漏洞,除非你不用TCP/IP,才有可能完全抵御住DDoS***。一位资深的安全专家给了个形象的比喻:DDoS就好象有1,000个人同时给你家里打电话,这时候你的朋友还打得进来吗?
不过即使它难于防范,也不是说我们就应该逆来顺受,实际上防止DDoS并不是绝对不可行的事情。互联网的使用者是各种各样的,与DDoS做斗争,不同的角色有不同的任务。我们以下面几种角色为例:
  • 企业网管理员
  • ISP、ICP管理员
  • 骨干网络运营商
企业网管理员

网管员做为一个企业内部网的管理者,往往也是安全员、守护神。在他维护的网络中有一些服务器需要向外提供WWW服务,因而不可避免地成为DDoS的***目标,他该如何做呢?可以从主机与网络设备两个角度去考虑。
主机上的设置
几乎所有的主机平台都有抵御DoS的设置,总结一下,基本的有几种:
  • 关闭不必要的服务
  • 限制同时打开的Syn半连接数目
  • 缩短Syn半连接的time out 时间
  • 及时更新系统补丁
网络设备上的设置
企业网的网络设备可以从防火墙与路由器上考虑。这两个设备是到外界的接口设备,在进行防DDoS设置的同时,要注意一下这是以多大的效率牺牲为代价的,对你来说是否值得。
1.防火墙
  • 禁止对主机的非开放服务的访问
  • 限制同时打开的SYN最大连接数
  • 限制特定IP地址的访问
  • 启用防火墙的防DDoS的属性
  • 严格限制对外开放的服务器的向外访问
第五项主要是防止自己的服务器被当做工具去害人。
2.路由器
以Cisco路由器为例
  • Cisco Express Forwarding(CEF)
  • 使用 unicast reverse-path
  • 访问控制列表(ACL)过滤
  • 设置SYN数据包流量速率
  • 升级版本过低的ISO
  • 为路由器建立log server
其中使用CEF和Unicast设置时要特别注意,使用不当会造成路由器工作效率严重下降,升级IOS也应谨慎。路由器是网络的核心设备,与大家分享一下进行设置修改时的小经验,就是先不保存。Cisco路由器有两份配置startup config和running config,修改的时候改变的是running config,可以让这个配置先跑一段时间(三五天的就随意啦),觉得可行后再保存配置到startup config;而如果不满意想恢复原来的配置,用copy start run就行了。
ISP / ICP管理员

ISP / ICP为很多中小型企业提供了各种规模的主机托管业务,所以在防DDoS时,除了与企业网管理员一样的手段外,还要特别注意自己管理范围内的客户托管主机不要成为傀儡机。客观上说,这些托管主机的安全性普遍是很差的,有的连基本的补丁都没有打就赤膊上阵了,成为***最喜欢的"肉鸡",因为不管这台机器***怎么用都不会有被发现的危险,它的安全管理太差了;还不必说托管的主机都是高性能、高带宽的-简直就是为DDoS定制的。而做为ISP的管理员,对托管主机是没有直接管理的权力的,只能通知让客户来处理。在实际情况时,有很多客户与自己的托管主机服务商配合得不是很好,造成ISP管理员明知自己负责的一台托管主机成为了傀儡机,却没有什么办法的局面。而托管业务又是买方市场,ISP还不敢得罪客户,怎么办?咱们管理员和客户搞好关系吧,没办法,谁让人家是上帝呢?呵呵,客户多配合一些,ISP的主机更安全一些,被别人告状的可能性也小一些。
骨干网络运营商

他们提供了互联网存在的物理基础。如果骨干网络运营商可以很好地合作的话,DDoS***可以很好地被预防。在2000年yahoo等知名网站被***后,美国的网络安全研究机构提出了骨干运营商联手来解决DDoS***的方案。其实方法很简单,就是每家运营商在自己的出口路由器上进行源IP地址的验证,如果在自己的路由表中没有到这个数据包源IP的路由,就丢掉这个包。这种方法可以阻止***利用伪造的源IP来进行DDoS***。不过同样,这样做会降低路由器的效率,这也是骨干运营商非常关注的问题,所以这种做法真正采用起来还很困难。
对DDoS的原理与应付方法的研究一直在进行中,找到一个既有效又切实可行的方案不是一朝一夕的事情。但目前我们至少可以做到把自己的网络与主机维护好,首先让自己的主机不成为别人利用的对象去***别人;其次,在受到***的时候,要尽量地保存证据,以便事后追查,一个良好的网络和日志系统是必要的。无论DDoS的防御向何处发展,这都将是一个社会工程,需要IT界的同行们来一起关注,通力合作。
参考资料
关于作者

徐一丁,北京玛赛网络系统有限公司方案设计部高级工程师,从事IT工作多年。目前主要进行国内外安全产品评测与******的研究。有丰富的网络安全设计与实施经验,并给各大电信公司如中国电信、吉通公司、联通公司等进行过系列安全培训。
 
DDOS***:DDOS***防御简析

    DoS***防御简析

     分布式拒绝服务***(DDoS)是一种特殊形式的拒绝服务***。它是利用多台已经被***者所控制的机器对某一台单机发起***,在带宽相对的情况下,被***的主机很容易失去反应能力。

     分布式拒绝服务***(DDoS)是一种特殊形式的拒绝服务***。它是利用多台已经被***者所控制的机器对某一台单机发起***,在带宽相对的情况下,被***的主机很容易失去反应能力。作为一种分布、协作的大规模***方式,分布式拒绝服务***(DDoS)主要瞄准比较大的站点,像商业公司,搜索引擎和政府部门的站点。由于它通过利用一批受控制的机器向一台机器发起***,来势迅猛,而且往往令人难以防备,具有极大的破坏性。

     对于此类隐蔽性极好的DDoS***的防范,更重要的是用户要加强安全防范意识,提高网络系统的安全性。专家建议可以采取的安全防御措施有以下几种。

     1.及早发现系统存在的***漏洞,及时安装系统补丁程序。对一些重要的信息(例如系统配置信息)建立和完善备份机制。对一些特权账号(例如管理员账号)的密码设置要谨慎。通过这样一系列的举措可以把***者的可乘之机降低到最校。

     2.在网络管理方面,要经常检查系统的物理环境,禁止那些不必要的网络服务。建立边界安全界限,确保输出的包受到正确限制。经常检测系统配置信息,并注意查看每天的安全日志。

     3.利用网络安全设备(例如:防火墙)来加固网络的安全性,配置好这些设备的安全规则,过滤掉所有可能的伪造数据包。

     4.与网络服务提供商协调工作,让网络服务提供商帮助实现路由的访问控制和对带宽总量的限制。

     5.当用户发现自己正在遭受DDoS***时,应当启动自己的应付策略,尽可能快地追踪***包,并且及时联系ISP和有关应急组织,分析受影响的系统,确定涉及的其他节点,从而阻挡从已知***节点的流量。

     6.如果用户是潜在的DDoS***受害者,并且用户发现自己的计算机被***者用作主控端和代理端时,用户不能因为自己的系统暂时没有受到损害而掉以轻心。***者一旦发现用户系统的漏洞,这对用户的系统是一个很大的威胁。所以用户只要发现系统中存在DDoS***的工具软件要及时把它清除,以免留下后患。

     被DDoS***时的现象

     ● 被***主机上有大量等待的TCP连接;

     ● 网络中充斥着大量的无用的数据包,源地址为假;

     ● 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;

     ● 利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求;

     ● 严重时会造成系统死机;

     ……

     DDOS的表现形式主要有两种,一种为流量***,主要是针对网络带宽的***,即大量***包导致网络带宽被阻塞,合法网络包被虚假的***包淹没而无法到达主机;另一种为资源耗尽***,主要是针对服务器主机的***,即通过大量***包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务。

   如何判断网站是否遭受了流量***呢?可通过Ping命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量***,此时若发现和你的主机接在同一交换机上的服务器也访问不了了,基本可以确定是遭受了流量***。当然,这样测试的前提是你到服务器主机之间的 ICMP协议没有被路由器和防火墙等设备屏蔽,否则可采取Telnet主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时 Ping你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都Ping不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量***,再一个流量***的典型现象是,一旦遭受流量***,会发现用远程终端连接网站服务器会失败。

   相对于流量***而言,资源耗尽***要容易判断一些,假如平时Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping还可以Ping通,则很可能遭受了资源耗尽***,此时若在服务器上用Netstat -na命令观察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等状态存在,而ESTABLISHED很少,则可判定肯定是遭受了资源耗尽***。还有一种属于资源耗尽***的现象是,Ping自己的网站主机Ping不通或者是丢包严重,而Ping与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受***后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,其实带宽还是有的,否则就 Ping不通接在同一交换机上的主机了。

   当前主要有三种流行的DDoS***:

   1、SYN/ACK Flood***:这种***方法是经典最有效的DDOS方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。少量的这种***会导致主机服务器无法访问,但却可以Ping的通,在服务器上用Netstat -na命令会观察到存在大量的SYN_RECEIVED状态,大量的这种***会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种***。

   2、TCP全连接***:这种***是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS***的能力,但对于正常的TCP连接是放过的,殊不知很多网络服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接***就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种***的特点是可绕过一般防火墙的防护而达到***目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此容易被追踪。

   3、刷.脚本***:这种***主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的***方法。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此***者只需通过Proxy代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种***的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施***,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露***者的IP地址。

   四、怎么抵御DDOS?

   对付DDOS是一个系统工程,想仅仅依靠某种系统或产品防住DDOS是不现实的,可以肯定的是,完全杜绝DDOS目前是不可能的,但通过适当的措施抵御 90%的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***包,若没有开启则仅能抵御数百个,具体怎么开启,自己去看微软的文章吧!《强化 TCP/IP 堆栈安全》- [url]http://www.microsoft.com/china/technet/security/[/url]
   guidance/secmod109.mspx
   也许有的人会问,那我用的是Linux和FreeBSD怎么办?很简单,按照这篇文章去做吧!《SYN Cookies》- [url]http://cr.yp.to/syncookies.html[/url]

   7、安装专业抗DDOS防火墙

   8、其他防御措施

   以上的七条对抗DDOS建议,适合绝大多数拥有自己主机的用户,但假如采取以上措施后仍然不能解决DDOS问题,就有些麻烦了,可能需要更多投资,增加服务器数量并采用DNS轮巡或负载均衡技术,甚至需要购买七层交换机设备,从而使得抗DDoS***能力成倍提高,只要投资足够深入,总有***者会放弃的时候,那时候你就成功了!:)
 
设置路由器门限值 预防DDoS***

一、预防DDoS***原理
     在分布式“拒绝服务”(DDoS)的***过程中,一群恶意的主机或被恶意主机感染的主机将向受***的服务器发送大量的数据。在这种情况下,靠近网络边缘的网络节点将会变得资源枯竭。原因有二:一是靠近服务器的节点通常在设计时只要求处理少量的用户数据; 二是由于数据在网络核心区的聚集使处于边缘的节点会接收更多的数据。此外,服务器系统本身也很容易受到***,在极度超载的情况下会瘫痪。
     DDoS***被视为一种资源管理问题。本文的目的就是要保护服务器系统在全局性网络中不会收到过量的服务请求。当然,这种机制也可以很容易地变为对网络节点的保护。为此,必须采取一种预防性措施:在***性数据包聚集到使服务器瘫痪之前,在传送路径上的路由器中对流量进行调节,避免***的发生。具体实现机制是要在与服务器有数级距离的上游路由器上设置门限值,只有在这个门限值以内的数据量可以通过路由器,而其他数据将被放弃或路由至其他路由器。
     这种防御系统中的一个主要因素是各个路由点输出“适当”的数据量。“适当”必须视当时的需求分配而定,因此服务器与网络之间要进行动态协商。本文中的协商方法由服务器(S)发起,如果服务器在低于设计容量(Us)的情况下运行,则不需要设置门限值;如果服务器的负载(Ls)超过了设计容量,则可以在服务器的上游设置门限值来进行自我保护。此后,如果当前的门限值不能使S的负载低于Us,则应降低门限值;反之,如果Ls< Us,则应升高门限值;如果门限值的升高没有使负载在监视期内明显增加,则可以取消门限值。控制算法的目标就是将服务器的负载控制在[Ls,Us]范围之内。
     很显然,不可能要求保留所有网络服务器的状态信息,因为这样会造成状态信息爆炸。但按需求选择保护机制是可行的,这一观点是基于DDoS***是一种个别现象而非普遍情况的假设。在任何时间段内,我们认定只有少数的网络受到***,大部分网络在“健康”状态下运行。此外,恶意***者通常选择那些访问用户最多的“主要站点”***,这些站点就可以利用以下的网络结构来保证自身的安全。
二、系统的模式
     本文提及的所有数据量和服务器负载量的单位均为 kbps。系统网络拓扑图如图1所示。本文给出了网络模型G=(V,E),其中V代表一系列节点,E表示边缘。所有的叶状节点均为主机和数据来源。内部节点为路由器,路由器不会产生数据但可以接收来自主机的数据或转发来自其他路由器的数据。R表示内部路由节点,所有的路由器均假设是可以信任的。主机H=V-R,被分为普通的正常用户Hg和恶意用户Ha,E是网络链路模型,默认为双向。
     叶形节点V被当作目标服务器S。正常用户以[0,rg]的速度将数据包发送到S。恶意***者则以[0,ra]的速度向S发送数据包,从原则上讲可以根据用户通常如何访问S(假设rg< < Us)来为rg设置一个合理的水平,但ra的取值很难确定,实际上ra的值大大高于rg。
     当S受到***时,它会启动前面谈到的门限值防护机制。为了便于表示,假设一个超载的服务器仍然能够启动防护机制,因此没有必要在每台路由器上均设置门限值。R(k)表示与S相距k层的路由器或短于k层的路由器,但它们均直接与主机相连。
     图中的方块节点表示主机,圆形节点代表路由器。最左侧的主机为目标服务器S,R(3)中的路由器为图中绿色的部分,请注意R(3)中最下层的路由器与S只相隔两层,之所以将其包括在内是因为它与主机直接相连。

三、考核测量标准
     性能测量的一个基本指标是门限值能在多大程度上防DDoS***。除了基本指标,还必须考虑安装这一机制的成本。因此,可采用下述评估标准:
     1.服务器中普通用户的数量;
     2.保护S时需要介入的路由器数量;
     3.针对用户需求变化的应变能力。
     一般来讲,我们认为***者比普通用户的***性更强。但是某个恶意的***能使其他大量的主机参与到恶意***中来,虽然每个主机看上去像是一般的普通用户,但它们加在一起仍然会造成DDoS***。从本质上说,防御此类***比较困难。
     在实际布置此类防护机制时必须遵守几点要求。首先,必须保证门限值的可靠性,否则,机制本身就可能成为***点。为了保证可靠性,门限值消息在被边缘路由器接纳到网络中时,必须先进行验证。第二,必须保证这些消息能够安全地从发起点到达目的点。由于门限值消息的发送量很小,其鉴权和传输优先性应该可以接受,而且,由于控制方法必须收到反馈,服务器可能会在瞬时超载,为了确保该调节机制仍能运行,可以使用协处理器或帮助设备。第三,门限值保护机制可能不会在整个网络中得到支持,但只要受***的路由上有一台路由器支持此机制就行。
 
应对DoS/DDoS***的十条军规

     DoS是“拒绝服务”(Denial of Service)的缩写,它是指故意***网络协议的缺陷或直接通过野蛮手段耗尽受***目标的资源,目的是让目标计算机或网络无法提供正常的服务,甚至系统崩溃。早期的DoS***都需要相当大的带宽资源来实现,而以个人为单位的“***者”往往没有这样的条件。但是后来***者发明了分布式的***方式,即利用工具软件集合许多的网络带宽来同时对同一个目标发动大量的***请求,这就是DDoS(Distributed Denial Of Service)***。简而言之,DDoS***是由“***者”集中控制、发动的一组DoS***的集合,非常难以抵挡。
     很多企业网站和个人网站都不止一次地遭遇过DoS/DDoS***,由此也积累了一些“亡羊补牢”的经验。前车之鉴能够提醒我们注意:“为什么我们这样容易受到***?如何才能防患于未然降低受***的风险?”下面列出的就是笔者收集的十个预防、应对DoS/DDoS***的有效方法:
     1. 保留并定期查看各种日志以助分析各种情况。
     日志看起来很枯燥,而且绝大多数时候没什么作用;可一旦意外发生,它就能为你提供很重要的信息参考,每天下班前看一眼日志吧。
     2. 预先建立标准操作规程和应急操作规程。
     前者简称SOPs,后者是EOPs,预先建立好规程并且处变不惊是一个合格网管员的基本素养。
     3. 要有居安思危的思想准备。
     遭遇***往往没有先兆,有备无患才是长治久安之计。
     4. 网管员必须熟悉所有的配置细节。
     如果你是半路接手工作,一定要向前任咨询、核对清楚所有的工作细节。
     5. 在本地和外网分别进行安全性测试。
     “自测”不仅是演习,多给自己出一些安全性测试的难题能起到知己知彼的效用。
     6. 提防错误配置造成的隐患。
     错误配置通常发生在硬件搭配、服务器系统或者应用程序中,有时候问题还很隐蔽。通过反复检查来确保路由器、交换机等网络连接设备和服务器系统都进行了正确的配置,这样才会减小各种错误和***、***发生的可能性。
     7. 要熟悉过去的一些配置细节。
     8. 一旦发现异常,要时刻警惕。
     网管员最要不得的就是麻痹大意,凡事将就。
     9. 把握好网络架构的繁简程度和系统开销、安全风险之间的平衡。
     一味地添加设备并不等同于提高防护机制,网络系统一样是因简就奢易,因奢就简难。
     10. 通过安全防护来降低******的风险,比如安装防火墙等安全设备
 
DDOS***:DDoS***的原理及工具介绍 (二)

进入2000年以来,网络遭受***事件不断发生,全球许多著名网站如yahoo、cnn、buy、ebay、fbi,包括中国的新浪网相继遭到不名身份的******,值得注意的是,在这些***行为中,***摈弃了以往常常采用的更改主页这一对网站实际破坏性有限的做法,取而代之的是,在一定时间内,彻底使被***的网络丧失正常服务功能,这种***手法为 DDoS,即分布式拒绝服务***(Distributed denial of service )。
简单的讲,拒绝服务就是用超出被***目标处理能力的海量数据包消耗可用系统,带宽资源,致使网络服务瘫痪的一种***手段。在早期, 拒绝服务***主要是针对处理能力比较弱的单机,如个人pc,或是窄带宽连接的网站,对拥有高带宽连接,高性能设备的网站影响不大,但在99年底,伴随着DDoS的出现,这种高端网站高枕无忧的局面不复存在,与早期的DoS***由单台***主机发起,单兵作战相较,DDoS实现是借助数百,甚至数千台被植入***守护进程的***主机同时发起的集团作战行为,在这种几百,几千对一的较量中, 网络服务提供商所面对的破坏力是空前巨大的。
拒绝服务***自问世以来,衍生了多种形式,现将两种使用较频繁的TCP-SYN flood, UDP flood做一个介绍 。TCP-SYN flood又称半开式连接***,每当我们进行一次标准的TCP连接(如WWW浏览,下载文件等)会有一个一个三次握手的过程,首先是请求方向服务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后则再次向服务方发送一个ACK消息,一次成功的TCP连接由此就建立,可以进行后续工作了,如图所示:
而TCP-SYN flood在它的实现过程中只有前两个步骤,当服务方收到请求方的SYN并回送SYN-ACK确认消息后, 请求方由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间处于等待接收请求方ACK消息的状态,一台服务器可用的TCP连接是有限的,如果恶意***方快速连续的发送此类连接请求,则服务器可用TCP连接队列很快将会阻塞,系统可用资源,网络可用带宽急剧下降,无法向用户提供正常的网络服务。
Udp在网络中的应用也是比较广泛的,比如DNS解析、realaudio实时音乐、网络管理、联网游戏等,基于udp的***种类也是比较多的,如目前在互连网上提供www、mail等服务的设备一般为使用unix操作系统的服务器,他们默认是开放一些有被恶意利用可能的udp服务的,如:echo,chargen. echo服务回显接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符,如果恶意***者将这两个udp服务互指,则网络可用带宽会很快耗尽。
自99年后半年开始,DDoS***不断在Internet出现,并在应用的过程中不断的得到完善,在Unix或nt环境上截至目前已有一系列比较成熟的软件产品,如Trinoo,TFN,TFN2K,STACHELDRATH等,他们基本核心及***思路是很相象的,下面就通过Trinoo对这类软件做一介绍。
Trinoo是基于UDP flood的***软件,它向被***目标主机随机端口发送全零的4字节UDP包,被***主机的网络性能在处理这些超出其处理能力垃圾数据包的过程中不断下降,直至不能提供正常服务甚至崩溃。
Trinoo***功能的实现,是通过三个模块付诸实施的,
1:***守护进程(NS) 2:***控制进程(MASTER) 3:客户端(NETCAT,标准TELNET程序等),
***守护进程NS是真正实施***的程序,它一般和***控制进程(MASTER)所在主机分离,在原始C文件ns.c编译的时候,需要加入可控制其执行的***控制进程MASTER所在主机IP,(只有在ns.c中的IP方可发起ns的***行为)编译成功后,***通过目前比较成熟的主机系统漏洞破解(如rpc.cmsd,rpc.ttdbserver,rpc.statd)可以方便的将大量NS植入因特网中有上述漏洞主机内。ns运行时,会首先向***控制进程(MASTER)所在主机的31335端口发送内容为HELLO的UDP包,标示它自身的存在,随后***守护进程即处于对端口27444的侦听状态,等待master***指令的到来。
***控制进程(MASTER)在收到***守护进程的HELLO包后,会在自己所在目录生成一个加密的名为...的可利用主机表文件, MASTER的启动切枰苈氲模谡肥淙肽厦苈雊Orave后, MASTER即成功启动,它一方面侦听端口31335,等待***守护进程的HELLO包,另一方面侦听端口27665,等待客户端对其的连接。当客户端连接成功并发出指令时, MASTER所在主机将向***守护进程ns所在主机的27444端口传递指令。
客户端不是trinoo自带的一部分,可用标准的能提供TCP连接的程序,如TELNET,NETCAT等,连接MASTER所在主机的27665端口, 输入默认密码betaalmostdone后,即完成了连接工作,进入***控制可操作的提示状态。
目前版本的trinoo有六个可用命令,mtimer:设定***时长,如mtimer 60,***60秒,如果不设置的话,默认是无限。dos:对某一目标主机实施***,如dos 12.34.45.56 mdie:停止正在实施的***,使用这一功能需要输入口令killme,mping:请求***守护进程NS回应,监测ns是否工作。mdos, 对多个目标主机实施***,msize:设置***UDP包的大小。 Trinoo运行的总体轮廓可用下图说明:
我们来看一次***的实例:

被***的目标主机victim IP为:12.23.34.45

ns被植入三台sun的主机里,他们的IP对应关系分别为client1:11.11.11.11

client2:22.22.22.22

client3:33.33.33.33

master所在主机为masterhost:11.22.33.44

首先我们要启动各个进程,在client1,2,3上分别执行ns,启动***守护进程,

其次,在master所在主机启动master

masterhost# ./master

?? gOrave (系统示输入密码,输入gOrave后master成功启动)

trinoo v1.07d2+f3+c [Mar 20 2000:14:38:49] (连接成功)在任意一台与网络连通的可使用telnet的设备上,执行

telnet 11.22.33.44 27665

Escape character is '^]'.

betaalmostdone (输入密码)

trinoo v1.07d2+f3+c..[rpm8d/cb4Sx/]

trinoo> (进入提示符)

trinoo> mping (我们首先来监测一下各个***守护进程是否成功启动)

mping: Sending a PING to every Bcasts.

trinoo> PONG 1 Received from 11.11.11.11

PONG 2 Received from 22.22.22.22

PONG 3 Received from 33.33.33.33 (成功响应)

trinoo> mtimer 60 (设定***时间为60秒)

mtimer: Setting timer . bcast to 60.

trinoo> dos 12.23.34.45

DoS: Packeting 12.23.34.45......
至此一次***结束,此时ping 12.23.34.45,会得到icmp不可到达反馈,目标主机此时与网络的正常连接已被破坏。
由于目前版本的trinoo尚未采用IP地址欺骗,因此在被***的主机系统日志里我们可以看到如下纪录:
Mar 20 14:40:34 victim snmpXdmid: Will attempt to re-establish connection.

Mar 20 14:40:35 victim snmpdx: error while receiving a pdu from 11.11.11.11.59841: The message has a wrong header type (0x0)

Mar 20 14:40:35 victim snmpdx: error while receiving a pdu from 22.22.22.22.43661: The message has a wrong header type (0x0)

Mar 20 14:40:36 victim snmpdx: error while receiving a pdu from 33.33.33.33.40183: The message has a wrong header type (0x0)

Mar 20 14:40:36 victim snmpXdmid: Error receiving PDU The message has a wrong header type (0x0).

Mar 20 14:40:36 victim snmpXdmid: Error receiving packet from agent; rc = -1.

Mar 20 14:40:36 victim snmpXdmid: Will attempt to re-establish connection.

Mar 20 14:40:36 victim snmpXdmid: Error receiving PDU The message has a wrong header type (0x0).

Mar 20 14:40:36 victim snmpXdmid: Error receiving packet from agent; rc = -1.

由上述日志,我们不难看出发起***的ip地址,这一问题,通过ip spoof在后期的软件tfn,tfn2k等软件中得到了解决,给被***者找出肇事者进一步增加了难度。

Trinoo等DdoS***软件的出现,对网络的安全产生了巨大的挑战,借助这种在网上可以得到的公开软件,任何一个普通的上网者对网络的安全都构成了潜在的威胁,那么能不能做一些预防工作呢?
有一些是可以做的,
首先,检测自己的系统是否被植入了***守护程序,最简单的办法,检测上述提到的udp端口,如netstat -a | grep udp 端口号,如果得到listen等激活状态,就要注意了,或者用专门的检测软件,这里推荐美国FBI专门研制的Find Distributed Denial of Service (find_ddos) , 最新版本的可检测到tfn2k client, tfn2k daemon, trinoo daemon, trinoo master, tfn daemon, tfn client, stacheldraht master, stacheldraht client, stachelddraht demon和 tfn-rush client等目前几乎所有流行***软件。 它的运行很简单,解开包,运行find_ddos即可,下面为在一台可疑设备运行结果,
Logging output t LOG

Scanning running processes...

/proc/795/object/a.out: trinoo daemon

/usr/bin/gcore: core.795 dumped

/proc/800/object/a.out: trinoo master

/usr/bin/gcore: core.800 dumped

Scanning "/tmp"...

Scanning "/"...

/yiming/tfn2k/td: tfn2k daemon

/yiming/tfn2k/tfn: tfn2k client

/yiming/trinoo/daemon/ns: trinoo daemon

/yiming/trinoo/master/master: trinoo master

/yiming/trinoo/master/...: possible IP list file

NOTE: This message is based . the filename being suspicious, and is not

based . an analysis of the file contents. It is up to you to examine the

file and decide whether it is actually an IP list file related to a DDOS

tool.

/yiming/stacheldrahtV4/leaf/td: stacheldraht daemon

/yiming/stacheldrahtV4/telnetc/client: stacheldraht client

/yiming/stacheldrahtV4/td: stacheldraht daemon

/yiming/stacheldrahtV4/client: stacheldraht client

/yiming/stacheldrahtV4/mserv: stacheldraht master
ALERT: .e or more DDOS tools were found . your system.

Please examine LOG and take appropriate action.

看来这台设备的***守护程序还不少呢,系统管理员要注意啦!
这个软件可从下面的地址得到:[url]http://www.fbi.gov/nipc/trinoo.htm[/url] 。
其次,封掉不必要的UDP服务,如echo,chargen,减少udp***的入口。
第三,在路由器连接骨干网络的端口结合采用CEF和ip verify unicast reverse-path,挡住一部分ip spoof,syn的***。同时使用access control lists将可能被使用的网络保留地址封掉。 借助使用CAR技术来限制 ICMP 报文大小。具体使用可查阅cisco网站。
第四,在敏感主机如www服务器使用ip filter软件。
截至目前,实际很彻底的防御手段还没有出现,但采用上述做法可以较大地减小不安全性。
Internet的发展,永远是一场不会停止的网络安全攻与防的较量。
用微软的压力测试工具进行拒绝服务***

其实DoS的工具还是不少的,不过总是不大好用,偶常常在点击了“***”之后扭头看我身后倒霉的兄弟,可是往往效果不佳,并且使用起来也不爽。为此,一向以界面友好、使用方便著称的微软公司为我们带来了Web Application Stress——一款优秀的WEB应用程序压力测试工具!

认识一下Web Application Stress先:




非常熟悉的界面吧?绝对和我们平时使用应用程序的界面一样简介明了。看到了?Server处写上我们要测试的WEB服务器地址,Notes我不说什么了,如果不明白自己去查金山词霸 ^_^ 在界面的下面添写你要测试的页面地址。比如说对方的首页是index.asp你就可以写这个,当然也可以是default.htm或者别的什么,我们也可以一次测试几个页面,只要多添写几个页面就可以了。

看下软件设置(Settings):




Stress level这里写上你要进行的压力级别,也就是线程,可以写500,可以写1000。当然别的数字也可以。不过不要太贪心,偶曾经一时发晕写上个99999,结果机器立马变慢、变慢,最后终于蓝屏死掉了。所以在hack人家之前要考虑好自己机器的承受能力。^_^

Test Run Time这里写上要测试的时间,一般的压力测试不用太久,当然如果是DoS时间就要长一些,完全取决于你想对这个网站做什么了。

其它选项我们用默认的就可以了。比如我们想测试一下192.168.10.168的WEB服务器,我知道那边装了一个论坛,首页是index.asp,就在服务器地址那里写上192.168.10.168,调用的页面是index.asp,之后选上1000个线程,开始测试。

我们到被测试的机器上可以看到:




IIS进程占用了CPU的97%,很可观的数字哦!再看看“性能”部分:




自从开了Web Applacation Stress之后机器性能急剧下降,CPU占用率将近100%,内存使用也有所上升,并且,这时候再访问192.168.10.168的论坛的时候已经很慢了,并且有连接不上的情况出现。

接下来,我们用Sniffer Pro抓包:




可以看到,从我的机器192.168.10.203发往被测试机192.168.10.168的数据包占用了被测试机99.76%的数据流量,不能不说效果“非常明显”,而着,我仅仅用了我一台机器进行测试,并且只是开了1000个线程,我这边的机器照用不误呢!

接下来,我测试了某个主机供应商的主机,因为一般出售虚拟主机的地方,对某个虚拟主机的CPU占用都有分配的,一般是2-3%,这样我们只要用一台机器对网站进行“压力测试”就足以让供应商关闭这个站点了。是不是很恐怖?

出于效果的考虑,在测试的时候尽量选用PHP或ASP的页面进行测试,因为这样的页面是在服务器端执行的,对服务器压力最大!并且最好找页面比较大的,如果能找到一个调用数据库的页面更好,这样同时调用数据库,更加大了服务器的负担,相信一会儿服务器就会挂掉!

本文的测试仅供网站管理员测试服务器性能,请勿用文中方法***合法的服务器!本文作者和《***X档案》不对因本文引起的任何事件负责!
 
教你如何预防DdoS***


一、拒绝服务***的发展

     从拒绝服务***诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS。那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的***方式。而DdoS(Distributed Denial of Service,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务***,是一种分布、协作的大规模***方式,主要瞄准比较大的站点,比如一些商业公司、搜索引擎和政府部门的站点。DdoS***是利用一批受控制的机器向一台机器发起***,这样来势迅猛的***令人难以防备,因此具有较大的破坏性。如果说以前网络管理员对抗Dos可以采取过滤IP地址方法的话,那么面对当前DdoS众多伪造出来的地址则显得没有办法。所以说防范DdoS***变得更加困难,如何采取措施有效的应对呢?下面我们从两个方面进行介绍。
二、预防为主保证安全
     DdoS***是***最常用的***手段,下面列出了对付它的一些常规方法。
     (1)定期扫描
     要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是***利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。
     (2)在骨干节点配置防火墙
     防火墙本身能抵御DdoS***和其他一些***。在发现受到***的时候,可以将***导向一些牺牲主机,这样可以保护真正的主机不被***。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范***优秀的系统。
     (3)用足够的机器承受******
     这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给******,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,***已无力支招儿了。不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。
     (4)充分利用网络设备保护网络资源
     所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被***时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被***死机时,另一台将马上工作。从而最大程度的削减了DdoS的***。
     (5)过滤不必要的服务和端口
     可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
     (6)检查访问者的来源
     使用Unicast Reverse Path Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多******常采用假IP地址方式迷惑用户,很难查出它来自何处。因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。
     (7)过滤所有RFC1918 IP地址
     RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0 和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将***时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的***。
     (8)限制SYN/ICMP流量
     用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有******。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用。
三、寻找机会应对***
     如果用户正在遭受***,他所能做的抵御工作将是非常有限的。因为在原本没有准备好的情况下有大流量的灾难性***冲向用户,很可能在用户还没回过神之际,网络已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。
     (1)检查***来源,通常***会通过很多假IP地址发起***,此时,用户若能够分辨出哪些是真IP哪些是假IP地址,然后了解这些IP来自哪些网段,再找网网管理员将这些机器关闭,从而在第一时间消除***。如果发现这些IP地址是来自外面的而不是公司内部的IP的话,可以采取临时过滤的方法,将这些IP地址在服务器或路由器上过滤掉。
     (2)找出***者所经过的路由,把***屏蔽掉。若***从某些端口发动***,用户可把这些端口屏蔽掉,以阻止***。不过此方法对于公司网络出口只有一个,而又遭受到来自外部的DdoS***时不太奏效,毕竟将出口端口封闭后所有计算机都无法访问internet了。
     (3)最后还有一种比较折中的方法是在路由器上滤掉ICMP。虽然在***时他无法完全消除***,但是过滤掉ICMP后可以有效的防止***规模的升级,也可以在一定程度上降低***的级别。
总结:
     目前网络安全界对于DdoS的防范还是没有什么好办法的,主要靠平时维护和扫描来对抗。简单的通过软件防范的效果非常不明显,即便是使用了硬件安防设施也仅仅能起到降低***级别的效果,Ddos***只能被减弱,无法被彻底消除。不过如果我们按照本文的方法和思路去防范DdoS的话,收到的效果还是非常显著的,可以将***带来的损失降低到最小。
 
简单设置防御小流量DDOS***

    防范DDOS***并不一定非要用防火墙。一部份DDOS我们可以通过DOS命令netstat-an|more或者网络综合分析软件:sniff等查到相关***手法、如***某个主要端口、或者对方主要来自哪个端口、对方IP等。这样我们可以利用w2k自带的远程访问与路由或者IP策略等本身自带的工具解决掉这些***。做为无法利用这些查到相关数据的我们也可以尝试一下通过对服务器进行安全设置来防范DDOS***。如果通过对服务器设置不能有效解决,那么就可以考虑购买抗DDOS防火墙了。其实从操作系统角度来说,本身就藏有很多的功能,只是很多是需要我们慢慢的去挖掘的。这里我给大家简单介绍一下如何在Win2000环境下通过修改注册表,增强系统的抗DoS能力。 

     请注意,以下的安全设置均通过注册表进行修改,该设置的性能取决于服务器的配置,尤其是CPU的处理能力。如按照如下进行安全设置,采用双路至强2.4G的服务器配置,经过测试,可承受大约1万个包的***量。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

     '关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接

     '第二个网关,通过关闭它可以优化网络。

"EnableDeadGWDetect"=dword:00000000

     '禁止响应ICMP重定向报文。此类报文有可能用以***,所以系统应该拒绝接受ICMP重定向报文。

"EnableICMPRedirects"=dword:00000000

     '不允许释放NETBIOS名。当***者发出查询服务器NETBIOS名的请求时,可以使服务器禁止响应。

     '注意系统必须安装SP2以上

"NonameReleaseOnDemand"=dword:00000001

     '发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态,

     '不设该值,则系统每隔2小时对TCP是否有闲置连接进行检查,这里设置时间为5分钟。

"KeepAliveTime"=dword:000493e0

     '禁止进行最大包长度路径检测。该项值为1时,将自动检测出可以传输的数据包的大小,

     '可以用来提高传输效率,如出现故障或安全起见,设项值为0,表示使用固定MTU值576bytes。

"EnablePMTUDiscovery"=dword:00000000

     '启动syn***保护。缺省项值为0,表示不开启***保护,项值为1和2表示启动syn***保护,设成2之后

     '安全级别更高,对何种状况下认为是***,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值

     '设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。

"SynAttackProtect"=dword:00000002

     '同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态

     '的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。

"TcpMaxHalfOpen"=dword:00000064

     '判断是否存在***的触发点。这里使用微软建议值,服务器为80,高级服务器为400。

"TcpMaxHalfOpenRetried"=dword:00000050

     '设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。

     '项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受***规模修改。

     '微软站点安全推荐为2。

"TcpMaxConnectResponseRetransmissions"=dword:00000001

     '设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。

"TcpMaxDataRetransmissions"=dword:00000003

     '设置syn***保护的临界点。当可用的backlog变为0时,此参数用于控制syn***保护的开启,微软站点安全推荐为5。

"TCPMaxPortsExhausted"=dword:00000005

     '禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的

     '源路由包,微软站点安全推荐为2。

"DisableIPSourceRouting"=dword:0000002

     '限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。

"TcpTimedWaitDelay"=dword:0000001e

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]

     '增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。

"BacklogIncrement"=dword:00000003

     '最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。

"MaxConnBackLog"=dword:000003e8 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters]

     '配置激活动态Backlog。对于网络繁忙或者易遭受SYN***的系统,建议设置为1,表示允许动态Backlog。

"EnableDynamicBacklog"=dword:00000001

     '配置最小动态Backlog。默认项值为0,表示动态Backlog分配的自由连接的最小数目。当自由连接数目

     '低于此数目时,将自动的分配自由连接。默认值为0,对于网络繁忙或者易遭受SYN***的系统,建议设置为20。

"MinimumDynamicBacklog"=dword:00000014

     '最大动态Backlog。表示定义最大"准"连接的数目,主要看内存大小,理论每32M内存最大可以

     '增加5000个,这里设为20000。

"MaximumDynamicBacklog"=dword:00002e20

     '每次增加的自由连接数据。默认项值为5,表示定义每次增加的自由连接数目。对于网络繁忙或者易遭受SYN***

     '的系统,建议设置为10。

"DynamicBacklogGrowthDelta"=dword:0000000a

     以下部分需要根据实际情况手动修改

'-------------------------------------------------------------------------------------------------

'[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

     '启用网卡上的安全过滤

'"EnableSecurityFilters"=dword:00000001

     '同时打开的TCP连接数,这里可以根据情况进行控制。

'"TcpNumConnections"=

     '该参数控制TCP报头表的大小限制。在有大量RAM的机器上,增加该设置可以提高SYN***期间的响应性能。

'"TcpMaxSendFree"=

'[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{自己的网卡接口}]

     '禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致***,所以禁止路由发现。

"PerformRouterDiscovery"=dword:00000000
 
7种拒绝任务式***(DoS)***方法和11种防范方法



     Synflood: 该***以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。

     Smurf:该***向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要***的主机地址。子网上所有主机都回应广播包请求而向被***主机发包,使该主机受到***。

     Land-based:***者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被***主机,这种包可以造成被***主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。

     Ping of Death:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death***,该***会造成主机的宕机。

     Teardrop:IP数据包在网络传递时,数据包可以分成更小的片段。***者可以通过发送两段(或者更多)数据包来实现TearDrop***。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。

     PingSweep:使用ICMP Echo轮询多个主机。

     Pingflood: 该***在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。

     防DDoS***11招

     1.确保所有服务器采用最新系统,并打上安全补丁。计算机紧急响应协调中心发现,几乎每个受到DDoS***的系统都没有及时打上补丁。

     2.确保管理员对所有主机进行检查,而不仅针对关键主机。这是为了确保管理员知道每个主机系统在 运行什么?谁在使用主机?哪些人可以访问主机?不然,即使***侵犯了系统,也很难查明。

     3.确保从服务器相应的目录或文件数据库中删除未使用的服务如FTP或NFS。Wu-Ftpd等守护程序存在一些已知的漏洞,***通过根***就能获得访问特权系统的权限,并能访问其他系统——甚至是受防火墙保护的系统。

     4.确保运行在Unix上的所有服务都有TCP封装程序,限制对主机的访问权限。

     5.禁止内部网通过Modem连接至PSTN系统。否则,***能通过电话线发现未受保护的主机,即刻就能访问极为机密的数据。

     6.禁止使用网络访问程序如Telnet、Ftp、Rsh、Rlogin和Rcp,以基于PKI的访问程序如SSH取代。SSH不会在网上以明文格式传送口令,而Telnet和Rlogin则正好相反,***能搜寻到这些口令,从而立即访问网络上的重要服务器。此外,在Unix上应该将.rhost和hosts.equiv文件删除,因为不用猜口令,这些文件就会提供登录访问!

     7.限制在防火墙外与网络文件共享。这会使***有机会截获系统文件,并以特洛伊***替换它,文件传输功能无异将陷入瘫痪。

     8.确保手头有一张最新的网络拓扑图。这张图应该详细标明TCP/IP地址、主机、路由器及其他网络设备,还应该包括网络边界、非军事区(DMZ)及网络的内部保密部分。

     9.在防火墙上运行端口映射程序或端口扫描程序。大多数事件是由于防火墙配置不当造成的,使DoS/DDoS***成功率很高,所以定要认真检查特权端口和非特权端口。

     10.检查所有网络设备和主机/服务器系统的日志。只要日志出现漏洞或时间出现变更,几乎可以肯定:相关的主机安全受到了危胁。

     11.利用DDoS设备提供商的设备。