CN101296223A - 一种实现防火墙芯片参与syn代理的方法 - Google Patents

一种实现防火墙芯片参与syn代理的方法 Download PDF

Info

Publication number
CN101296223A
CN101296223A CNA2007100983991A CN200710098399A CN101296223A CN 101296223 A CN101296223 A CN 101296223A CN A2007100983991 A CNA2007100983991 A CN A2007100983991A CN 200710098399 A CN200710098399 A CN 200710098399A CN 101296223 A CN101296223 A CN 101296223A
Authority
CN
China
Prior art keywords
syn
chip
server
sequence number
ack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007100983991A
Other languages
English (en)
Other versions
CN101296223B (zh
Inventor
吴亚飚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Network Security Technology Co Ltd
Original Assignee
Beijing Topsec Network Security Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Network Security Technology Co Ltd filed Critical Beijing Topsec Network Security Technology Co Ltd
Priority to CN2007100983991A priority Critical patent/CN101296223B/zh
Publication of CN101296223A publication Critical patent/CN101296223A/zh
Application granted granted Critical
Publication of CN101296223B publication Critical patent/CN101296223B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种实现防火墙芯片参与SYN代理的方法,由运行在通用CPU上的软件完成SYN代理的协商过程;和服务器协商完成后,运行在通用CPU上的软件把TCP序列号的差值登记在连接表数据结构中,然后删除先前分配的SYN代理专用数据结构;对于已建立连接的正常通信,防火墙芯片在转换TCP序列号的基础上,快速处理通信报文。本发明中,TCP连接状态的维护、数据包的重传等消耗内存资源的复杂处理由运行在通用CPU上的软件承担,保证了SYN代理功能的完整性。本发明方法在抵御SYN Flood攻击的同时,合法的正常通信仍可以由芯片快速转发,提高了系统性能。

Description

一种实现防火墙芯片参与SYN代理的方法
技术领域
本发明属于网络技术领域,涉及网络安全和组网技术,具体涉及一种抵御同步洪流(SYNflood)攻击的方法。
背景技术
SYN Flood是一种被广泛使用的攻击手段,它利用TCP协议的特点完成攻击。通常一次TCP连接的建立包括以下3个步骤:
(1)客户端发送SYN包给服务器端;
(2)服务器分配一定的资源给连接,返回SYN/ACK包,并等待连接建立的最后的ACK包;
(3)最后,客户端发送ACK报文给服务器端,完成TCP连接的建立。
SYN Flood攻击的过程就是连续发送SYN包,而不返回ACK报文,导致服务器系统资源占用过多,没有能力响应别的操作,或者不能响应正常的网络请求。
抵御SYN Flood攻击是网络安全设备的必备功能之一。抵御方式有多种,但对于防火墙这种网关型设备来说,效果较好的方式是实现SYN代理:当客户端SYN包到达防火墙时,防火墙并不转发SYN包,而是以服务器的名义主动回复SYN/ACK包给客户端,如果收到客户端的ACK包,表明这是正常的访问,此时防火墙以客户端的身份向服务器发送SYN包并完成三次握手。防火墙在这个过程中充当了SYN代理的角色,代替了服务器去处理SYN攻击,此时要求防火墙自身具有很强的防范SYN攻击的能力。
实现SYN代理有两个关键的地方:一是为了区分SYN flood攻击和正常通信,需要维护连接的状态,记录三次握手是否正常完成;二是对正常通信来说,实际上经历了客户端与代理、代理与服务器之间的两个三次握手过程,这两者之间的TCP序列号会有一个差值,后续通信的数据包需要根据这个差值完成TCP序列号的转换。
维护连接的状态需要消耗大量的内存资源,同时为了保证SYN代理的协商能够可靠进行,需要实现重传机制,这使得在防火墙芯片(FPGA/ASIC)内部实现完整的SYN代理难度非常大。因此,目前的通常做法是将这些任务交由软件处理,即由运行在通用CPU上的软件完成SYN代理的整个处理过程。但这种处理方式有明显的缺点:对于启动SYN代理保护的服务器而言,合法的正常通信也需要交给通用CPU处理,不能充分利用芯片快速转发的优势,当然也无法体现加速芯片对系统性能的提升。
发明内容
本发明目的在于克服现有技术完全依赖运行在通用CPU上的软件完成SYN代理的整个处理过程所存在的问题,提出一种让防火墙芯片参与SYN代理的方法,通过防火墙芯片与软件的配合实现完整的SYN代理,以充分利用防火墙芯片快速转发的优势。
为实现上述目的,本发明提出的实现防火墙芯片参与SYN代理的方法如下:
第一步,由运行在通用CPU上的软件完成SYN代理的协商过程;
第二步,和服务器协商完成后,运行在通用CPU上的软件把TCP序列号的差值登记在连接表数据结构中,然后删除先前分配的SYN代理专用数据结构;
第三步,对于已建立连接的正常通信,防火墙芯片在转换TCP序列号的基础上,快速处理通信报文。
本发明的有益效果表现在:
TCP连接状态的维护、数据包的重传等消耗内存资源的复杂处理由运行在通用CPU上的软件承担,保证了SYN代理功能的完整性,又能保持很好的扩展性和灵活性。
在抵御SYNFlood攻击的同时,合法的正常通信仍可以由芯片快速转发,TCP序列号的转换在芯片查连接表的过程中完成,不会造成系统性能的下降。
附图说明
本发明没有附图。
具体实施方式
以下结合具体的实施例对本发明方法作进一步的说明。
为方便描述,以下将“防火墙芯片”简称为“芯片”,将“运行在通用CPU上的软件”简称为“软件”。
通过防火墙芯片与软件的配合实现完整的SYN代理,以充分利用防火墙芯片快速转发的优势。
首先,芯片收到客户端发起的SYN包,提取报文头信息进行判断,如果发现是TCP三次握手的第一个报文,则将其交给软件处理;
其次,软件检查防火墙规则,如果检查结果为允许访问,并且访问的目的主机受SYN代理保护,则启动SYN代理处理流程。软件以服务器的身份构造SYN+ACK包,回送给客户端,记录客户端的序列号,进入TS_SP_STAT_SYN_RCVD状态,等待客户端的ACK报文。如果在后面的某个时刻收到针对SYN+ACK的ACK报文,则说明连接合法,软件开始和服务器协商,协商过程是一个完整的三次握手过程,为了保证协商能够可靠进行,软件最好能实现重传机制。如果超过规定时间没有收到针对SYN+ACK的ACK报文,说明不是合法的连接,则释放资源。
第三,和服务器协商完成后,软件把TCP序列号的差值登记在连接表数据结构中,然后删除先前分配的SYN代理专用数据结构。
最后,已建立连接的后续正常通信过程中,芯片查找连接表,根据连接表的内容作序列号转换。序列号转换包括修改从服务器到客户端的报文的SYN序号,以及修改从客户端到服务器的报文的ACK序号。这一步骤与网络地址转换(NAT)等其他转换一起完成。转换完成后,芯片重新计算校验和,并继续完成数据包的发送。这样,正常的通信报文仍由芯片快速处理。
在TCP客户机C通过防火墙F与TCP服务器S进行通信时,本发明防火墙芯片参与SYN代理的处理过程如下:
步骤一,客户机C发出seq=s的SYN包,芯片收到该报文后交给软件处理;
步骤二,软件进行必要的防火墙规则判断后,以服务器S的身份构造seq=c,ack=s+1的SYN+ACK包,回送给客户机C;
步骤三,客户机C响应seq=s+1,ack=c+1的ACK包;
步骤四,软件判断该ACK包合法,向服务器S发送seq=s的SYN包;
步骤五,服务器S回应seq=c’,ack=s+1的SYN+ACK包;
步骤六,软件向服务器S回应seq=s+1,ack=c’+1的ACK包,完成握手。同时将seq的差值seq_diff=c-c’记录到对应的连接表数据结构中。
客户机C到服务器S的后续通信,客户机C发送seq=m,ack=c+n的数据报文,经过芯片时,芯片进行seq转换ack’=ack-seq_diff=c+n-(c-c’)=c’+n,之后芯片重算校验和并转发数据。该过程不需要软件参与。
服务器S到客户机C的后续通信,服务器发送seq=c’+m,ack=n的数据报文,经过芯片时,芯片进行seq转换seq’=seq+seq_diff=c’+m+(c-c’)=c+m,之后芯片重算校验和并转发数据。该过程同样不需要软件参与。

Claims (5)

1、一种实现防火墙芯片参与SYN代理的方法,其特征在于:
第一步,由运行在通用CPU上的软件完成SYN代理的协商过程;
第二步,和服务器协商完成后,运行在通用CPU上的软件把TCP序列号的差值登记在连接表数据结构中,然后删除先前分配的SYN代理专用数据结构;
第三步,对于已建立连接的正常通信,防火墙芯片在转换TCP序列号的基础上,快速处理通信报文。
2、根据权利要求1所述的实现防火墙芯片参与SYN代理的方法,其特征在于,第一步中所述协商过程如下:
首先,芯片收到客户端发起的SYN包,提取报文头信息进行判断,如果发现是TCP三次握手的第一个报文,则将其交给所述软件处理;
然后,所述软件检查防火墙规则,如果检查结果为允许访问,并且访问的目的主机受SYN代理保护,则启动SYN代理处理流程;软件以服务器的身份构造SYN+ACK包,回送给客户端,记录客户端的序列号,进入TS_SP_STAT_SYN_RCVD状态,等待客户端的ACK报文;
如果在后面的某个时刻收到针对SYN+ACK的ACK报文,则软件开始和服务器协商,协商过程是一个完整的三次握手过程,如果超过规定时间没有收到针对SYN+ACK的ACK报文,则释放资源。
3、根据权利要求1所述的实现防火墙芯片参与SYN代理的方法,其特征在于,所述第三步中,已建立连接的后续正常通信过程中,芯片查找连接表,根据连接表的内容作序列号转换,包括修改从服务器到客户端的报文的SYN序号,以及修改从客户端到服务器的报文的ACK序号,这一步骤与网络地址转换(NAT)一起完成;转换完成后,芯片重新计算校验和,并继续完成数据包的发送。
4、根据权利要求2所述的实现防火墙芯片参与SYN代理的方法,其特征在于,所述第三步中,已建立连接的后续正常通信过程中,芯片查找连接表,根据连接表的内容作序列号转换,包括修改从服务器到客户端的报文的SYN序号,以及修改从客户端到服务器的报文的ACK序号,这一步骤与网络地址转换(NAT)一起完成;转换完成后,芯片重新计算校验和,并继续完成数据包的发送。
5、根据权利要求1至4中任意一项所述的实现防火墙芯片参与SYN代理的方法,其特征在于,所述软件能够实现重传机制。
CN2007100983991A 2007-04-25 2007-04-25 一种实现防火墙芯片参与syn代理的方法 Active CN101296223B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007100983991A CN101296223B (zh) 2007-04-25 2007-04-25 一种实现防火墙芯片参与syn代理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100983991A CN101296223B (zh) 2007-04-25 2007-04-25 一种实现防火墙芯片参与syn代理的方法

Publications (2)

Publication Number Publication Date
CN101296223A true CN101296223A (zh) 2008-10-29
CN101296223B CN101296223B (zh) 2011-02-02

Family

ID=40066238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100983991A Active CN101296223B (zh) 2007-04-25 2007-04-25 一种实现防火墙芯片参与syn代理的方法

Country Status (1)

Country Link
CN (1) CN101296223B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521675B (zh) * 2009-03-23 2012-11-07 成都市华为赛门铁克科技有限公司 一种用户认证方法及装置
CN103209175A (zh) * 2013-03-13 2013-07-17 深圳市同洲电子股份有限公司 一种建立数据传输连接的方法及装置
CN106302495A (zh) * 2016-08-25 2017-01-04 北京神州绿盟信息安全科技股份有限公司 一种ACK Flood攻击的防护方法及中间防护装置
CN108111509A (zh) * 2017-12-19 2018-06-01 北京百度网讯科技有限公司 数据传输方法
CN109150919A (zh) * 2018-10-31 2019-01-04 北京天融信网络安全技术有限公司 一种网络防攻击的方法及网络设备
CN110071939A (zh) * 2019-05-05 2019-07-30 江苏亨通工控安全研究院有限公司 针对传统ddos防火墙syn flood防护在工业网络中的改进方法
CN111431871A (zh) * 2020-03-10 2020-07-17 杭州迪普科技股份有限公司 Tcp半透明代理的处理方法和装置
CN112311731A (zh) * 2019-07-29 2021-02-02 联合汽车电子有限公司 车载处理器、车载控制器及通信方法
CN113542450A (zh) * 2021-07-21 2021-10-22 北京威努特技术有限公司 一种工控防火墙支持ftp穿越nat的实现方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1251446C (zh) * 2002-07-18 2006-04-12 华为技术有限公司 一种防御网络传输控制协议同步报文泛滥攻击的方法
CN1300986C (zh) * 2003-04-14 2007-02-14 华为技术有限公司 实现快速五七层交换的方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521675B (zh) * 2009-03-23 2012-11-07 成都市华为赛门铁克科技有限公司 一种用户认证方法及装置
CN103209175A (zh) * 2013-03-13 2013-07-17 深圳市同洲电子股份有限公司 一种建立数据传输连接的方法及装置
CN106302495A (zh) * 2016-08-25 2017-01-04 北京神州绿盟信息安全科技股份有限公司 一种ACK Flood攻击的防护方法及中间防护装置
CN108111509A (zh) * 2017-12-19 2018-06-01 北京百度网讯科技有限公司 数据传输方法
CN108111509B (zh) * 2017-12-19 2020-11-06 北京百度网讯科技有限公司 数据传输方法
US10848599B2 (en) 2017-12-19 2020-11-24 Beijing Baidu Netcom Science And Technology Co., Ltd. Data transmission method and gateway as well as server and computer-readable storage medium
CN109150919B (zh) * 2018-10-31 2021-06-08 北京天融信网络安全技术有限公司 一种网络防攻击的方法及网络设备
CN109150919A (zh) * 2018-10-31 2019-01-04 北京天融信网络安全技术有限公司 一种网络防攻击的方法及网络设备
CN110071939A (zh) * 2019-05-05 2019-07-30 江苏亨通工控安全研究院有限公司 针对传统ddos防火墙syn flood防护在工业网络中的改进方法
CN110071939B (zh) * 2019-05-05 2021-06-29 江苏亨通工控安全研究院有限公司 针对传统ddos防火墙syn flood防护在工业网络中的改进方法
CN112311731A (zh) * 2019-07-29 2021-02-02 联合汽车电子有限公司 车载处理器、车载控制器及通信方法
CN111431871A (zh) * 2020-03-10 2020-07-17 杭州迪普科技股份有限公司 Tcp半透明代理的处理方法和装置
CN113542450A (zh) * 2021-07-21 2021-10-22 北京威努特技术有限公司 一种工控防火墙支持ftp穿越nat的实现方法及系统

Also Published As

Publication number Publication date
CN101296223B (zh) 2011-02-02

Similar Documents

Publication Publication Date Title
CN101296223B (zh) 一种实现防火墙芯片参与syn代理的方法
EP1175066B1 (en) Method and system for providing connection handling
Ford et al. TCP extensions for multipath operation with multiple addresses
CN101175013B (zh) 一种拒绝服务攻击防护方法、网络系统和代理服务器
US7672223B2 (en) Method and apparatus for replicating a transport layer protocol stream
EP3352431B1 (en) Network load balance processing system, method, and apparatus
CN101547210A (zh) 一种tcp连接的处理方法和装置
EP3276891B1 (en) Techniques for establishing a communication connection between two network entities via different network flows
CN102291441A (zh) 一种防范SYN Flood攻击的方法及安全代理装置
CN103051642A (zh) 基于vpn实现防火墙内局域网设备访问的方法及网络系统
CN100420197C (zh) 一种实现网络设备防攻击的方法
US20020099851A1 (en) Decoupling TCP/IP processing in system area networks
JP6444988B2 (ja) Httpを利用する通信システム
JP2010200300A (ja) Tcp通信方式
JP2017118545A5 (zh)
JP3999785B2 (ja) 通信方法
Simpson TCP cookie transactions (TCPCT)
WO2010141034A1 (en) Multi-directional secure common data transport system
CN102917082A (zh) 穿透网络地址转换的消息推送方法及系统
JP2006203537A (ja) ネットワーク伝送装置およびネットワーク伝送方法
US8737413B2 (en) Relay server and relay communication system
JP2006148727A (ja) アプリケーションモニタ装置
CN117397232A (zh) 无代理协议
JP3648211B2 (ja) パケット中継プログラム、パケット中継装置および記録媒体
JP2013102454A (ja) Tcp通信方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant