CISCO路由器配置防止DDOS攻击

Session 1 DDOS的攻击方法:


        拒尽服务(DoS)攻击是目前黑客广泛使用的一种攻击手段,它通过独占网络资源、使其他主机不能进行正常访问,从而导致宕机或网络瘫痪。
CIO如何化解IT团队人际冲突?抱守与放弃:CIO该如何抉择,如何重塑政府CIO职能?2009年CIO面临的挑战以及应对策略,三个教训我亲历的战略转型故事阔别CEO“直觉决策”CIO如何把握时机?
拒尽服务(DoS)攻击是目前黑客广泛使用的一种攻击手段,它通过独占网络资源、使其他主机不能进行正常访问,从而导致宕机或网络瘫痪。
        DoS攻击主要分为Smurf、SYNFlood和Fraggle三种,在Smurf攻击中,攻击者使用ICMP数据包阻塞服务器和其他网络资源;SYNFlood攻击使用数目巨大的TCP半连接来占用网络资源;Fraggle攻击与Smurf攻击原理类似,使用UDPecho请求而不是ICMPecho请求发起攻击。

        尽管网络安全专家都在着力开发阻止DoS攻击的设备,但收效不大,由于DoS攻击利用了TCP协议本身的弱点。正确配置路由器能够有效防止DoS攻击。以Cisco路由器为例,Cisco路由器中的IOS软件具有很多防止DoS攻击的特性,保护路由器自身和内部网络的安全。


1、使用扩展访问列表

扩展访问列表是防止DoS攻击的有效工具。它既可以用来探测DoS攻击的类型,也可以阻止DoS攻击。ShowIPaccess-list命令能够显示每个扩展访问列表的匹配数据包,根据数据包的类型,用户就可以确定DoS攻击的种类。假如网络中出现了大量建立TCP连接的请求,这表明网络受到了SYNFlood攻击,这时用户就可以改变访问列表的配置,阻止DoS攻击。


2、使用QoS

       使用服务质量优化(QoS)特征,如加权公平队列(WFQ)、承诺访问速率(CAR)、一般流量整形(GTS)以及定制队列(CQ)等,都可以有效阻止DoS攻击。需要留意的是,不同的QoS策略对付不同DoS攻击的效果是有差别的。例如,WFQ对付PingFlood攻击要比防止SYNFlood攻击更有效,这是由于PingFlood通常会在WFQ中表现为一个单独的传输队列,而SYNFlood攻击中的每一个数据包都会表现为一个单独的数据流。此外,人们可以利用CAR来限制ICMP数据包流量的速度,防止Smurf攻击,也可以用来限制SYN数据包的流量速度,防止SYNFlood攻击。使用QoS防止DoS攻击,需要用户弄清楚QoS以及DoS攻击的原理,这样才能针对DoS攻击的不同类型采取相应的防范措施。


3、使用单一地址逆向转发
       逆向转发(RPF)是路由器的一个输进功能,该功能用来检查路由器接口所接收的每一个数据包。假如路由器接收到一个源IP地址为10.10.10.1的数据包,但是CEF(CiscoExpressForwarding)路由表中没有为该IP地址提供任何路由信息,路由器就会丢弃该数据包,因此逆向转发能够阻止Smurf攻击和其他基于IP地址伪装的攻击。

       使用RPF功能需要将路由器设为快速转发模式(CEFswitching),并且不能将启用RPF功能的接口配置为CEF交换。RPF在防止IP地址欺骗方面比访问列表具有上风,首先它能动态地接受动态和静态路由表中的变化;第二RPF所需要的操纵维护较少;第三RPF作为一个反欺骗的工具,对路由器本身产生的性能冲击,要比使用访问列表小得多。


4、使用TCP拦截
       Cisco在IOS11.3版以后,引进了TCP拦截功能,这项功能可以有效防止SYNFlood攻击内部主机。
在TCP连接请求到达目标主机之前,TCP拦截通过拦截和验证来阻止这种攻击。TCP拦截可以在拦截和监视两种模式下工作。在拦截模式下,路由器拦截到达的TCP同步请求,并代表服务器建立与客户机的连接,假如连接成功,则代表客户机建立与服务器的连接,并将两个连接进行透明合并。在整个连接期间,路由器会一直拦截和发送数据包。对于非法的连接请求,路由器提供更为严格的对于half-open的超时限制,以防止自身的资源被SYN攻击耗尽。在监视模式下,路由器被动地观察流经路由器的连接请求,假如连接超过了所配置的建立时间,路由器就会封闭此连接。
       在Cisco路由器上开启TCP拦截功能需要两个步骤:一是配置扩展访问列表,以确定需要保护的IP地址;二是开启TCP拦截。配置访问列表是为了定义需要进行TCP拦截的源地址和目的地址,保护内部目标主机或网络。在配置时,用户通常需要将源地址设为any,并且指定具体的目标网络或主机。假如不配置访问列表,路由器将会答应所有的请求经过。
使用基于内容的访问控制
基于内容的访问控制(CBAC)是对Cisco传统访问列表的扩展,它基于应用层会话信息,智能化地过滤TCP和UDP数据包,防止DoS攻击。
       CBAC通过设置超时时限值和会话门限值来决定会话的维持时间以及何时删除半连接。对TCP而言,半连接是指一个没有完成三阶段握手过程的会话。对UDP而言,半连接是指路由器没有检测到返回流量的会话。
       CBAC正是通过监视半连接的数目和产生的频率来防止洪水攻击。每当有不正常的半连接建立或者在短时间内出现大量半连接的时候,用户可以判定是遭受了洪水攻击。CBAC每分钟检测一次已经存在的半连接数目和试图建立连接的频率,当已经存在的半连接数目超过了门限值,路由器就会删除一些半连接,以保证新建立连接的需求,路由器持续删除半连接,直到存在的半连接数目低于另一个门限值;同样,当试图建立连接的频率超过门限值,路由器就会采取相同的措施,删除一部分连接请求,并持续到请求连接的数目低于另一个门限值。通过这种连续不断的监视和删除,CBAC可以有效防止SYNFlood和Fraggle攻击。
       路由器是企业内部网络的第一道防护屏障,也是黑客攻击的一个重要目标,假如路由器很轻易被攻破,那么企业内部网络的安全也就无从谈起,因此在路由器上采取适当措施,防止各种DoS攻击是非常必要的。用户需要留意的是,以上先容的几种方法,对付不同类型的DoS攻击的能力是不同的,对路由器CPU和内存资源的占用也有很大差别,在实际环境中,用户需要根据自身情况和路由器的性能来选择使用


Session 2 通过TCP拦截技术防止DDOS攻击
1、DDOS攻击的原理:使用大量的TCP连接来请求主机的资源,TCP建立连接的三次握手过程中,一方向另一方发送的第一个报文设置了SYN位,当某台设备接收到一个请求服务的初始报文时,该设备响应这个报文,发回一个设置了SYN和ACK位的报文,并等待源端来的ACK应答。那么,如果发送方并不回复ACK,主机就会因为超时而结束连接。当主机在等待这个连接超时的过程中,连接处于半开(Half-open)状态,半开连接消耗了主机的资源。在等待三次握手过程中耗尽主机资源就形成了SYN攻击,尤其是将成千上万的SYN发往某台主机,则该主机将很快崩溃掉。


2、在CISCO路由器上的配置:
首先,这台路由器是一台边界或者次边界路由器,所有保护的应用服务放在该路由器的后面。
再次,先屏蔽掉一般的ICMP echo的信息,防止扫描。
最后,配置TCP拦截功能
1)、定义一个acl,匹配流量的来源和保护的目标:
  access-list 101 permit tcp any host 172.17.30.30
  原地址为any表示对所有访问172.17.30.30这个地址的流量做拦截动作
2)、全局下开启tcp intercept.
  ip tcp intercept list 101

3)、设置tcp拦截的模式 ,tcp拦截有两种模式一种是主动拦截模式,一种是监视模式。

3.1、主动拦截模式对于匹配的所有的流量进行拦截,将源发送来的流量进行拦截,先与(路由器)自己建立TCP连接,如果TCP连接能够完成三次握手的动作,那么就将源视为合法的请求,并将数据包转发给内网受保护的目标(172.17.30.30),并且最终使2个连接合二为一,使得源和内网受保护的应用直接建立TCP连接。
         拦截模式下,路由器响应到达的SYN请求,并代替服务器发送一个响应初始源IP地址的SYN、ACK报文,然后等待客户机的ACK。如果收到ACK,再将原来的SYN报文发往服务器,路由器代替原来的客户机与服务器一起完成三次握手过程。这种模式会增加路由器的内存和CPU的额外开销,并且增加了一些初始会话的延时。 
3.2、监视模式不参与拦截,但是监控TCP的连接,一旦检测到大量半连接的TCP会话时候在设置的等待时间超时后会将半开连接中断。
          在监视模式下,路由器允许SYN请求直接到达服务器。如果这个会话在30秒钟内(默认值)没有建立起来,路由器就给服务器发送一个RST,以清除这个连接。
CISCO路由器默认是使用主动模式:ip tcp intercept mode intercept
但是一般考虑到路由器资源利用开销问题,建议使用监控模式:
  ip tcp intercept mode watch
  ip tcp intercept watch-timeout 20
4)、另外tcp连接你也不能一辈子都让他连着。设置一个tcp超时时间,默认24小时,一般网中特殊服务的需要长连接的应用时候30分钟足咦
  ip tcp intercept connection-timeout 1800
5)、对于最大半开连接(half-open)的门限也是可以更改的。默认low 900,high 1100.
  ip tcp intercept max-incomplete low 800
        ip tcp intercept max-incomplete high 1000
6)、在路由器开始删除连接之前,每分钟内能存在的最大half-open连接数目。   
        ip tcp intercept one-minute high number 1100   
7)、在路由器停止删除连接之前,每分钟内能存在的最小half-open连接数目 
        ip tcp intercept one-minute low number 900    
  当一个路由器因为其所定义的门限值被超出而确认服务器正遭受攻击时,路由器就主动删除连接,直到half-open的连接值降到小于门限值。默认关闭的是最早的连接,除非使用了“ip tcp intercept drop-mode random”命令(随机关闭半开连接)。当所设置的门限值被超时时,路由器进行下面的动作:   
1、 每一个新的连接导致一个最早的(或随机的)连接被删除。  
2 、初始的重传超时时间被减少一半,直到0.5秒。   
3、 如果处于监视模式,则超时时间减半,直到15秒。
       有两个因素用来判断路由器是否正在遭受攻击。如果超过了两个高门限值中的一个,则表明路由器正遭受攻击,直到门限值已经降至两个低门限值以下。下面显示了有关的参数及其默认值,并对其加以简单描述p intercept max-incomplete high 1000
8)、状态查看
  show tcp intercept connecitons

  show tcp intercept statistics


你可能感兴趣的:(CISCO路由器配置防止DDOS攻击)