CN111431871A - Tcp半透明代理的处理方法和装置 - Google Patents
Tcp半透明代理的处理方法和装置 Download PDFInfo
- Publication number
- CN111431871A CN111431871A CN202010162254.9A CN202010162254A CN111431871A CN 111431871 A CN111431871 A CN 111431871A CN 202010162254 A CN202010162254 A CN 202010162254A CN 111431871 A CN111431871 A CN 111431871A
- Authority
- CN
- China
- Prior art keywords
- message
- syn
- ack
- carried
- tcp
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本申请提供一种TCP半透明代理的处理方法及装置,应用于防火墙设备的传输层中,所述方法包括:接收来自终端的第一SYN报文后,保存第一SYN报文携带的初始序列号,修改第一SYN报文得到第一SYN ACK报文;将第一SYN ACK报文发送给终端;若接收到终端发送的第一ACK报文,则根据第一SYN报文携带的初始序列号和防火墙设备的IP地址修改第一ACK报文,得到第二SYN报文;将第二SYN报文发送给服务器;若接收到服务器发送的第二SYN ACK报文,则根据第一SYN报文携带的初始序列号修改第二SYN ACK报文,得到第二ACK报文;将第二ACK报文发送给服务器,与服务器建立TCP连接。应用本申请的实施例,可以避免服务器的资源被占用,服务器可以有更多的资源处理正常业务。
Description
技术领域
本申请涉及网络通信技术领域,特别设计一种传输控制协议(TransmissionControl Protocol,TCP)半透明代理的处理方法和装置。
背景技术
终端在访问服务器时,通常需要先与服务器之间建立TCP连接,然后通过TCP连接进行访问。TCP连接的建立需要经过三次握手:终端向服务器发送SYN报文;服务器接收到SYN报文后,建立处于SYN_RECEIVED状态的TCP半连接,此时服务器的应用层需要为TCP半连接分配相应的资源,然后向终端回复SYN ACK报文;终端接收到SYN ACK报文后,向服务器回应ACK报文,这样终端与服务器之间的TCP连接就建立起来了。
利用TCP连接的建立过程,一些恶意的攻击源可以进行SYN Flood攻击。攻击源向服务器发送大量的SYN报文,而不回应服务器的SYN ACK报文,导致服务器上建立了大量的TCP半连接,这样就会大量耗费服务器资源,使服务器无法处理正常业务。
发明内容
有鉴于此,本申请提供一种TCP半透明代理的处理方法和装置,以解决相关技术中存在的由于SYN Flood攻击导致的大量耗费服务器资源,使服务器无法处理正常业务的问题。
具体地,本申请是通过如下技术方案实现的:
一种TCP半透明代理的处理方法,应用于防火墙设备的传输层中,其特征在于,所述方法包括:
接收来自终端的第一SYN报文后,保存所述第一SYN报文携带的初始序列号,并修改所述第一SYN报文得到第一SYN ACK报文;
将所述第一SYN ACK报文发送给所述终端;
若接收到所述终端根据所述第一SYN ACK报文发送的第一ACK报文,则根据所述第一SYN报文携带的初始序列号和所述防火墙设备的互联网协议IP地址修改所述第一ACK报文,得到第二SYN报文;
将所述第二SYN报文发送给所述第一ACK报文携带的目的IP地址对应的服务器;
若接收到所述服务器根据所述第二SYN报文发送的第二SYN ACK报文,则根据所述第一SYN报文携带的初始序列号修改所述第二SYN ACK报文,得到第二ACK报文;
将所述第二ACK报文发送给所述服务器,与所述服务器建立TCP连接。
一种TCP半透明代理的处理装置,应用于防火墙设备的传输层中,其特征在于,所述装置包括:
第一修改模块,用于接收来自终端的第一SYN报文后,保存所述第一SYN报文携带的初始序列号,并修改所述第一SYN报文得到第一SYN ACK报文;
第一发送模块,用于将所述第一SYN ACK报文发送给所述终端;
第二修改模块,用于若接收到所述终端根据所述第一SYN ACK报文发送的第一ACK报文,则根据所述第一SYN报文携带的初始序列号和所述防火墙设备的IP地址修改所述第一ACK报文,得到第二SYN报文;
第二发送模块,用于将所述第二SYN报文发送给所述第一ACK报文携带的目的IP地址对应的服务器;
第三修改模块,用于若接收到所述服务器根据所述第二SYN报文发送的第二SYNACK报文,则根据所述第一SYN报文携带的初始序列号修改所述第二SYN ACK报文,得到第二ACK报文;
第三发送模块,用于将所述第二ACK报文发送给所述服务器,与所述服务器建立TCP连接。
一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。
一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
由以上本申请提供的技术方案可见,应用于防火墙设备的传输层中,接收来自终端的第一SYN报文后,修改第一SYN报文得到第一SYN ACK报文,将第一SYN ACK报文发送给终端,若终端是攻击源,不会回复ACK报文,由于第一SYN报文是在传输层进行处理,并没有进入到应用层,因此,不会占用防火墙设备的资源,并且由于第一SYN报文没有到服务器,从而可以避免服务器的资源被占用,服务器可以有更多的资源处理正常业务;若终端不是攻击源,会根据第一SYN ACK报文发送第一ACK报文,防火墙可以代替终端与服务器建立TCP连接,可以实现隐藏终端的IP地址。
附图说明
图1为本申请示出的一种TCP半透明代理的处理方法的流程图;
图2为本申请示出的一种TCP半透明代理的处理装置的结构示意图;
图3为本申请示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了解决上述问题,本发明实施例提供了一种TCP半透明代理的处理方法,以。请参见图1,图1为本申请示出的一种TCP半透明代理的处理方法的流程图,应用于防火墙设备的传输层中。
S11:接收来自终端的第一SYN报文后,保存第一SYN报文携带的初始序列号,并修改第一SYN报文得到第一SYN ACK报文。
任一终端需要访问服务器时,会首先发起SYN报文,该SYN报文可以定义为第一SYN报文。由于防火墙设备设置在终端与服务器之间,因此,第一SYN报文会首先到达防火墙设备,防火墙设备可以保存第一SYN报文携带的初始序列号,修改第一SYN报文得到第一SYNACK报文。
S12:将第一SYN ACK报文发送给终端。
防火墙设备可以代替服务器向终端发送第一SYN ACK报文。
S13:若接收到终端根据第一SYN ACK报文发送的第一ACK报文,则根据第一SYN报文携带的初始序列号和防火墙设备的互联网协议(Internet Protocol,IP)地址修改第一ACK报文,得到第二SYN报文。
若终端是攻击源,接收到第一SYN ACK报文后,不会进行任何处理;若终端不是攻击源,也就是正常的终端,会根据第一SYN ACK报文发送ACK报文,该ACK报文可以定义为第一ACK报文,防火墙设备接收到第一ACK报文后,根据第一SYN报文携带的初始序列号和防火墙设备的IP地址修改第一ACK报文,得到SYN报文,该SYN报文可以定义为第二SYN报文。
S14:将第二SYN报文发送给第一ACK报文携带的目的IP地址对应的服务器。
防火墙设备可以代替终端向第一ACK报文携带的目的IP地址对应的服务器发送第二SYN报文。
S15:若接收到服务器根据第二SYN报文发送的第二SYN ACK报文,则根据第一SYN报文携带的初始序列号修改第二SYN ACK报文,得到第二ACK报文。
服务器接收到第二SYN报文后,会回复SYN ACK报文,该SYN ACK报文可以定义为第二SYN ACK报文,防火墙设备接收到第二SYN ACK报文后,可以根据之前保存的第一SYN报文携带的初始序列号修改第二SYN ACK报文,得到ACK报文,该ACK报文可以定义为第二ACK报文。
S16:将第二ACK报文发送给服务器,与服务器建立TCP连接。
从而实现终端与服务器之间的TCP半透明代理。
由以上本申请提供的技术方案可见,应用于防火墙设备的传输层中,接收来自终端的第一SYN报文后,修改第一SYN报文得到第一SYN ACK报文,将第一SYN ACK报文发送给终端,若终端是攻击源,不会回复ACK报文,由于第一SYN报文是在传输层进行处理,并没有进入到应用层,因此,不会占用防火墙设备的资源,并且由于第一SYN报文没有到服务器,从而可以避免服务器的资源被占用,服务器可以有更多的资源处理正常业务;若终端不是攻击源,会根据第一SYN ACK报文发送第一ACK报文,防火墙可以代替终端与服务器建立TCP连接,可以实现隐藏终端的IP地址。
一种可选的实施方式,上述方法还包括:
若接收到终端在发送第一ACK之后发送的TCP数据报文或者TCP挥手报文,则将接收到的TCP数据报文或者TCP挥手报文缓存到缓存队列中;
确定执行将第二ACK报文发送给服务器的步骤之后,依次将缓存队列中的报文携带的源IP地址替换为防火墙设备的IP地址后,发送给服务器;
若接收到服务器根据TCP数据报文或者TCP挥手报文回复的TCP报文,则将TCP报文携带的目的IP地址替换为防火墙设备的IP地址后,发送终端。
由于防火墙设备代替终端与服务器建立TCP连接,有可能在防火墙设备与服务器完成TCP连接建立之前,就接收到终端发送的TCP数据报文或者TCP挥手报文,此时,可以首先在缓存队列中缓存TCP数据报文或者TCP挥手报文,在确定将第二ACK报文发送给服务器之后,也就是确定防火墙设备与服务器建立TCP连接之后,再依次将缓存队列中的报文携带的源IP地址替换为防火墙设备的IP地址后,发送给服务器;服务器通常在接收到TCP数据报文或者TCP挥手报文之后回复TCP数据报文或者TCP挥手报文,这些报文可以统称为TCP报文,防火墙设备在接收到服务器回复的TCP报文后,可以将TCP报文携带的目的IP地址替换为防火墙设备的IP地址后,发送终端。从而可以实现在终端与服务器之间的TCP半透明代理。
一种可选的实施方式,上述方法还包括:
监测缓存队列中包括的报文的数量是否超过设定阈值;
若确定缓存队列中包括的报文的数量超过设定阈值,则断开TCP连接,并清空缓存队列。
有时候防火墙设备与服务器之间的TCP连接可能会出现异常,此时若一直缓存来自终端的报文,则会造成资源浪费,为了避免这一现象,可以监测缓存队列中包括的报文的数量是否超过设定阈值,若确定缓存队列中包括的报文的数量超过设定阈值,说明与服务器之间的TCP连接异常,此时可以断开TCP连接,并清空缓存队列。其中,设定阈值可以根据实际需要进行设定,例如,可以但不限于设定为2000、3000等等。
一种可选的实施方式,上述S11中的接收来自终端的第一SYN报文后,上述方法还包括:
在五元组信息表中查找是否第一SYN报文的五元组信息;
若查找到第一SYN报文的五元组信息,则确定第一SYN报文的五元组信息对应的表项是否携带设定标识,若确定表项携带设定标识,则执行修改第一SYN报文得到第一SYNACK报文的步骤;
若未查找到第一SYN报文的五元组信息,则建立包括第一SYN报文的五元组信息的表项,并确定第一SYN报文是否命中包过滤策略,若确定第一SYN报文命中包过滤策略,则在表项中添加设定标识,执行修改第一SYN报文得到第一SYN ACK报文的步骤。
还可以配合包过滤策略来进行TCP半透明代理,对于命中包过滤策略的报文才会进行TCP半透明代理,可以设置五元组信息表,将命中包过滤策略的报文的五元组信息添加到五元组信息表中,并将该表项添加设定标识,后续接收到的报文可以依据是否携带设定标识确定是否执行上述TCP半透明代理的过程。其中,设定标识可以根据实际需要进行设定。
具体的,上述S11中的修改第一SYN报文得到第一SYN ACK报文,实现过程具体包括:
将第一SYN报文携带的进程标识(Identification,ID)修改为防火墙的进程ID、第一SYN报文携带的源IP地址与目的IP地址互换、第一SYN报文携带的源端口与目的端口互换、第一SYN报文携带的初始序列号修改为防火墙设备的初始序列号,得到初始第一SYNACK报文;
根据防火墙的进程ID、防火墙设备的初始序列号、互换后的源IP地址和目的IP地址、以及互换后的源端口和目的端口生成IP层和TCP层的校验和;
将初始第一SYN携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第一SYN ACK报文。
通过上述过程防火墙设备可以代替服务器生成第一SYN ACK报文。
具体的,上述S13中的根据第一SYN报文携带的初始序列号和防火墙设备的IP地址修改第一ACK报文,得到第二SYN报文,实现过程具体包括:
将第一ACK报文携带的源IP地址修改为防火墙设备的IP地址、第一ACK报文携带的进程ID修改为防火墙的进程ID、第一ACK报文携带的初始序列号修改为第一SYN报文携带的初始序列号,得到初始第二SYN报文;
根据初始第二SYN报文携带的源IP地址和目的IP地址、防火墙设备的进程ID、第一SYN报文携带的初始序列号、初始第二SYN携带的源端口和目的端口生成IP层和TCP层的校验和;
将初始第二SYN报文携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第二SYN报文。
通过上述过程防火墙设备可以代替终端生成第二SYN ACK报文。
具体的,上述S15中的根据第一SYN报文携带的初始序列号修改第二SYN ACK报文,得到第二ACK报文,实现过程具体包括:
将第二SYN报文携带的进程ID修改为防火墙的进程ID、第二SYN报文携带的源IP地址与目的IP地址互换、第二SYN报文携带的源端口与目的端口互换、第二SYN报文携带的初始序列号修改为第一SYN报文携带的初始序列号,得到初始第二ACK报文;
根据防火墙的进程ID、第一SYN报文携带的初始序列号、互换后的源IP地址和目的IP地址、以及互换后的源端口和目的端口生成IP层和TCP层的校验和;
将初始第二ACK报文携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第二ACK报文。
通过上述过程防火墙设备可以代替终端生成第二ACK报文。
请参见图2,图2为本申请示出的一种TCP半透明代理的处理装置的结构示意图,应用于防火墙设备的传输层中,该装置包括:
第一修改模块21,用于接收来自终端的第一SYN报文后,保存第一SYN报文携带的初始序列号,并修改第一SYN报文得到第一SYN ACK报文;
第一发送模块22,用于将第一SYN ACK报文发送给终端;
第二修改模块23,用于若接收到终端根据第一SYN ACK报文发送的第一ACK报文,则根据第一SYN报文携带的初始序列号和防火墙设备的IP地址修改第一ACK报文,得到第二SYN报文;
第二发送模块24,用于将第二SYN报文发送给第一ACK报文携带的目的IP地址对应的服务器;
第三修改模块25,用于若接收到服务器根据第二SYN报文发送的第二SYN ACK报文,则根据第一SYN报文携带的初始序列号修改第二SYN ACK报文,得到第二ACK报文;
第三发送模块26,用于将第二ACK报文发送给服务器,与服务器建立TCP连接。
由以上本申请提供的技术方案可见,应用于防火墙设备的传输层中,接收来自终端的第一SYN报文后,修改第一SYN报文得到第一SYN ACK报文,将第一SYN ACK报文发送给终端,若终端是攻击源,不会回复ACK报文,由于第一SYN报文是在传输层进行处理,并没有进入到应用层,因此,不会占用防火墙设备的资源,并且由于第一SYN报文没有到服务器,从而可以避免服务器的资源被占用,服务器可以有更多的资源处理正常业务;若终端不是攻击源,会根据第一SYN ACK报文发送第一ACK报文,防火墙可以代替终端与服务器建立TCP连接,可以实现隐藏终端的IP地址。
可选的,上述装置还包括:
缓存模块,用于若接收到终端在发送第一ACK之后发送的TCP数据报文或者TCP挥手报文,则将接收到的TCP数据报文或者TCP挥手报文缓存到缓存队列中;
第四发送模块,用于确定执行将第二ACK报文发送给服务器的步骤之后,依次将缓存队列中的报文携带的源IP地址替换为防火墙设备的IP地址后,发送给服务器;
第五发送模块,用于若接收到服务器根据TCP数据报文或者TCP挥手报文回复的TCP报文,则将TCP报文携带的目的IP地址替换为防火墙设备的IP地址后,发送终端。
可选的,上述装置还包括第一处理模块,用于:
监测缓存队列中包括的报文的数量是否超过设定阈值;
若确定缓存队列中包括的报文的数量超过设定阈值,则断开TCP连接,并清空缓存队列。
可选的,接收来自终端的第一SYN报文后,上述装置还包括第二处理模块,用于:
在五元组信息表中查找是否第一SYN报文的五元组信息;
若查找到第一SYN报文的五元组信息,则确定第一SYN报文的五元组信息对应的表项是否携带设定标识,若确定表项携带设定标识,则转向第一修改模块;
若未查找到第一SYN报文的五元组信息,则建立包括第一SYN报文的五元组信息的表项,并确定第一SYN报文是否命中包过滤策略,若确定第一SYN报文命中包过滤策略,则在表项中添加设定标识,转向第一修改模块。
具体的,第一修改模块22,用于修改第一SYN报文得到第一SYN ACK报文,具体用于:
将第一SYN报文携带的进程ID修改为防火墙的进程ID、第一SYN报文携带的源IP地址与目的IP地址互换、第一SYN报文携带的源端口与目的端口互换、第一SYN报文携带的初始序列号修改为防火墙设备的初始序列号,得到初始第一SYN ACK报文;
根据防火墙的进程ID、防火墙设备的初始序列号、互换后的源IP地址和目的IP地址、以及互换后的源端口和目的端口生成IP层和TCP层的校验和;
将初始第一SYN携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第一SYN ACK报文。
具体的,第二修改模块24,用于根据第一SYN报文携带的初始序列号和防火墙设备的IP地址修改第一ACK报文,得到第二SYN报文,具体用于:
将第一ACK报文携带的源IP地址修改为防火墙设备的IP地址、第一ACK报文携带的进程ID修改为防火墙的进程ID、第一ACK报文携带的初始序列号修改为第一SYN报文携带的初始序列号,得到初始第二SYN报文;
根据初始第二SYN报文携带的源IP地址和目的IP地址、防火墙设备的进程ID、第一SYN报文携带的初始序列号、初始第二SYN携带的源端口和目的端口生成IP层和TCP层的校验和;
将初始第二SYN报文携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第二SYN报文。
具体的,第三修改模块26,用于根据第一SYN报文携带的初始序列号修改第二SYNACK报文,得到第二ACK报文,具体用于:
将第二SYN报文携带的进程ID修改为防火墙的进程ID、第二SYN报文携带的源IP地址与目的IP地址互换、第二SYN报文携带的源端口与目的端口互换、第二SYN报文携带的初始序列号修改为第一SYN报文携带的初始序列号,得到初始第二ACK报文;
根据防火墙的进程ID、第一SYN报文携带的初始序列号、互换后的源IP地址和目的IP地址、以及互换后的源端口和目的端口生成IP层和TCP层的校验和;
将初始第二ACK报文携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第二ACK报文。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例还提供了一种电子设备,请参见图3所示,包括处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。
存储器330,用于存放计算机程序;
处理器310,用于执行存储器330上所存放的程序时,实现上述实施例中任一所述的TCP半透明代理的处理方法。
通信接口320用于上述电子设备与其他设备之间的通信。
存储器330可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
由以上本申请提供的技术方案可见,应用于防火墙设备的传输层中,接收来自终端的第一SYN报文后,修改第一SYN报文得到第一SYN ACK报文,将第一SYN ACK报文发送给终端,若终端是攻击源,不会回复ACK报文,由于第一SYN报文是在传输层进行处理,并没有进入到应用层,因此,不会占用防火墙设备的资源,并且由于第一SYN报文没有到服务器,从而可以避免服务器的资源被占用,服务器可以有更多的资源处理正常业务;若终端不是攻击源,会根据第一SYN ACK报文发送第一ACK报文,防火墙可以代替终端与服务器建立TCP连接,可以实现隐藏终端的IP地址。
相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的TCP半透明代理的处理方法。
由以上本申请提供的技术方案可见,应用于防火墙设备的传输层中,接收来自终端的第一SYN报文后,修改第一SYN报文得到第一SYN ACK报文,将第一SYN ACK报文发送给终端,若终端是攻击源,不会回复ACK报文,由于第一SYN报文是在传输层进行处理,并没有进入到应用层,因此,不会占用防火墙设备的资源,并且由于第一SYN报文没有到服务器,从而可以避免服务器的资源被占用,服务器可以有更多的资源处理正常业务;若终端不是攻击源,会根据第一SYN ACK报文发送第一ACK报文,防火墙可以代替终端与服务器建立TCP连接,可以实现隐藏终端的IP地址。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种传输控制协议TCP半透明代理的处理方法,应用于防火墙设备的传输层中,其特征在于,所述方法包括:
接收来自终端的第一SYN报文后,保存所述第一SYN报文携带的初始序列号,并修改所述第一SYN报文得到第一SYN ACK报文;
将所述第一SYN ACK报文发送给所述终端;
若接收到所述终端根据所述第一SYN ACK报文发送的第一ACK报文,则根据所述第一SYN报文携带的初始序列号和所述防火墙设备的互联网协议IP地址修改所述第一ACK报文,得到第二SYN报文;
将所述第二SYN报文发送给所述第一ACK报文携带的目的IP地址对应的服务器;
若接收到所述服务器根据所述第二SYN报文发送的第二SYN ACK报文,则根据所述第一SYN报文携带的初始序列号修改所述第二SYN ACK报文,得到第二ACK报文;
将所述第二ACK报文发送给所述服务器,与所述服务器建立TCP连接。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到所述终端在发送所述第一ACK之后发送的TCP数据报文或者TCP挥手报文,则将接收到的TCP数据报文或者TCP挥手报文缓存到缓存队列中;
确定执行所述将所述第二ACK报文发送给所述服务器的步骤之后,依次将所述缓存队列中的报文携带的源IP地址替换为所述防火墙设备的IP地址后,发送给所述服务器;
若接收到所述服务器根据所述TCP数据报文或者所述TCP挥手报文回复的TCP报文,则将所述TCP报文携带的目的IP地址替换为所述防火墙设备的IP地址后,发送所述终端。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
监测所述缓存队列中包括的报文的数量是否超过设定阈值;
若确定所述缓存队列中包括的报文的数量超过所述设定阈值,则断开所述TCP连接,并清空所述缓存队列。
4.根据权利要求1所述的方法,其特征在于,接收来自终端的第一SYN报文后,所述方法还包括:
在五元组信息表中查找是否所述第一SYN报文的五元组信息;
若查找到所述第一SYN报文的五元组信息,则确定所述第一SYN报文的五元组信息对应的表项是否携带设定标识,若确定所述表项携带所述设定标识,则执行所述修改所述第一SYN报文得到第一SYN ACK报文的步骤;
若未查找到所述第一SYN报文的五元组信息,则建立包括所述第一SYN报文的五元组信息的表项,并确定所述第一SYN报文是否命中包过滤策略,若确定所述第一SYN报文命中所述包过滤策略,则在所述表项中添加设定标识,执行所述修改所述第一SYN报文得到第一SYN ACK报文的步骤。
5.根据权利要求1所述的方法,其特征在于,修改所述第一SYN报文得到第一SYN ACK报文,具体包括:
将所述第一SYN报文携带的进程标识ID修改为所述防火墙的进程ID、所述第一SYN报文携带的源IP地址与目的IP地址互换、所述第一SYN报文携带的源端口与目的端口互换、所述第一SYN报文携带的初始序列号修改为所述防火墙设备的初始序列号,得到初始第一SYNACK报文;
根据所述防火墙的进程ID、所述防火墙设备的初始序列号、互换后的源IP地址和目的IP地址、以及互换后的源端口和目的端口生成IP层和TCP层的校验和;
将所述初始第一SYN携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第一SYN ACK报文。
6.根据权利要求1所述的方法,其特征在于,根据所述第一SYN报文携带的初始序列号和所述防火墙设备的IP地址修改所述第一ACK报文,得到第二SYN报文,具体包括:
将所述第一ACK报文携带的源IP地址修改为所述防火墙设备的IP地址、所述第一ACK报文携带的进程ID修改为所述防火墙的进程ID、所述第一ACK报文携带的初始序列号修改为所述第一SYN报文携带的初始序列号,得到初始第二SYN报文;
根据所述初始第二SYN报文携带的源IP地址和目的IP地址、所述防火墙设备的进程ID、所述第一SYN报文携带的初始序列号、所述初始第二SYN携带的源端口和目的端口生成IP层和TCP层的校验和;
将所述初始第二SYN报文携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第二SYN报文。
7.根据权利要求1-6任一所述的方法,其特征在于,根据所述第一SYN报文携带的初始序列号修改所述第二SYN ACK报文,得到第二ACK报文,具体包括:
将所述第二SYN报文携带的进程ID修改为所述防火墙的进程ID、所述第二SYN报文携带的源IP地址与目的IP地址互换、所述第二SYN报文携带的源端口与目的端口互换、所述第二SYN报文携带的初始序列号修改为所述第一SYN报文携带的初始序列号,得到初始第二ACK报文;
根据所述防火墙的进程ID、所述第一SYN报文携带的初始序列号、互换后的源IP地址和目的IP地址、以及互换后的源端口和目的端口生成IP层和TCP层的校验和;
将所述初始第二ACK报文携带的IP层和TCP层的校验和修改为生成的IP层和TCP层的校验和后,得到第二ACK报文。
8.一种TCP半透明代理的处理装置,应用于防火墙设备的传输层中,其特征在于,所述装置包括:
第一修改模块,用于接收来自终端的第一SYN报文后,保存所述第一SYN报文携带的初始序列号,并修改所述第一SYN报文得到第一SYN ACK报文;
第一发送模块,用于将所述第一SYN ACK报文发送给所述终端;
第二修改模块,用于若接收到所述终端根据所述第一SYN ACK报文发送的第一ACK报文,则根据所述第一SYN报文携带的初始序列号和所述防火墙设备的IP地址修改所述第一ACK报文,得到第二SYN报文;
第二发送模块,用于将所述第二SYN报文发送给所述第一ACK报文携带的目的IP地址对应的服务器;
第三修改模块,用于若接收到所述服务器根据所述第二SYN报文发送的第二SYN ACK报文,则根据所述第一SYN报文携带的初始序列号修改所述第二SYN ACK报文,得到第二ACK报文;
第三发送模块,用于将所述第二ACK报文发送给所述服务器,与所述服务器建立TCP连接。
9.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010162254.9A CN111431871B (zh) | 2020-03-10 | 2020-03-10 | Tcp半透明代理的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010162254.9A CN111431871B (zh) | 2020-03-10 | 2020-03-10 | Tcp半透明代理的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431871A true CN111431871A (zh) | 2020-07-17 |
CN111431871B CN111431871B (zh) | 2022-11-25 |
Family
ID=71546282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010162254.9A Active CN111431871B (zh) | 2020-03-10 | 2020-03-10 | Tcp半透明代理的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431871B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111917611A (zh) * | 2020-08-20 | 2020-11-10 | 杭州迪普科技股份有限公司 | 半透明代理服务器的测试方法、装置及系统 |
CN112104744A (zh) * | 2020-03-30 | 2020-12-18 | 厦门网宿有限公司 | 流量代理方法、服务器及存储介质 |
CN115297165A (zh) * | 2022-09-29 | 2022-11-04 | 浙江齐安信息科技有限公司 | 代理装置及数据处理方法 |
CN115720174A (zh) * | 2022-11-30 | 2023-02-28 | 广西壮族自治区信息中心 | 黑名单例外的设置方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296238A (zh) * | 2008-06-17 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种保持安全套接层会话持续性的方法及设备 |
CN101296223A (zh) * | 2007-04-25 | 2008-10-29 | 北京天融信网络安全技术有限公司 | 一种实现防火墙芯片参与syn代理的方法 |
CN101547210A (zh) * | 2009-05-14 | 2009-09-30 | 福建星网锐捷网络有限公司 | 一种tcp连接的处理方法和装置 |
CN101771695A (zh) * | 2010-01-07 | 2010-07-07 | 福建星网锐捷网络有限公司 | Tcp连接的处理方法、系统及syn代理设备 |
CN103491065A (zh) * | 2012-06-14 | 2014-01-01 | 中兴通讯股份有限公司 | 一种透明代理及其实现方法 |
US8806011B1 (en) * | 2014-01-06 | 2014-08-12 | Cloudflare, Inc. | Transparent bridging of transmission control protocol (TCP) connections |
CN105592038A (zh) * | 2015-07-13 | 2016-05-18 | 杭州华三通信技术有限公司 | Portal认证方法及装置 |
CN110784464A (zh) * | 2019-10-24 | 2020-02-11 | 新华三信息安全技术有限公司 | 泛洪攻击的客户端验证方法、装置、系统及电子设备 |
-
2020
- 2020-03-10 CN CN202010162254.9A patent/CN111431871B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296223A (zh) * | 2007-04-25 | 2008-10-29 | 北京天融信网络安全技术有限公司 | 一种实现防火墙芯片参与syn代理的方法 |
CN101296238A (zh) * | 2008-06-17 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种保持安全套接层会话持续性的方法及设备 |
CN101547210A (zh) * | 2009-05-14 | 2009-09-30 | 福建星网锐捷网络有限公司 | 一种tcp连接的处理方法和装置 |
CN101771695A (zh) * | 2010-01-07 | 2010-07-07 | 福建星网锐捷网络有限公司 | Tcp连接的处理方法、系统及syn代理设备 |
CN103491065A (zh) * | 2012-06-14 | 2014-01-01 | 中兴通讯股份有限公司 | 一种透明代理及其实现方法 |
US8806011B1 (en) * | 2014-01-06 | 2014-08-12 | Cloudflare, Inc. | Transparent bridging of transmission control protocol (TCP) connections |
CN105592038A (zh) * | 2015-07-13 | 2016-05-18 | 杭州华三通信技术有限公司 | Portal认证方法及装置 |
CN110784464A (zh) * | 2019-10-24 | 2020-02-11 | 新华三信息安全技术有限公司 | 泛洪攻击的客户端验证方法、装置、系统及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112104744A (zh) * | 2020-03-30 | 2020-12-18 | 厦门网宿有限公司 | 流量代理方法、服务器及存储介质 |
CN111917611A (zh) * | 2020-08-20 | 2020-11-10 | 杭州迪普科技股份有限公司 | 半透明代理服务器的测试方法、装置及系统 |
CN115297165A (zh) * | 2022-09-29 | 2022-11-04 | 浙江齐安信息科技有限公司 | 代理装置及数据处理方法 |
CN115720174A (zh) * | 2022-11-30 | 2023-02-28 | 广西壮族自治区信息中心 | 黑名单例外的设置方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111431871B (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111431871B (zh) | Tcp半透明代理的处理方法和装置 | |
US9118719B2 (en) | Method, apparatus, signals, and medium for managing transfer of data in a data network | |
CN101094236B (zh) | 地址解析协议报文处理方法及通讯系统及转发平面处理器 | |
CN107547503B (zh) | 一种会话表项处理方法、装置、防火墙设备及存储介质 | |
CN108432194B (zh) | 一种拥塞处理的方法、主机及系统 | |
CN107395632B (zh) | SYN Flood防护方法、装置、清洗设备及介质 | |
JP2018528679A (ja) | 負荷平衡システムにおいて接続を確立するデバイス及び方法 | |
EP2469787A1 (en) | Method and device for preventing network attacks | |
CN106470136B (zh) | 平台测试方法以及平台测试系统 | |
CN111526225B (zh) | 会话管理方法和装置 | |
CN112929241B (zh) | 一种网络测试方法及装置 | |
US20200084300A1 (en) | Packet fragmentation control | |
CN112272164A (zh) | 报文处理方法及装置 | |
WO2015106453A1 (zh) | 处理业务的方法和网络设备 | |
CN112152880A (zh) | 一种链路健康检测方法及装置 | |
CN113285918A (zh) | 针对网络攻击的acl过滤表项建立方法及装置 | |
CN110912907A (zh) | Ssl握手阶段的攻击防护方法和装置 | |
CN108512833B (zh) | 一种防范攻击方法及装置 | |
CN110601989A (zh) | 一种网络流量均衡方法及装置 | |
KR20160102348A (ko) | Tcp 핸드셰이크를 수행하기 위한 장치 및 방법 | |
CN114598675A (zh) | 基于arp实现主机阻断的控制方法、装置、设备及介质 | |
CN111585909A (zh) | Tcp报文的负载均衡方法及装置 | |
CN111490989A (zh) | 一种网络系统、攻击检测方法、装置及电子设备 | |
WO2018233844A1 (en) | METHODS AND APPARATUS EMPLOYED TO ANSWER DNS REQUEST AND MANAGE CONNECTION REQUEST | |
CN111835735B (zh) | 一种防攻击方法、装置、设备及机器可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |