经典防火墙的操作指导书
syn-flood攻击就是利用了这个原理,攻击者伪造TCP的连接请求,向被攻击的设备正在监听的端口发送大量的连接请求(SYN)报文,被攻击的设备按照正常的处理过程,回应这个请求报文,同时为它分配了相应的资源。但是攻击者本意并不需要连接建立成功,因此服务器根本不会接收到第三个ACK报文,现有分配的资源只能等待超时释放。如果攻击者能够在超时时间到达之前发出足够的攻击报文,使被攻击的系统所预留所有资源(TCP缓存)都被耗尽。那么被攻击的设备将无法再向正常的用户提供服务,攻击者也就达到了攻击的目的(拒绝服务)。
从被攻击设备的角度讲,没有很好的方法能够阻止这种攻击的发生。在我们防火墙上可以通过配置Syn-flood防御功能来对服务器进行保护。防火墙上进行syn-flood防御所采用的是TCP Proxy技术,启动这个功能之后,对于每个针对受保护设备的TCP连接请求,防火墙会屏蔽这个报文并代替服务器返回一个SYN ACK,如果发起连接请求的是真正的客户端,那么在接收到第三个ACK报文之后,防火墙会向受保护的服务器发起真正的连接请求,并在连接成功建立之后,作为中转,在两个会话间转换数据,使客户端可以正常访问服务器。而如果连接的发起者是一个假冒的IP地址,防火墙会很快的将没有收到ACK报文的表项进行回收,此时,由于被攻击的服务器并没有真正收到这个攻击请求,因此,服务器还是可以正常的响应连接的。这个功能利用了防火墙强大的处理能力,代替受保护的设备承受攻击。syn-flood防御功能可以保护单个的IP地址或者整个域下面所有设备,在两个参数都配置的情况下,IP地址关联的参数的优先级更高。假设要保护位于受信域的IP地址为10.110.10.10的设备免受syn-flood的攻击,需在命令行进行如下配置:
[Eudemon] firewall defend syn-flood ip 10.110.10.10 max-rate 100 max-number 1000
[Eudemon] firewall defend syn-flood enable
[Eudemon] firewall zone trust
[Eudemon-zone-trust] statistic enable ip inzone
要注意的是,一定要配置相应的统计功能,因为攻击防范很多功能的实现都要依赖统计数据,如果不使能对应的统计功能,攻击防范模块将无法获得必要的数据,也就无法真正的发挥作用。
3.1.2 UDP/ICMP Flood攻击
UDP/ICMP Flood是比较单纯的流量攻击,攻击者通过向一些基于UDP/ICMP的基本服务发送大量的报文,使被攻击的设备忙于处理这些无用的请求,最终耗尽处理能力,达到拒绝服务的目的。防火墙上针对这两个攻击有相应的命令行设定firewall defend udp-flood/icmp-flood,可以设定的参数同SYN Flood攻击的参数基本相同。要注意的是,使能这个功能同样要同时使能受保护域的基于IP的入方向统计功能。
防火墙会对相应的流量进行CAR操作,如果攻击流量超过了阈值许可的范围,超过部分将被丢弃,在设定阈值之下的部分流量仍然可以通过防火墙。
3.1.3 Ping of death/Tear drop