Eudemon10003典型的网络攻击方式和对策无论防火墙报过滤规则配置的多么严密,总需要划定一个范围,在这个范围内,连接是被允许的。如果攻击用户网络的连接混杂在这个许可的范围之内,就要靠攻击防范的相关功能将其识别出来并处理。3.1常见攻击方式和对策3.1.1syn-floodsyn-flood攻击是一种常见的DoS攻击方式,主要被用来攻击开放了TCP端口的网络设备。要了解syn-flood攻击的原理,需要先解释一下TCP的连接的建立过程。TCP连接的建立过程称为三次握手,首先,客户端向服务器发起连接请求(SYN报文),服务器端在收到这个连接请求之后,会回应一个应答报文(SYNACK),客户端收到这个SYNACK报文之后,再发送第三个ACK报文,这个交互过程完成之后,服务器和客户机两端就认为这个TCP会话已经正常建立,可以开始使用这个会话上传送数据了。服务器端在回应SYNACK报文的时候实际上已经为这个连接的建立分配了足够的资源,如果没有接收到客户端返回的ACK报文,这部分资源会在一定时间之后释放,以便提供给其他连接请求使用。syn-flood攻击就是利用了这个原理,攻击者伪造TCP的连接请求,向被攻击的设备正在监听的端口发送大量的连接请求(SYN)报文,被攻击的设备按照正常的处理过程,回应这个请求报文,同时为它分配了相应的资源。但是攻击者本意并不需要连接建立成功,因此服务器根本不会接收到第三个ACK报文,现有分配的资源只能等待超时释放。如果攻击者能够在超时时间到达之前发出足够的攻击报文,使被攻击的系统所预留所有资源(TCP缓存)都被耗尽。那么被攻击的设备将无法再向正常的用户提供服务,攻击者也就达到了攻击的目的(拒绝服务)。从被攻击设备的角度讲,没有很好的方法能够阻止这种攻击的发生。在我们防火墙上可以通过配置Syn-flood防御功能来对服务器进行保护。防火墙上进行syn-flood防御所采用的是TCPProxy技术,启动这个功能之后,对于每个针对受保护设备的TCP连接请求,防火墙会屏蔽这个报文并代替服务器返回一个SYNACK,如果发起连接请求的是真正的客户端,那么在接收到第三个ACK报文之后,防火墙会向受保护的服务器发起真正的连接请求,并在连接成功建立之后,作为中转,在两个会话间转换数据,使客户端可以正常访问服务器。而如果连接的发起者是一个假冒的IP地址,防火墙会很快的将没有收到ACK报文的表项进行回收,此时,由于被攻击的服务器并没有真正收到这个攻击请求,因此,服务器还是可以正常的响应连接的。这个功能利用了防火墙强大的处理能力,代替受保护的设备承受攻击。syn-flood防御功能可以保护单个的IP地址或者整个域下面所有设备,在两个参数都配置的情况下,IP地址关联的参数的优先级更高。假设要保护位于受信域的IP地址为10.110.10.10的设备免受syn-flood的攻击,需在命令行进行如下配置:[Eudemon]firewalldefendsyn-floodip10.110.10.10max-rate100max-number1000[Eudemon]firewalldefendsyn-floodenable[Eudemon]firewallzonetrust[Eudemon-zone-trust]statisticenableipinzone要注意的是,一定要配置相应的统计功能,因为攻击防范很多功能的实现都要依赖统计数据,如果不使能对应的统计功能,攻击防范模块将无法获得必要的数据,也就无法真正的发挥作用。3.1.2UDP/ICMPFlood攻击UDP/ICMPFlood是比较单纯的流量攻击,攻击者通过向一些基于UDP/ICMP的基本服务发送大量的报文,使被攻击的设备忙于处理这些无用的请求,最终耗尽处理能力,达到拒绝服务的目的。防火墙上针对这两个攻击有相应的命令行设定firewalldefendudp-flood/icmp-flood,可以设定的参数同SYNFlood攻击的参数基本相同。要注意的是,使能这个功能同样要同时使能受保护域的基于IP的入方向统计功能。防火墙会对相应的流量进行CAR操作,如果攻击流量超过了阈值许可的范围,超过部分将被丢弃,在设定阈值之下的部分流量仍然可以通过防火墙。3.1.3Pingofdeath/TeardropPingofdeath/teardrop两种攻击,都是利用不正常的分片报文,试图利用被攻击的设备在处理这些报文时的缺陷造成设备死机。防火墙上对应的命令行很简单,firewalldefendping-of-deathfirewalldefendteardrop,只要使能就可以。防火墙在处理的时候会对记录每个分片的偏移量,对于出现重叠分片或者报文实际长度同声明的长度不符的情况,将丢弃这些分片报文。Teard[Eudemon-interzone-trust-untrust]rop防御功能还有额外的作用,目前有的攻击工具(Fakeping.exe)在发起分片的攻击时会循环发送相同的几个分片,在使能Teardrop防御的情况下,这种攻击就无能为力了。3.1.4IPsweep/Portscan地址扫描和端口扫描,通常是做为其他攻击的前奏而进行的。IPsweep的目的是定位目标网络内活动的主机,攻击者通过遍历IP地址范围发送报文的方式,判定那些IP地址对应的主机是活动的,以便为后续攻击作准备。扫描报文的类型多种多样,TCP/UDP/ICMP都有可能,因此在防火墙上进行检测的时候,防火墙只关心IP地址的变化。如果一秒钟内从同一个IP地址发出的针对不同目的地址的报文的数量超过了设定的阈值,防火墙可以选择告警,同时还可以将这个源地址添加到防火墙的黑名单表中,在一定时间内对这个IP地址发出的报文进行丢弃处理。端口扫描的识别同此类似,判定的依据是一秒钟内,一个IP地址向另一个IP地址的不同端口发起的连结的数量是否超过了阈值。发现端口扫描之后,防火墙同样可以根据设定,选择告警或同时将该IP地址加入黑名单中。要让端口扫描/地址扫描功能生效,需要在可能发起攻击的阈上启动基于IP的出方向的统计功能举例来说,如果从同一个IP地址每秒钟发起10个针对不同IP地址的连结的话就认为它是在进行扫描,对源地址要加入黑名单10分钟,攻击可能发起的域在非受信域,那么我们需要进行如下的配置:[Eudemon]firewalldefendip-sweepmax-rate10blacklist-timeout10[Eudemon]firewallzoneuntrust[Eudemon-zone-untrust]statisticenableipoutzone比如最近发作频繁的“冲击波”病毒,在发起攻击之前,被病毒感染的计算机就会大范围的扫描网络,寻找可以攻击的目标。网上现在已经出现多处因为这种扫描导致网络阻塞的问题了,在定为扫描的发起者时遇到了很多麻烦。如果这种情况发生在防火墙上面,在恰当的配置下,感染者的计算机很快就会被发现,如果设置了黑名单联动工能,那么这个IP还可以被完全阻塞住,防止该病毒的进一步扩散。3.1.5IP-Spoofing攻击IP-spoofing攻击是通过伪冒源地址,希望这个伪冒报文可以通过防火墙到达被攻击的设备。防火墙对于这种攻击的防范措施是根据报文的源地址查找一次路由表,如果查找出来的出接口不是这个报文所到达的接口,那么就认为发生了IP-Spoofing攻击,防火墙将丢弃这个报文。需要配置的命令为firewallip-spoofing,没有其他参数需要配置。3.1.6对于畸形报文的检测功能Eudemon200上支持的畸形报文的检测对应于如下攻击方式:smurf发送的ping报文的目的地址为受害网络的广播地址,由于相应子网上所有报文都会相应这个请求,会产生大量的回应报文,造成网络阻塞。更进一步的,攻击者可以把受害主机的IP地址作为ICMP请求报文的源地址,使所有回应报文都发向受害主机,导致该主机无法响应。Fraggle同smurf攻击类似,但利用的是基于UDP报文的echo(端口7)或chargen(端口19)服务,攻击者利用这两个服务在收到请求报文之后会产生回应的特性,向受害网络的广播地址发送这两种报文,还可以将受害者地址作为请求报文的源地址。Land攻击报文的源地址和目的地址都是受害主机的IP地址,被攻击的设备在回应这个报文的时候会向自身发出SYNACK连接,由于的不到回应,该连接将一直等待到超时释放。如果收到大量的Land报文,将导致被攻击设备处理能力被消耗掉,出现拒绝服务的现象。Winnuke针对139端口设置了紧急指针的NetBIOS报文,引起一个NetBIOS片断重叠,使目标主机崩溃。还有一种同名攻击是通过分片的IGMP报文,利用主机在处理IGMP分片报文时的错误,导致目标主机崩溃。tcp-flag同时设置了互斥的TCP状态字标志,比如既设置了SYN标志,又设置了FIN标志,利用目标主机在处理这种报文时的错误,使其崩溃。ip-fragment对IP报文中同分片相关的标志位进行错误的设置,比如既设定DF(不允许分片)标志,又设定MF(后续分片)标志。利用目标主机在处理这种报文时的错误,使其崩溃。对于上述这些攻击方式,防火墙通过单一报文的特征就能够做出判定,对于符合这些特征的报文,如果使能了相应的防御功能,防火墙将丢弃这个报文。3.1.7对有潜在危害性的报文的过滤对于icmp-redirect、icmp-unreachable两种报文以及IP选项route-record、source-route、tracert本身并不一定对受保护的网络有危害,但是由于这些报文可能会泄露受保护网络的拓扑结构等信息,防火墙也可以对符合这些特征的报文进行过滤防火墙还可以对超过一定大小限制的ICMP报文进行过滤,任何超过这个长度限制的ICMP报文将被防火墙丢弃要注意一点,这些有潜在危害性的报文经常在检查网络状态的时候被用到,如果在这种情况下,防火墙需要关闭这些安全特性,否则将造成网络检测无法成功。4典型配置4.1防火墙的初始配置第一次启动,设备的配置为空,基本配置情况如下:#sysnameEudemon#tcpwindow8#firewallstatisticsystemenable#undomulticastigmp-all-enable#interfaceAux0asyncmodeflowlink-protocolppp#interfaceEthernet0/0/0#interfaceEthernet0/0/1#interfaceEthernet1/0/0#interfaceEthernet1/0/1#interfaceNULL0#firewallzonelocalsetpriority100#firewallzonetrustsetpriority85#firewallzoneuntrustsetpriority5#firewallzoneDMZsetpriority50#firewallinterzonelocaltrust#firewallinterzonelocaluntrust#firewallinterzonelocalDMZ#firewallinterzonetrustuntrust#firewallinterzonetrustDMZ#firewallinterzoneDMZuntrust#user-interfacecon0user-interfaceaux0user-interfacevty04#return可见,基本的防火墙有4个预定义域,Local/trust/untrust/dmz。第一件要做的事就是将接口加到相应的域中[Eudemon]firewallzonetrust[Eudemon-zone-trust]addinterfaceethernet0/0/0如此往复,将所有需要用到的接口分别加到不同的域中,要遵循的是,只要希望数据在这两个接口之间流动的时候要经过防火墙检查,就需要将这两个接口