一种拒绝服务攻击防护方法、网络系统和代理服务器的制作方法

文档序号:7967093阅读:189来源:国知局
专利名称:一种拒绝服务攻击防护方法、网络系统和代理服务器的制作方法
技术领域
本发明涉及网络安全领域,特别是涉及一种拒绝服务攻击防护方法、网络 系统和代理服务器。
背景技术
随着宽带网络的进一步普及,很多政府网站、信息服务提供商(Internet Server Provider, ISP)、托管机房、商业站点、游戏服务器、聊天网站等网络 服务商被拒绝服务(Denial of Service, DOS)攻击或者分布式拒绝服务 (Distributed Denial of Service, DDOS)所困扰,DOS、 DDOS攻击的主要影 响是网络数据库无法正常使用,服务器被入侵、机密资料丢失、以及--些连带 问题,严重时甚至会使得一些大型网站全面瘫痪。
DOS是Denial Of Service的简称,即拒绝服务,造成DOS的攻击行为被 称为DOS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DOS 攻击有计算机网络带宽攻击和连通性攻击。带宽攻击是指以极大的通信量冲击 网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通 过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资 源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
DDOS攻击是指借助于客户/服务器技术,将多个计算机联合起来作为攻 击平台,对一个或者多个目标发动DOS攻击,从而成倍地提高拒绝服务攻击 的威力。通常,攻击者将DDOS主控程序安装在一个计算机上,在一个设定 的时间内,主控程序将与已经被安装在国际互联网(Internet)上的许多计算机 上的大量代理程序通讯,代理程序在收到指令时就发动攻击,主控程序能在几 秒钟内激活成百上千次代理程序的运行。
被DDOS攻击时的现象有:被攻击主机上有大量等待的TCP(Transmission Control Protocol,传输控制协议)连接;网络中充斥着大量的无用的数据包, 源地址为假;制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外
界通讯;利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定 的服务请求,使受害主机无法及时处理所有正常请求,严重时会造成系统死机。
DDOS攻击中最典型的攻击模式是SYN/ACK Flood (SYN风暴)攻击, 其原理主要是向被攻击主机发送大量伪造源IP和源端口的TCP连接请求数据 包,导致主机缓存资源因处理这些欺骗请求包被耗尽或因忙于发送回应包,直 至系统资源耗尽,从而形成拒绝服务。其基本过程是, 一台计算机在网络中通 讯时首先需要建立TCP握手,标准的TCP握手需要三次包交换来建立。 一台 服务器一旦接收到客户机的连接请求数据包SYN (Synchronize sequence numbers)后必须回应一个请求响应数据包SYN/ACK,然后等待该客户机回应 给它一个响应数据包ACK (Acknowledgment field significant)来确认,才真正 建立连接。然而,如果只发送初始化的连接请求数据包SYN,而不发送确认 服务器的响应数据包ACK会导致服务器一直等待响应数据包ACK。由于服务 器在有限的时间内只能响应有限数量的连接,这就会导致服务器一直等待回应 而无法响应其它计算机进行的连接请求,
抵御拒绝服务攻击通常有两种解决方案一种是使用专门的防拒绝服务攻 击设备,另一种方案是使用防火墙上自带的防拒绝服务攻击功能。
但使用现有的防拒绝服务攻击设备,只能防护其后的网络,但不能防护针 对自身的拒绝服务攻击。因此通常采用透明模式,因为在透明模式下设备不具 备IP地址,所以自身不会受到拒绝服务攻击。如果使用者己经配备了网关/防 火墙/边缘路由,为了使网关/防火墙/边缘路由免受拒绝服务攻击,则需要在其 之前加装反拒绝服务系统。这种传统的模式可以在一定程度上缓解拒绝服务攻 击,但缺点是需要增加额外的串行网络设备,降低了网络的可靠程度,同时成 本增加。
对另一种自带的具有防拒绝服务攻击的防火墙,可以防护外网对防火墙自 身的拒绝服务攻击,但其缺点是不能防护位于其后的网络,因此这种解决方案 并不能真正的防御拒绝服务攻击。

发明内容
本发明所要解决的问题是克服现有技术的缺陷,提供一种拒绝服务攻击防 护方法、网络系统和代理服务器,其完成对本地和远程服务器的一体化防护。
为实现本发明目的而提供的一种拒绝服务攻击防护方法,包括下列步骤 步骤A,对连接请求数据包,代理目的端响应客户端请求,过滤掉拒绝服
务攻击,再根据合法的连接请求的响应数据包,判断目的端地址,代理客户端
与目的端建立连接。
所述步骤A之前还包括下列步骤
截获连接请求数据包,解析得到该连接请求数据包的源地址,查询匹配所 述连接请求数据包的合法性。
所述截获连接请求数据包,解析得到该连接请求数据包的源地址,査询匹 配连接请求数据包的合法性之前进一步包括下列步骤-
统计网络中的连接请求数据包,并在流量达到危险阀值时,确认受到拒绝 服务攻击,启动防御措施。
所述步骤A之后还包括下列步骤
在连接请求数据包的流量恢复到正常流量后,不再进行防御拒绝服务攻击 的防护过滤,并将数据初始化,允许客户端与服务器直接进行连接。
所述截获连接请求数据包,解析得到该连接请求数据包的源地址,查询匹 配连接请求数据包的合法性,包括下列步骤
根据截获到的连接请求数据包,解析得到该连接请求数据包的源地址,利 用连接记录表对所述连接请求数据包的源IP地址进行査询匹配,确认该连接 请求数据包的合法性,并对匹配通过的连接请求数据包予以放行。
所述根据截获到的连接请求数据包,解析得到该连接请求数据包的源地 址,利用连接记录表对所述连接请求数据包的源IP地址进行査询匹配,并确 认该连接请求数据包的合法性,并对合法的连接请求数据包予以放行,具体包 括下列步骤-
首先,当截获到连接请求数据包后,解析出客户端IP地址,与连接记录 表进行查询匹配,确认其是否为合法的IP地址;
其次,匹配成功后,如果该IP地址当前的半开连接数量未超过用户设定 的阀值,则允许通过。
所述对连接请求数据包,代理目的端响应客户端请求,过滤掉拒绝服务攻 击,包括下列步骤
对不能确定其合法性的连接请求数据包,根据该连接请求数据包的目的端
地址,接管所述连接请求数据包,代理目的端向客户端响应,发送请求响应数 据包;并在收到客户端的响应数据包后,确认为合法连接,完成与客户端的连 接过程;否则不再继续传输,过滤掉拒绝服务攻击的连接请求数据包。 所述判断目的端地址,具体包括下列步骤
确认连接请求为合法的连接请求后,判断数据包的发送目的端为自身还是 远程服务器。
如果数据包的发送目的端为自身,则所述代理客户端与目的端建立连接, 包括下列步骤
步骤N1,代理客户端向本地协议栈发送连接请求数据包,请求建立TCP 连接;
步骤N2,截获到本地协议栈回应的请求响应数据包后,丢弃此数据包, 并向本地协议栈发送响应数据包,与本地建立TCP连接;
步骤N3,拦截连接成功后客户端与目的端通讯的数据包,修正TCP序列 号,并重新计算TCP校验和,建立真正的TCP连接。
所述代理客户端向本地协议栈发送连接请求,包括下列步骤
调用netif—rx函数,将该连接请求数据包重新接收一次,这时网络系统将 认为产生一次新的连接请求数据包,则将这个连接请求数据包送上协议栈发送 到用户层处理。
所述截获到本地协议栈回应的请求响应数据包后,丢弃此数据包,并向本 地协议栈发送响应数据包,与本地建立TCP连接,包括下列步骤
用户层收到连接请求数据包,发送请求响应数据包后,通过 NF一IP一LOCAL一OUT节点截获此请求响应数据包;将截获的请求响应数据包 修改为响应数据包,计算序列号及校验和后,丢弃此连接请求数据包,调用 NF—HOOK函数将此数据包挂接到网络系统接收缓冲区的链表上,网络系统将 此响应数据包继续发送至用户层,用户层收到响应数据包后,完成三次握手认 证,与本地建立TCP连接成功。
如果数据包的发送目的端为远程服务器,则所述代理客户端与目的端建立 连接,包括下列步骤
步骤N1',代理客户端向受保护的远程服务器发送连接请求数据包,请 求建立TCP连接;
步骤N2',截获到受保护远程服务器回应的请求响应数据包后,丢弃此 数据包,并向远程服务器发送响应数据包,与远程服务器建立TCP连接;
步骤N3',拦截连接成功后通讯的数据包,修正TCP序列号,并重新计 算TCP校验和,建立真正的TCP连接。
所述代理客户端向受保护的远程服务器发送连接请求数据包,请求建立 TCP连接,包括下列步骤
根据响应数据包的路由信息,代理客户端调用NF—HOOK函数,将连接 请求数据包发向受保护的远程服务器。
所述截获到受保护远程服务器回应的请求响应数据包后,丢弃此数据包, 并向远程服务器发送响应数据包,与远程服务器建立TCP连接,包括下列步 骤
受保护的远程服务器收到连接请求,发送请求响应数据包后,通过 NF一IP—FORWARD节点截获此请求响应数据包,并将该请求响应数据包修改 为响应数据包,调换源MAC地址和目的MAC地址的顺序,计算序列号及校 验和,将该响应数据包发向远程服务器,远程服务器收到响应数据包后,实现 三次握手认证,与目的端建立TCP连接。
本发明还提供一种拒绝服务攻击防护网络系统,包括至少一个目的端和至 少一个客户端,所述网络的数据链路层包括代理服务器;
所述代理服务器,用于对连接请求数据包,代理目的端响应客户端请求, 过滤掉拒绝服务攻击,再根据合法的连接请求的响应数据包,判断目的端地址, 代理客户端与目的端建立连接。
所述网络的数据链路层还包括防御开关器;
所述防御开关器,用于根据连接请求数据包,在确认是否受到拒绝服务攻 击后,开启和关闭代理服务器。
所述网络的数据链路层还进一步包括计数器;
所述计数器,用于统计网络中的连接请求数据包,确认是否受到拒绝服务 攻击,通知防御开关器开启或者关闭代理服务器。 所述代理服务器包括过滤模块;
所述过滤模块,用于对不能确定合法性的连接请求数据包,根据所述连接 请求数据包的目的端地址,接管所述连接请求数据包,代理目的端向客户端响应,发送请求响应数据包;并在收到客户端的响应数据包后,确认为合法连接, 完成代理服务器与客户端的连接过程;否则不再继续传输,过滤掉拒绝服务攻 击的连接请求数据包。
所述代理服务器还包括连接记录表和查询模块,其中;
连接记录表,用于记录合法的客户端源地址;
所述査询模块,用于根据截获到的连接请求数据包,利用连接记录表对所 述连接请求数据包的源IP地址进行匹配査询,确认该连接请求数据包的合法 性,并对合法的连接请求数据包予以放行;对不能确定合法性的连接请求数据 包,利用过滤模块过滤掉拒绝服务攻击。
所述代理服务器还进一步包括连接模块;
所述连接模块,用于根据合法的连接请求的客户端响应数据包,代理客户 端,与目的端建立连接。
所述代理服务器还更进一步包括解析模块,记录模块,其中
所述解析模块,用于根据截获连接请求数据包,通过解析得到连接请求的 客户端源地址和目的端目的地址,以及端口信息;
所述记录模块,用于收到客户端发回的响应数据包,确认为合法连接后, 向连接记录表增加连接记录表项。
所述目的端为网关,防火墙,边缘路由器和/或远程服务器。
所述代理服务器还更进一步包括判断模块;
所述判断模块,用于确认连接请求为合法的连接请求后,判断数据包的发 送目的端为自身还是远程服务器。
所述判断模块判断数据包的发送目的端为自身,则所述连接模块根据合法 的连接请求的响应数据包,代理客户端与目的端建立连接,是通过下列步骤实 现的
步骤M1,代理客户端向本地协议栈发送连接请求数据包,请求建立TCP 连接;
步骤M2,截获到本地协议栈回应的请求响应数据包后,丢弃此数据包, 并向本地协议栈发送响应数据包,与本地建立TCP连接;
步骤M3,拦截连接成功后客户端与目的端通讯的数据包,修正TCP序列 号,并重新计算TCP校验和,建立真正的TCP连接。
所述连接模块代理客户端向本地协议栈发送连接请求,是通过下列步骤实 现的
调用netif一rx函数,将该连接请求数据包重新接收一次,这时网络系统将 认为产生一次新的连接请求数据包,则将这个连接请求数据包送上协议栈发送 到用户层处理。
所述连接模块所述截获到本地协议栈回应的请求响应数据包后,丢弃此数 据包,并向本地协议栈发送响应数据包,与本地建立TCP连接,是通过下列 步骤实现的
用户层收到连接请求数据包,发送请求响应数据包后,通过 NF一IP一LOCALJXJT节点截获此请求响应数据包;将截获的请求响应数据包 修改为响应数据包,计算序列号及校验和后,丢弃此连接请求数据包,调用 NF一HOOK函数将此数据包挂接到网络系统接收缓冲区的链表上,网络系统将 此响应数据包继续发送至用户层,用户层收到响应数据包后,完成三次握手认 证,与本地建立TCP连接成功。
所述判断模块判断数据包的发送目的端为远程服务器,则所述连接模块根 据合法的连接请求的响应数据包,代理客户端与目的端建立连接,是通过下列
步骤实现的
步骤M1',代理客户端向受保护的远程服务器发送连接请求数据包,请
求建立TCP连接;
步骤M2',截获到受保护远程服务器回应的请求响应数据包后,丢弃此
数据包,并向远程服务器发送响应数据包,与远程服务器建立TCP连接;
步骤M3',拦截连接成功后通讯的数据包,修正TCP序列号,并重新计 算TCP校验和,建立真正的TCP连接。
所述连接模块代理客户端向受保护的远程服务器发送连接请求数据包,请 求建立TCP连接,是通过下列步骤实现的
根据响应数据包的路由信息,代理客户端调用NF一HOOK函数,将连接 请求数据包发向受保护的远程服务器。
所述连接模块截获到受保护远程服务器回应的请求响应数据包后,丢弃此 数据包,并向远程服务器发送响应数据包,与远程服务器建立TCP连接,是 通过下列步骤实现的
受保护的远程服务器收到连接请求,发送请求响应数据包后,通过
NF一IP一FORWARD节点截获此请求响应数据包,并将该请求响应数据包修改 为响应数据包,调换源MAC地址和目的MAC地址的顺序,计算序列号及校 验和,将该响应数据包发向远程服务器,远程服务器收到响应数据包后,实现 三次握手认证,代理服务器与目的端建立TCP连接。
所述代理服务器是配置于网关/防火墙网络系统的数据链路层,作为网关/ 防火墙一部分的代理服务器。
为实现本发明目的,进一步提供一种网络系统中的代理服务器,配置于网 络系统的数据链路层,用于对连接请求数据包,代理目的端响应客户端请求, 过滤掉拒绝服务攻击,再根据合法的连接请求的响应数据包,判断目的端地址, 代理客户端与目的端建立连接。
所述的代理服务器,包括过滤模块;
所述过滤模块,用于对不能确定合法性的连接请求数据包,根据所述连接 请求数据包的目的端地址,接管所述连接请求数据包,代理目的端向客户端响 应,发送请求响应数据包;并在收到客户端的响应数据包后,确认为合法连接, 完成代理服务器与客户端的连接过程;否则不再继续传输,过滤掉拒绝服务攻 击的连接请求数据包。
所述的代理服务器,还包括连接记录表和査询模块,其中;
连接记录表,用于记录合法的客户端源地址;
所述査询模块,用于根据截获到的连接请求数据包,利用连接记录表对所 述连接请求数据包的源IP地址进行匹配查询,确认该连接请求数据包的合法 性,并对合法的连接请求数据包予以放行;对不能确定合法性的连接请求数据 包,利用过滤模块过滤掉拒绝服务攻击。
所述的代理服务器,还进一步包括连接模块;
所述连接模块,用于根据合法的连接请求的客户端响应数据包,代理客户 端,与目的端建立连接。
所述的代理服务器,还更进一步包括解析模块,记录模块,其中
所述解析模块,用于根据截获连接请求数据包,通过解析得到连接请求的 客户端源地址和目的端目的地址,以及端口信息;
所述记录模块,用于收到客户端发回的响应数据包,确认为合法连接后,
向连接记录表增加连接记录表项。
所述目的端为网关,防火墙,边缘路由器和/或远程服务器。
所述的代理服务器,还更进一步包括判断模块;
所述判断模块,用于确认连接请求为合法的连接请求后,判断数据包的发 送目的端为自身还是远程服务器。
所述代理服务器是配置于网关/防火墙网络系统的数据链路层,作为网关/ 防火墙一部分的代理服务器。
与现有的方案相比,本发明的拒绝服务攻击方法、网络系统和代理服务器, 在网络系统中实施完善的拒绝服务攻击防护,既可以进行本机防护,也可以对 其后的网络设备进行防护,其使用工作原理类似的本地代理和远程代理,使系 统拥有更好的整合度,从而更加容易维护。其能够对所有发至本机的TCP连 接请求和发往其后服务器的连接请求都进行了处理,使用本地代理和远程代理 完成对本机和远程服务器的一体化防护,保护了本机以及其后的网络。


图1是本发明拒绝服务攻击防护方法流程图2是本发明实施例査询过滤记录连接请求数据包过程流程图3是本发明实施例中代理服务器与本地建立TCP连接流程图4是本发明实施例中代理服务器与远程服务器建立TCP连接流程图5是本发明拒绝服务攻击防护网络系统示意图6是本发明代理服务器结构示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的一种拒绝服务攻击防护方法、网络系统和代理服务器进行进 一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
在本发明实施例中,通过基于Linux 2.6核心,修改网络系统数据链路层 的Linux核心协议,实现本发明。
本发明使用Linux系统中的过滤单元(NetFilter ),通过利用NF—IP—LOCAL_IN、NF—IPLOCAL—OUT以及NF—IP—FORWARD三个节点来 实现。
下面详细说明本发明的一种拒绝服务攻击防护方法-
如图1所标,本发明的拒绝服务攻击防护方法包括下列步骤
步骤S100,统计网络中的连接请求数据包SYN,并在流量达到危险阀值 时,确认受到拒绝服务攻击,启动防御措施,转到步骤S200,过滤掉拒绝服 务攻击的连接请求数据包SYN。
为了减少采用代理机制产生的延时对网络性能造成的影响,可以在网络流 量较小时只统计自身及受其保护的网络的连接请求数据包SYN的半开连接 数,当网络连接请求数据包SYN的流量增大,连接请求数据包SYN的半开连 接数达到用户设定的危险阔值时,确认受到了拒绝服务攻击,启动防御措施, 转到步骤S200,过滤掉拒绝服务攻击的连接请求数据包SYN。
一般情况下,当目的端收到一个TCP连接请求数据包SYN后,马上为该 连接请求分配缓冲区,然后返回一个请求响应包SYN+ACK,这时形成一个 半开连接。
也可以根据拒绝服务攻击的特点,攻击发生时连接请求数据包SYN的数 量瞬时会变得很大,通过对连接请求数据包SYN流量进行统计,判断网络是 否受到拒绝服务攻击。首先根据包头信息判断是何种类型的数据包,从数据包 的类型统计得到每秒钟到达的连接请求数据包SYN的个数, 一旦检测出连接 请求数据包SYN的流量超过服务器正常处理的限制或者用户设定的阀值时, 确认受到了拒绝服务攻击,启动防御措施,转到下一步骤S200过滤拒绝服务 攻击。
步骤S200,截获连接请求数据包SYN,解析得到该连接请求数据包的源 IP地址后,査询该连接请求数据包SYN的合法性;然后对不能确定合法性的 连接请求数据包SYN,代理目的端响应客户端510请求,向客户端510发送 请求响应数据包SYN+ACK,过滤掉拒绝服务攻击,再根据合法的连接请求的 响应数据包ACK,判断目的端地址,代理客户端510与目的端建立连接。
步骤S300,在连接请求数据包的流量恢复到正常流量后,不再进行防御 拒绝服务攻击的防护过滤,并将连接记录表630初始化,允许客户端510与服 务器直接进行TCP连接。
当连接请求数据包的个数恢复到网络正常的情况下时,不再启动防御措
施,将连接记录表630初始化,所有连接记录表630项清0,允许客户端510 与服务器直接进行连接。
如图2所示,下面进一步详细步骤S200的过程,即截获连接请求数据包 SYN,解析得到该连接请求数据包的源IP地址后,查询该连接请求数据包SYN 的合法性;然后对不能确定合法性的连接请求数据包SYN,代理目的端响应 客户端510请求,向客户端510发送请求响应数据包SYN+ACK,过滤掉拒绝 服务攻击,再根据合法的连接请求的响应数据包ACK,判断目的端地址,代 理客户端510与目的端建立连接的具体过程
步骤S210,根据截获到的连接请求数据包SYN,解析得到该连接请求数 据包的源IP地址后,利用连接记录表630对所述连接请求数据包SYN的源IP 地址进行匹配査询,确认该连接请求数据包SYN的合法性,并对合法的连接 请求数据包SYN予以放行;对不能确定合法性的连接请求数据包SYN,转到 步骤S220,过滤掉拒绝服务攻击的连接请求数据包SYN。
首先,当截获到连接请求数据包后,解析出客户端IP地址,与连接记录 表进行查询匹配,确认其是否为合法的IP地址;
网络系统在网关模式下,从外部传入的所有发向目的端的数据,均会通过 网络链路层的NF—IP一LOCAL一IN节点,在NF—IP_LOCAL—IN节点上就可以截 获所有的TCP连接请求数据包SYN。
如果要匹配査询所截获的连接请求数据包SYN是否为合法的连接请求数 据包SYN,首先进行解析得到该连接请求的数据包SYN的源IP地址,使用 连接记录表630进行匹配査询,确认其是否为合法的IP地址。
当受到诸如伪地址的SYN flood攻击时,随着攻击的进行链表会越来越长, 源IP地址可能有255X255X255X255之多。当受到伪地址攻击时,网络系统 每收到一个TCP连接请求数据包SYN,都需要对这个巨大的连接记录链表进 行査找,而受到拒绝服务攻击时,伪地址TCP连接请求数据包SYN—般都在 每秒钟一万个以上,合法TCP连接请求数据包SYN只有几个或者几十个,所 占比例极小,而为了匹配査询到比例极小的合法的TCP连接请求数据包,需 要对每个TCP连接请求数据包SYN,在连接请求数据包进行匹配查找操作, 这将严重消耗系统资源,造成网络系统响应变慢甚至瘫痪,阻塞所有的连接请求数据包,那么攻击者实际上以另外一种形式对服务器进行了拒绝服务攻击。 为克服这一缺陷,作为本发明实施例而采用的一种匹配査询方法,将连接
记录表630分为四层节点,将IP地址分为四段,连接记录表630中的四层节 点对应首IP地址的四段,将IP地址分别记录到连接记录表630中四个不同层 节点中去,每个层节点分别指向下一层节点的表头,形成一个四层节点的连接 记录表630,每层节点指向上层节点的链表套链表的数据结构。
例如,当一个新的连接请求数据包SYN到达时,设其IP地址为 201.0.168.2,则首先在第一层节点中进行匹配查找,即査找201,如果找到201,
则顺着该层节点查找以该节点作为表头的子链表即第二层节点,找到O,然后 顺着这个节点找第三层节点中的168, 一直找到第四层节点中的2。如果都匹 配成功,那么就认为该IP地址合法。否则,该IP地址为未经验证的IP地址, 需要利用拒绝服务攻击防护手段,过滤掉可能的拒绝服务攻击的连接请求数据 包。使用这样一个连接记录表630,只需要搜索四层节点就可以得到结果,也 就是说,最多也只需要255X4次査表操作,就可以实现匹配査找。为进一步 加快査找速度,可以进一步使用二分树査找法、哈夫曼树査找法,根据所述具 有四层结构的连接记录表630进行査找,从而大大提高査找速度。
也可以使用如一次定位的哈希(HASH)算法对连接记录表中的记录进行 查找。
连接记录表630,记录合法的客户端510IP地址。为了得到合法的客户端 510IP地址,在截获到一个SYN包,查询匹配后确认为新的源IP地址后,就 记录下该客户端510源IP地址,并在验证为合法的连接请求,即成功建立连 接的客户端源IP地址,则将该客户端510IP地址加入到连接记录表630中去。
其次,匹配成功后,如果该IP地址当前的半开连接数量未超过用户设定 的阀值,则允许通过。
根据TCP协议,发起TCP连接的客户端510向目的端发送连接请求数据 包SYN,然后等待目的端返回请求响应数据包SYN+ACK,如果在一定时间 内客户端510未能收到请求响应包SYN+ACK,那么就认为连接请求数据包 SYN已经丢失,并且重新发送连接请求数据包SYN,当连续3次发送连接请 求数据包SYN都没有能够收到请求响应数据包SYN+ACK应答,则认为该目 的端不可达并放弃数据传输。
正常用户可能在同一 IP地址向目的端发送多个连接请求数据包SYN, 一 般在3个以上,可能达到30 50个,如果超过90 150个连接请求数据包SYN 时,则可能是是拒绝服务攻击,需要进行拒绝服务攻击的防护,过滤掉拒绝服 务攻击的连接请求数据包SYN。
然后,对新的IP地址的连接请求数据包SYN,以及已经超过阀值的连接 请求数据包SYN,即不能确定合法性的连接请求数据包SYN,转到步骤S220, 进行拒绝服务攻击的防护,过滤掉拒绝服务攻击的连接请求数据包SYN。
步骤S220,对不能确定合法性的连接请求数据包SYN,根据该连接请求 数据包SYN的目的端IP地址,接管所述连接请求数据包SYN,代理目的端 向客户端510响应,发送请求响应数据包SYN+ACK;并在收到客户端510的 响应数据包ACK后,确认为合法连接,完成与客户端510的连接过程;否则 不再继续传输,过滤掉拒绝服务攻击的连接请求数据包SYN。
为了说明本发明的拒绝服务攻击防护方法,首先描述说明TCP连接的三 次握手过程如下
1) 客户端510向目的端发送一个连接请求数据包SYN置位的TCP报文, 包含客户端510使用的端口号和初始序列号x;
2) 目的端收到客户端510发送来的连接请求数据包SYN报文后,向客户 端510发送一个SYN和ACK都置位的请求响应数据包TCP报文,包含确认 号为x+1和目的端的初始序列号y;
3) 客户端510收到目的端返回的请求响应数据包SYN+ACK报文后,向 目的端返回一个确认号为y+l序号为x+l的响应数据包ACK报文, 一个标 准的TCP连接完成。
各种拒绝服务攻击都是在最短时间内利用多线程向目的端发送大量连接 请求数据包SYN,造成目的端系统资源耗尽,无法响应合法的连接请求数据 包SYN。这种攻击往往不会等待请求响应数据包SYN+ACK,也就是说,攻 击者使用IP地址只发送一个连接请求数据包SYN后便改变到其他IP地址上 进行攻击。
本发明拒绝服务攻击防护方法,对不能确定其合法性的连接请求数据包, 在接收到连接请求数据包后,解析出的客户端510IP地址和目的端IP地址, 将此连接请求数据包的类型改为SYN+ACK,将此数据包的头部的源MAC地
址(网卡中的一个硬件地址)与目的MAC地址调换顺序,重新计算TCP头部 校验和,调用dev—queue—xmit()函数将数据包从网络上发出,代理目的端向客 户端510应答,这样,客户端510就以为是目的端的应答。同时,该处理函数 dev一queue—xmit()返回NF—STOLEN,从而使网络系统不再处理本次连接请求, 从而使得该连接请求不占用系统的缓存区资源。
dev—queue—xmit()函数是被高层协议的实例使用,在网络设备上发送数据 报的函数。
TCP通过面向连接的、端到端的可靠数据报发送来保证可靠性。TCP在 字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个字 节。如果在规定时间内,没有收到关于这个包的确认响应,重新发送此包。TCP 的可靠机制允许设备处理丢失、延时、重复及读错的包。超时机制允许设备监 测丢失包并请求重发。
实际存在的客户端510收到请求响应数据包SYN+ACK后,继续发送响 应数据包ACK以完成TCP三次握手过程,而攻击者因为伪造源IP地址而无 法收到该请求响应数据包SYN+ACK,不能继续连接过程,从而过滤掉拒绝服 务攻击的连接请求数据包SYN,起到防御拒绝服务攻击的作用。
当攻击者在进行拒绝服务攻击时,连接请求数据包是伪造的,因此客户端 510不会继续发送响应数据包完成三次握手过程,从而过滤掉了拒绝服务攻 击。
本领域技术人员可以理解,本发明实施例所使用的代理服务器代理目的 端,响应客户端请求,过滤掉拒绝服务攻击的连接请求数据包SYN,对连接 请求数据包SYN过滤拒绝服务攻击的方法,也可以用其他公知的对连接请求 数据包SYN过滤拒绝服务攻击的方法,如SYN—cookie方法来实现,但不管 使用何种公知的对连接请求数据包SYN过滤拒绝攻击的方法,都是本发明的 一种实现手段,没有超出本发明的保护范围。
步骤S230,收到客户端510发回的响应数据包ACK,确认为合法连接后, 如果是新的IP地址,则向连接记录表630增加连接记录表项。
通过在NF—IP_LOCAL—IN节点上截获客户端510发回的响应数据包ACK 后,验证TCP序列号正确后,则代理目的端,与客户端510的连接完成。
收到响应数据包ACK后,就可以确认其为合法连接,根据匹配査询的结果,如果该连接请求数据包SYN中的源IP地址在是新的,在连接记录表中没 有记录,则将该客户端IP地址,向连接记录表630增加连接记录表项,记录 该IP地址为合法地址。
例如对所述IP地址为201.0.168.2经过査询匹配确认为合法的新IP地址 后,将该IP地址作为新的连接记录表项,插入到连接记录表630中去。
步骤S240,确认连接请求为合法的连接请求后,判断数据包的发送目的 端为自身还是远程服务器530。
通过路由査找,判断数据包的去向。发往本机的连接请求数据包SYN经 过本地代理过程建立真实的TCP连接,继续转发的连接请求数据包SYN经过 远程代理过程建立真实的TCP连接。
步骤S250,根据合法的连接请求的客户端510响应数据包ACK,代理客 户端510,与目的端建立连接,从而过滤掉拒绝服务攻击,使客户端510与目 的端建立真正的TCP连接。
通过在NFJP—LOCAL—IN节点上截获客户端510发回的响应数据包ACK 的类型改为连接请求数据包SYN,修改TCP序列号SEQ和ACK_SEQ,重新 计算检验和,代理客户端510,与目的端建立连接。
如图3所示,如果目的端是本地,即目的IP地址为本地,客户端510是 向本地发出连接请求数据包,则使用了如下方式,实现三次握手认证通过以后 的连接映射,具体步骤如下
步骤S251,代理客户端510,向本地协议栈发送连接请求数据包SYN, 请求建立TCP连接;
如果目的端是本地,即目的IP地址为本地,客户端510是向本地发出连 接请求数据包SYN时,则调用netif一rx()函数,将该连接请求数据包SYN重新 接收一次,这时网络系统将认为产生一次新的TCP连接请求数据包SYN,则 将这个连接请求数据包SYN送上协议栈发送到用户层处理;
netif—rx()函数是把数据传送给协议层。netif—rx()里数据放入处理队列然后 返回。
步骤252,截获到本地协议栈回应的请求响应数据包SYN+ACK后,丢弃 此数据包,并向本地协议栈发送响应数据包ACK,与本地建立TCP连接; 用户层TCP监听程序收到连接请求数据包SYN,发送请求响应数据包SYN+ACK。通过NF_IP_LOCAL_OUT节点上的处理函数截获此请求响应数 据包SYN+ACK;将截获的请求响应数据包SYN+ACK修改为响应数据包 ACK,计算序列号及校验和后,丢弃此连接请求数据包SYN+ACK,调用 NF—HOOK函数将此数据包挂接到网络系统接收缓冲区的链表上,网络系统将 此响应数据包ACK继续发送至用户层,用户层收到响应数据包ACK后,完 成三次握手认证,与本地建立TCP连接成功。
步骤253,然后,拦截连接成功后客户端510与目的端通讯的数据包,修 正TCP序列号,并重新计算TCP校验和,建立真正的TCP连接。
如图4所示,如果目的端是远程服务器530,即目的IP地址为远程服务 器530地址,客户端510是向远程服务器530地址发出连接请求数据包,采用 的具体步骤如下
步骤251',代理客户端510,向受保护的远程服务器530发送连接请求 数据包SYN,请求建立TCP连接;
如果目的端是远程服务器530,即目的IP地址为远程服务器530地址, 客户端510是向远程服务器530地址发出连接请求数据包时,则根据响应数据 包ACK的路由信息,代理客户端510,调用NFJiOOK()函数,将连接请求数 据包SYN发向受保护的远程服务器530;
步骤252',截获到受保护远程服务器530回应的请求响应数据包 SYN+ACK后,丢弃此数据包,并向远程服务器530发送响应数据包ACK, 与远程服务器530建立TCP连接;
受保护的远程服务器530收到连接请求后,发送请求响应数据包 SYN+ACK至U;通过NF—IP_FORWARD节点上的处理函数截获此请求响应数 据包SYN+ACK,并将该请求响应数据包SYN+ACK修改为响应数据包ACK, 调换源MAC地址和目的MAC地址的顺序,计算序列号及校验和,将该响应 数据包ACK发向远程服务器530,远程服务器530收到响应数据包ACK后, 实现三次握手认证,与目的端建立TCP连接成功。
步骤253',拦截连接成功后通讯的数据包,修正TCP序列号,并重新计 算TCP校验和,建立真正的TCP连接。
由所述的一种拒绝服务攻击防护方法,相应地,提供一种拒绝服务攻击防 护网络系统
如图5所示,本发明的拒绝服务攻击防护网络系统,包括目的端和客户端
510,所述网络的数据链路层520包括计数器521,防御开关器522,代理服务 器523,其中
计数器521,用于统计网络中的连接请求数据包,并在流量达到危险阀值 时,确认是否受到拒绝服务攻击,通知防御开关器522开启或者关闭代理服务 器523。
防御开关器522,用于根据连接请求数据包,在确认是否受到拒绝服务攻 击后,开启和关闭代理服务器523。
代理服务器523,用于截获连接请求数据包SYN,解析得到该连接请求数 据包的源地址,查询该连接请求数据包SYN的合法性;然后对不能确定合法 性的连接请求数据包SYN,代理目的端响应客户端510请求,向客户端510 发送请求响应数据包SYN+ACK,过滤掉拒绝服务攻击,再根据合法的连接请 求的响应数据包ACK,判断目的端地址,代理客户端510与目的端建立连接。
所述目的端可以是网关,防火墙,边缘路由器和/或远程服务器530。
如图6所示,所述的代理服务器523,包括连接记录表630,解析模块610, 查询模块620,过滤模块650,记录模块640,判断模块660,连接模块670, 其中-
连接记录表630,用于记录合法的客户端510源IP地址。
为了得到合法的客户端510源IP地址,代理服务器523在截获到一个连 接请求数据包SYN,査询匹配后确认为新的源IP地址后,就记录下该客户端 510源IP地址,并在验证为合法的连接请求后,将该客户端510源IP地址加 入到连接记录表630中去。
解析模块610,用于根据截获连接请求数据包SYN,通过解析得到连接请 求的客户端510源IP地址和目的端目的IP地址,以及端口信息。
査询模块620,用于根据截获到的连接请求数据包,利用连接记录表630 对所述连接请求数据包的源IP地址进行匹配查询,确认该连接请求数据包 SYN的合法性,并对合法的连接请求数据包SYN予以放行;对不能确定合法 性的连接请求数据包SYN,利用过滤模块650过滤掉拒绝服务攻击。
过滤模块650,对不能确定合法性的连接请求数据包SYN,根据该连接请 求数据包SYN的目的端IP地址,接管所述连接请求数据包,代理目的端向客
户端510响应,发送请求响应数据包SYN+ACK;并在收到客户端510的响应 数据包ACK后,确认为合法连接,完成代理服务器523与客户端510的连接 过程;否则不再继续传输,过滤掉拒绝服务攻击的连接请求数据包。
记录模块640,用于收到客户端510发回的响应数据包ACK,确认为合法 连接后,如果是新的IP地址,则向连接记录表630增加连接记录表项。
判断模块660,用于确认连接请求为合法的连接请求后,判断数据包的发 送目的端为自身还是远程服务器530。
确认连接请求为合法的连接请求后,根据响应数据包的目的IP地址,进 行路由查找,取得路由信息,确认该连接请求是发往自身还是需要继续转发。
连接模块670,用于根据合法的连接请求的客户端510响应数据包ACK, 代理服务器523代理客户端510,与目的端建立连接。
通过在NF—IP—LOCAL—IN节点上截获客户端510发回的响应数据包ACK 的类型改为连接请求数据包SYN,修改TCP序列号SEQ和ACK_SEQ,重新 计算检验和,代理客户端510,与目的端建立连接。
如果目的端是本地,即目的IP地址为本地,客户端510是向本地发出连 接请求数据包,则使用了如下方式,实现三次握手认证通过以后的连接映射, 具体通过以下过程实现
首先代理客户端510,向本地协议栈发送连接请求数据包SYN,请求建立 TCP连接;
如果目的端是本地,即目的IP地址为本地,客户端510是向本地发出连 接请求数据包SYN时,则调用netif—rx()函数,将该连接请求数据包SYN重新 接收一次,这时网络系统将认为产生一次新的TCP连接请求数据包SYN,则 将这个连接请求数据包SYN送上协议栈发送到用户层处理;
netif—rx()函数是把数据传送给协议层。netif一rx()里数据放入处理队列然后 返回。
其次,截获到本地协议栈回应的请求响应数据包SYN+ACK后,丢弃此 数据包,并向本地协议栈发送响应数据包ACK,与本地建立TCP连接;
用户层TCP监听程序收到连接请求数据包SYN,发送请求响应数据包 SYN+ACK。通过NF一IP一LOCAL—OUT节点上的处理函数截获此请求响应数 据包SYN+ACK;将截获的请求响应数据包SYN+ACK修改为响应数据包
ACK,计算序列号及校验和后,丢弃此连接请求数据包SYN+ACK,调用 NF—HOOK函数将此数据包挂接到网络系统接收缓冲区的链表上,网络系统将 此响应数据包ACK继续发送至用户层,用户层收到响应数据包ACK后,完 成三次握手认证,与本地建立TCP连接成功。
然后,拦截连接成功后客户端510与目的端通讯的数据包,修正TCP序 列号,并重新计算TCP校验和,建立真正的TCP连接。
如果目的端是远程服务器530,即目的IP地址为远程服务器530地址, 客户端510是向远程服务器530地址发出连接请求数据包,具体采用如下步骤 实现
首先,代理客户端510,向受保护的远程服务器530发送连接请求数据包 SYN,请求建立TCP连接;
如果目的端是远程服务器530,即目的IP地址为远程服务器530地址, 客户端510是向远程服务器530地址发出连接请求数据包时,则根据响应数据 包ACK的路由信息,代理客户端510,调用NF—HOOK()函数,将连接请求数 据包SYN发向受保护的远程服务器530;
其次,截获到受保护远程服务器530回应的请求响应数据包SYN+ACK 后,丢弃此数据包,并向远程服务器530发送响应数据包ACK,与远程服务 器530建立TCP连接;
受保护的远程服务器530收到连接请求后,发送请求响应数据包 SYN+ACK妾U;通过NF—IP—FORWARD节点上的处理函数截获此请求响应数 据包SYN+ACK,并将该请求响应数据包SYN+ACK修改为响应数据包ACK, 调换源MAC地址和目的MAC地址的顺序,计算序列号及校验和,将该响应 数据包ACK发向远程服务器530,远程服务器530收到响应数据包ACK后, 实现三次握手认证,与目的端建立TCP连接成功。
然后,拦截连接成功后通讯的数据包,修正TCP序列号,并重新计算TCP 校验和,建立真正的TCP连接。
所述的代理服务器523,可以是配置于网关/防火墙网络系统的数据链路层 520,作为网关/防火墙一部分的代理服务器523。
本发明的拒绝服务攻击防护网络系统,统计网络流量,并在达到用户设定 的危险阀值时,确认产生拒绝服务攻击,启动代理服务器523过滤拒绝服务攻
击;代理服务器523截获连接请求数据包,査询合法性,对合法的连接请求数 据包予以放行;对不能确定其合法性的连接请求数据包,由代理服务器523 代理目的端,响应该连接请求,过滤掉拒绝服务攻击后,再由代理服务器523 代理客户端510,根据合法的连接请求的响应包ACK信息,判断目的端地址, 向目的端发出连接请求数据包,进行TCP连接请求的三次握手认证,建立真 正的TCP连接。
本发明的拒绝服务攻击防护网络系统可以在远程TCP连接请求和/或本地 TCP连接请求方式下运行,从而在网关模式下,可以同时防护针对网关/防火 墙后的服务网络系统和网关/防火墙本身的拒绝服务攻击。
在网络系统数据链路层520截获网络连接请求数据包以后,代理服务器 523查询模块620根据连接记录表630对数据包请求进行匹配验证,确认其合 法性,并对合法的连接请求数据包SYN予以放行;对不能确定其合法性的连 接请求数据包,査询模块620将该连接请求数据包发送到解析模块610,解析 得到数据的源IP地址和目的IP地址,然后由过滤模块650生成请求响应包 SYN+ACK,代理目的端向客户端510,从接收到数据包的网络地址上发出请 求响应包SYN+ACK给客户端510,并接管所述数据包,不再继续传输;并在 收到客户端510的响应包后,确认为合法连接,过滤掉拒绝服务攻击的连接请 求数据包;然后代理服务器523的判断模块660根据客户端510的响应包ACK, 判断该合法的连接请求数据包的目的IP地址是本地还是远程服务器530,再 由代理服务器523的连接模块670,根据不同的目的地址,利用客户端510的 响应包生成连接请求数据包,代理客户端510,请求与目的端建立TCP连接, 在与目的端完成TCP连接的三次握手认证后,建立真正的TCP连接。
本发明的拒绝服务攻击防护网络系统,在网关模式下,实施完善的拒绝服 务攻击防护,即可以进行本机防护,也可以对其后的网络设备进行防护,使用 本地代理和远程代理完成对本机和远程服务器530的一体化防护,保护了本机 以及其后的网络,而又不需要增加额外的网络设备,提高可靠程度,同时节约 成本。
本发明实施例实现方式可以基于Linux 2.6内核开发,作为Linux核心模 块运行,通过以上拒绝服务防护过程,从原理上杜绝了拒绝服务攻击生效的可 肯巨,同时对合法连接、通讯不会产生任何影响。 与现有的方案相比,本发明拒绝服务攻击防护方法、网络系统和代理服务 器,在网关/防火墙模式下实施完善的拒绝服务攻击防护,既可以进行本机防 护,也可以对其后的网络设备进行防护,其使用工作原理类似的本地代理和远 程代理,使系统拥有更好的整合度,从而更加容易维护。其能够对所有发至本
机的TCP连接请求和发往其后服务器的连接请求都进行了处理,使用本地代 理和远程代理完成对本机和远程服务器530的一体化防护,保护了本机以及其 后的网络。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只 是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行 解释。
权利要求
1、一种拒绝服务攻击防护方法,其特征在于,包括下列步骤步骤A,对连接请求数据包,代理目的端响应客户端请求,过滤掉拒绝服务攻击,再根据合法的连接请求的响应数据包,判断目的端地址,代理客户端与目的端建立连接。
2、 根据权利要求1所述的拒绝服务攻击防护方法,其特征在于,所述步 骤A之前还包括下列步骤截获连接请求数据包,解析得到该连接请求数据包的源地址,查询匹配所 述连接请求数据包的合法性。
3、 根据权利要求2所述的拒绝服务攻击防护方法,其特征在于,所述截获连接请求数据包,解析得到该连接请求数据包的源地址,査询匹配连接请求数据包的合法性之前进一步包括下列步骤统计网络中的连接请求数据包,并在流量达到危险阀值时,确认受到拒绝 服务攻击,启动防御措施。
4、 根据权利要求3所述的拒绝服务攻击防护方法,其特征在于,所述步骤A之后还包括下列步骤在连接请求数据包的流量恢复到正常流量后,不再进行防御拒绝服务攻击 的防护过滤,并将数据初始化,允许客户端与服务器直接进行连接。
5、 根据权利要求2至4任一项所述的拒绝服务攻击防护方法,其特征在于,所述截获连接请求数据包,解析得到该连接请求数据包的源地址,査询匹配连接请求数据包的合法性,包括下列步骤根据截获到的连接请求数据包,解析得到该连接请求数据包的源地址,利 用连接记录表对所述连接请求数据包的源IP地址进行査询匹配,确认该连接 请求数据包的合法性,并对合法的连接请求数据包予以放行。
6、 根据权利要求5所述的拒绝服务攻击防护方法,其特征在于,所述根据截获到的连接请求数据包,解析得到该连接请求数据包的源地址,利用连接 记录表对所述连接请求数据包的源IP地址进行査询匹配,并确认该连接请求数据包的合法性,并对合法的连接请求数据包予以放行,具体包括下列步骤首先,当截获到连接请求数据包后,解析出客户端IP地址,与连接记录表进行査询匹配,确认其是否为合法的IP地址;其次,匹配成功后,如果该IP地址当前的半开连接数量未超过用户设定 的阀值,则允许通过。
7、 根据权利要求5所述的拒绝服务攻击防护方法,其特征在于,所述对 连接请求数据包,代理目的端响应客户端请求,过滤掉拒绝服务攻击,包括下 列步骤对不能确定其合法性的连接请求数据包,根据该连接请求数据包的目的端 地址,接管所述连接请求数据包,代理目的端向客户端响应,发送请求响应数 据包;并在收到客户端的响应数据包后,确认为合法连接,完成与客户端的连 接过程;否则不再继续传输,过滤掉拒绝服务攻击的连接请求数据包。
8、 根据权利要求7所述的拒绝服务攻击防护方法,其特征在于,所述判 断目的端地址,具体包括下列步骤确认连接请求为合法的连接请求后,判断数据包的发送目的端为自身还是 远程服务器。
9、 根据权利要求8所述的拒绝服务攻击防护方法,其特征在于,如果数 据包的发送目的端为自身,则所述代理客户端与目的端建立连接,包括下列步 骤步骤N1,代理客户端向本地协议栈发送连接请求数据包,请求建立TCP 连接-,步骤N2,截获到本地协议栈回应的请求响应数据包后,丢弃此数据包, 并向本地协议栈发送响应数据包,与本地建立TCP连接;步骤N3,拦截连接成功后客户端与目的端通讯的数据包,修正TCP序列 号,并重新计算TCP校验和,建立真正的TCP连接。
10、 根据权利要求9所述的拒绝服务攻击防护方法,其特征在于,所述代 理客户端向本地协议栈发送连接请求,包括下列步骤调用netif一rx函数,将该连接请求数据包重新接收一次,这时网络系统将 认为产生一次连接请求数据包,则将这个连接请求数据包送上协议栈发送到用 户层处理。
11、 根据权利要求IO所述的拒绝服务攻击防护方法,其特征在于,所述 截获到本地协议栈回应的请求响应数据包后,丢弃此数据包,并向本地协议栈发送响应数据包,与本地建立TCP连接,包括下列步骤用户层收到连接请求数据包,发送请求响应数据包后,通过NF一IP一LOCAL一OUT节点截获此请求响应数据包;将截获的请求响应数据包 修改为响应数据包,计算序列号及校验和后,丢弃此连接请求数据包,调用 NF一HOOK函数将此数据包挂接到网络系统接收缓冲区的链表上,网络系统将 此响应数据包继续发送至用户层,用户层收到响应数据包后,完成三次握手认 证,与本地建立TCP连接成功。
12、 根据权利要求8所述的拒绝服务攻击防护方法,其特征在于,如果数 据包的发送目的端为远程服务器,则所述代理客户端与目的端建立连接,包括 下列步骤步骤N1',代理客户端向受保护的远程服务器发送连接请求数据包,请 求建立TCP连接;步骤N2',截获到受保护远程服务器回应的请求响应数据包后,丢弃此 数据包,并向远程服务器发送响应数据包,与远程服务器建立TCP连接;步骤N3',拦截连接成功后通讯的数据包,修正TCP序列号,并重新计 算TCP校验和,建立真正的TCP连接。
13、 根据权利要求12所述的拒绝服务攻击防护方法,其特征在于,所述 代理客户端向受保护的远程服务器发送连接请求数据包,请求建立TCP连接, 包括下列步骤根据响应数据包的路由信息,代理客户端调用NF—HOOK函数,将连接 请求数据包发向受保护的远程服务器。
14、 根据权利要求13所述的拒绝服务攻击防护方法,其特征在于,所述 截获到受保护远程服务器回应的请求响应数据包后,丢弃此数据包,并向远程 服务器发送响应数据包,与远程服务器建立TCP连接,包括下列步骤受保护的远程服务器收到连接请求,发送请求响应数据包后,通过 NF一IP一FORWARD节点截获此请求响应数据包,并将该请求响应数据包修改 为响应数据包,调换源MAC地址和目的MAC地址的顺序,计算序列号及校 验和,将该响应数据包发向远程服务器,远程服务器收到响应数据包后,实现 三次握手认证,与目的端建立TCP连接。
15、 一种拒绝服务攻击防护网络系统,包括至少一个目的端和至少一个客户端,其特征在于,所述网络的数据链路层包括代理服务器;所述代理服务器,用于对连接请求数据包,代理目的端响应客户端请求, 过滤掉拒绝服务攻击,再根据合法的连接请求的响应数据包,判断目的端地址, 代理客户端与目的端建立连接。
16、 根据权利要求15所述的拒绝服务攻击防护网络系统,其特征在于, 所述网络的数据链路层还包括防御开关器;所述防御开关器,用于根据连接请求数据包,在确认是否受到拒绝服务攻击后,开启和关闭代理服务器。
17、 根据权利要求16所述的拒绝服务攻击防护网络系统,其特征在于, 所述网络的数据链路层还进一步包括计数器;所述计数器,用于统计网络中的连接请求数据包,确认是否受到拒绝服务攻击,通知防御开关器开启或者关闭代理服务器。
18、 根据权利要求15至17任一项所述的拒绝服务攻击防护网络系统,其特征在于,所述代理服务器包括过滤模块;所述过滤模块,用于对不能确定合法性的连接请求数据包,根据所述连接 请求数据包的目的端地址,接管所述连接请求数据包,代理目的端向客户端响 应,发送请求响应数据包;并在收到客户端的响应数据包后,确认为合法连接, 完成代理服务器与客户端的连接过程;否则不再继续传输,过滤掉拒绝服务攻 击的连接请求数据包。
19、 根据权利要求18所述的拒绝服务攻击防护网络系统,其特征在于, 所述代理服务器还包括连接记录表和査询模块,其中,连接记录表,用于记录合法的客户端源地址;所述査询模块,用于根据截获到的连接请求数据包,利用连接记录表对所述连接请求数据包的源IP地址进行匹配査询,确认该连接请求数据包合法性,并对合法的连接请求数据包予以放行; 对不能确定合法性的连接请求数据包,利用过滤模块过滤掉拒绝服务攻击。
20、 根据权利要求19所述的拒绝服务攻击防护网络系统,其特征在于, 所述代理服务器还进一步包括连接模块;所述连接模块,用于根据合法的连接请求的客户端响应数据包,代理客户端,与目的端建立连接。
21、 根据权利要求20所述的拒绝服务攻击防护系统,其特征在于,所述 代理服务器还更进一步包括解析模块,记录模块,其中所述解析模块,用于根据截获连接请求数据包,通过解析得到连接请求的 客户端源地址和目的端目的地址,以及端口信息;所述记录模块,用于收到客户端发回的响应数据包,确认为合法连接后, 如果是新的IP地址,则向连接记录表增加连接记录表项。
22、 根据权利要求21所述的拒绝服务攻击防护网络系统,其特征在于,所述目的端为网关,防火墙,边缘路由器和/或远程服务器。
23、 根据权利要求22所述的拒绝服务攻击防护网络系统,其特征在于,所述代理服务器还更进一步包括判断模块;所述判断模块,用于确认连接请求为合法的连接请求后,判断数据包的发送目的端为自身还是远程服务器。
24、 根据权利要求23所述的拒绝服务攻击防护网络系统,其特征在于,所述判断模块判断数据包的发送目的端为自身,则所述连接模块根据合法的连接请求的响应数据包,代理客户端与目的端建立连接,是通过下列步骤实现的步骤M1,代理客户端向本地协议栈发送连接请求数据包,请求建立TCP连接;步骤M2,截获到本地协议栈回应的请求响应数据包后,丢弃此数据包,并向本地协议栈发送响应数据包,与本地建立TCP连接;步骤M3,拦截连接成功后客户端与目的端通讯的数据包,修正TCP序列号,并重新计算TCP校验和,建立真正的TCP连接。
25、 根据权利要求24所述的拒绝服务攻击防护网络系统,其特征在于, 所述连接模块代理客户端向本地协议栈发送连接请求,是通过下列步骤实现的调用netif—rx函数,将该连接请求数据包重新接收一次,这时网络系统将 认为产生一次新的连接请求数据包,则将这个连接请求数据包送上协议栈发送到用户层处理。
26、 根据权利要求25所述的拒绝服务攻击防护网络系统,其特征在于, 所述连接模块所述截获到本地协议栈回应的请求响应数据包后,丢弃此数据包,并向本地协议栈发送响应数据包,与本地建立TCP连接,是通过下列步骤实现的用户层收到连接请求数据包,发送请求响应数据包后,通过NF—IP—LOCAL—OUT节点截获此请求响应数据包;将截获的请求响应数据包修改为响应数据包,计算序列号及校验和后,丢弃此连接请求数据包,调用NF—HOOK函数将此数据包挂接到网络系统接收缓冲区的链表上,网络系统将 此响应数据包继续发送至用户层,用户层收到响应数据包后,完成三次握手认 证,与本地建立TCP连接成功。
27、 根据权利要求23所述的拒绝服务攻击防护网络系统,其特征在于, 所述判断模块判断数据包的发送目的端为远程服务器,则所述连接模块根据合 法的连接请求的响应数据包,代理客户端与目的端建立连接,是通过下列步骤 实现的步骤M1',代理客户端向受保护的远程服务器发送连接请求数据包,请 求建立TCP连接;步骤M2',截获到受保护远程服务器回应的请求响应数据包后,丢弃此 数据包,并向远程服务器发送响应数据包,与远程服务器建立TCP连接;步骤M3',拦截连接成功后通讯的数据包,修正TCP序列号,并重新计 算TCP校验和,建立真正的TCP连接。
28、 根据权利要求27所述的拒绝服务攻击防护系统,其特征在于,所述 连接模块代理客户端向受保护的远程服务器发送连接请求数据包,请求建立 TCP连接,是通过下列步骤实现的根据响应数据包的路由信息,代理客户端调用NFJiOOK函数,将连接 请求数据包发向受保护的远程服务器。
29、 根据权利要求28所述的拒绝服务攻击防护系统,其特征在于,所述 连接模块截获到受保护远程服务器回应的请求响应数据包后,丢弃此数据包, 并向远程服务器发送响应数据包,与远程服务器建立TCP连接,是通过下列 步骤实现的受保护的远程服务器收到连接请求,发送请求响应数据包后,通过 NF—IP—FORWARD节点截获此请求响应数据包,并将该请求响应数据包修改 为响应数据包,调换源MAC地址和目的MAC地址的顺序,计算序列号及校 验和,将该响应数据包发向远程服务器,远程服务器收到响应数据包后,实现三次握手认证,代理服务器与目的端建立TCP连接。
30、 根据权利要求23所述的拒绝服务攻击防护网络系统,其特征在于, 所述代理服务器是配置于网关/防火墙网络系统的数据链路层,作为网关/防火 墙一部分的代理服务器。
31、 一种网络系统中的代理服务器,其特征在于,配置于网络系统的数据 链路层,用于对连接请求数据包,代理目的端响应客户端请求,过滤掉拒绝服 务攻击,再根据合法的连接请求的响应数据包,判断目的端地址,代理客户端 与目的端建立连接。
32、 根据权利要求31所述的代理服务器,其特征在于,包括过滤模块;所述过滤模块,用于对不能确定合法性的连接请求数据包,根据所述连接 请求数据包的目的端地址,接管所述连接请求数据包,代理目的端向客户端响 应,发送请求响应数据包;并在收到客户端的响应数据包后,确认为合法连接, 完成代理服务器与客户端的连接过程;否则不再继续传输,过滤掉拒绝服务攻 击的连接请求数据包。
33、 根据权利要求32所述的代理服务器,其特征在于,还包括连接记录 表和査询模块,其中;连接记录表,用于记录合法的客户端源地址;所述査询模块,用于根据截获到的连接请求数据包,利用连接记录表对所 述连接请求数据包的源IP地址进行匹配査询,确认该连接请求数据包的合法 性,并对合法的连接请求数据包予以放行;对不能确定合法性的连接请求数据 包,利用过滤模块过滤掉拒绝服务攻击。
34、 根据权利要求33所述的代理服务器,其特征在于,还进一步包括连 接模块;所述连接模块,用于根据合法的连接请求的客户端响应数据包,代理客户 端,与目的端建立连接。
35、 根据权利要求34所述的代理服务器,其特征在于,还更进一步包括 解析模块,记录模块,其中所述解析模块,用于根据截获连接请求数据包,通过解析得到连接请求的 客户端源地址和目的端目的地址,以及端口信息;所述记录模块,用于收到客户端发回的响应数据包,确认为合法连接后,如果是新的IP地址,则向连接记录表增加连接记录表项。
36、 根据权利要求31至35任一项所述的代理服务器,其特征在于,所述 目的端为网关,防火墙,边缘路由器和/或远程服务器。
37、 根据权利要求36所述的代理服务器,其特征在于,还更进一步包括 判断模块;所述判断模块,用于确认连接请求为合法的连接请求后,判断数据包的发 送目的端为自身还是远程服务器。
38、 根据权利要求37所述的代理服务器,其特征在于,所述代理服务器 是配置于网关/防火墙网络系统的数据链路层,作为网关/防火墙一部分的代理 服务器。
全文摘要
本发明公开了一种拒绝服务攻击防护方法、网络系统和代理服务器。该方法通过截获连接请求数据包,解析得到该连接请求数据包的源地址,查询匹配所述连接请求数据包的合法性;对不能确定其合法性的连接请求数据包,代理目的端响应客户端请求,过滤掉拒绝服务攻击,再根据合法的连接请求的响应数据包,判断目的端地址,代理客户端与目的端建立连接,实现拒绝服务攻击防护。其完成对本地和远程服务器的一体化防护。
文档编号H04L12/56GK101175013SQ200610114310
公开日2008年5月7日 申请日期2006年11月3日 优先权日2006年11月3日
发明者许世强, 赵昌林 申请人:飞塔信息科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1