拒绝服务(DoS)攻击是目前黑客广泛使用的一种攻击手段,它通过独占网络资源、使其他主机不能进行正常访问,从而导致宕机或网络瘫痪。
DoS攻击主要分为Smurf、SYN Flood和Fraggle三种,在Smurf攻击中,攻击者使用ICMP数据包阻塞服务器和其他网络资源;SYN Flood攻击使用数量巨大的TCP半连接来占用网络资源;Fraggle攻击与Smurf攻击原理类似,使用UDP echo请求而不是ICMP echo请求发起攻击。
尽管网络安全专家都在着力开发阻止DoS攻击的设备,但收效不大,因为DoS攻击利用了TCP协议本身的弱点。正确配置路由器能够有效防止DoS攻击。以Cisco路由器为例,Cisco路由器中的IOS软件具有许多防止DoS攻击的特性,保护路由器自身和内部网络的安全。
使用扩展访问列表
扩展访问列表是防止DoS攻击的有效工具。它既可以用来探测DoS攻击的类型,也可以阻止DoS攻击。Show ip Access-list命令能够显示每个扩展访问列表的匹配数据包,根据数据包的类型,用户就可以确定DoS攻击的种类。假如网络中出现了大量建立TCP连接的请求,这表明网络受到了SYN Flood攻击,这时用户就可以改变访问列表的配置,阻止DoS攻击。
使用QoS
使用服务质量优化(QoS)特征,如加权公平队列(WFQ)、承诺访问速率(CAR)、一般流量整形(GTS)以及定制队列(CQ)等,都可以有效阻止DoS攻击。需要注重的是,不同的QoS策略对付不同DoS攻击的效果是有差别的。例如,WFQ对付Ping Flood攻击要比防止SYN Flood攻击更有效,这是因为Ping Flood通常会在WFQ中表现为一个单独的传输队列,而SYN Flood攻击中的每一个数据包都会表现为一个单独的数据流。此外,人们可以利用CAR来限制ICMP数据包流量的速度,防止Smurf攻击,也可以用来限制SYN数据包的流量速度,防止SYN Flood攻击。使用QoS防止DoS攻击,需要用户弄清楚QoS以及DoS攻击的原理,这样才能针对DoS攻击的不同类型采取相应的防范措施。
使用单一地址逆向转发
逆向转发(RPF)是路由器的一个输入功能,该功能用来检查路由器接口所接收的每一个数据包。假如路由器接收到一个源IP地址为10.10.10.1的数据包,但是CEF(Cisco EXPress Forwarding)路由表中没有为该IP地址提供任何路由信息,路由器就会丢弃该数据包,因此逆向转发能够阻止Smurf攻击和其他基于IP地址伪装的攻击。
使用RPF功能需要将路由器设为快速转发模式(CEF switching),并且不能将启用RPF功能的接口配置为CEF交换。RPF在防止IP地址欺骗方面比访问列表具有优势,首先它能动态地接受动态和静态路由表中的变化;第二RPF所需要的操作维护较少;第三RPF作为一个反欺骗的工具,对路由器本身产生的性能冲击,要比使用访问列表小得多。
使用TCP拦截
Cisco在IOS 11.3版以后,引入了TCP拦截功能,这项功能可以有效防止SYN Flood攻击内部主机。
在TCP连接请求到达目标主机之前,TCP拦截通过拦截和验证来阻止这种攻击。TCP拦截可以在拦截和监视两种模式下工作。在拦截模式下,路由器拦截到达的TCP同步请求,并代表服务器建立与客户机的连接,假如连接成功,则代表客户机建立与服务器的连接,并将两个连接进行透明合并。在整个连接期间,路由器会一直拦截和发送数据包。对于非法的连接请求,路由器提供更为严格的对于half-open的超时限制,以防止自身的资源被SYN攻击耗尽。在监视模式下,路由器被动地观察流经路由器的连接请求,假如连接超过了所配置的建立时间,路由器就会关闭此连接。
在Cisco路由器上开启TCP拦截功能需要两个步骤:一是配置扩展访问列表,以确定需要保护的IP地址;二是开启TCP拦截。配置访问列表是为了定义需要进行TCP拦截的源地址和目的地址,保护内部目标主机或网络。在配置时,用户通常需要将源地址设为any,并且指定具体的目标网络或主机。假如不配置访问列表,路由器将会答应所有的请求经过。