CN109995725B - 一种云计算状态防火墙的实现方法及装置 - Google Patents
一种云计算状态防火墙的实现方法及装置 Download PDFInfo
- Publication number
- CN109995725B CN109995725B CN201711490183.XA CN201711490183A CN109995725B CN 109995725 B CN109995725 B CN 109995725B CN 201711490183 A CN201711490183 A CN 201711490183A CN 109995725 B CN109995725 B CN 109995725B
- Authority
- CN
- China
- Prior art keywords
- message
- destination
- forwarded
- tcp
- address
- 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.)
- Active
Links
Images
Classifications
-
- 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
Abstract
本发明公开了一种云计算状态防火墙的实现方法及装置,用以解决现有的云计算环境中使用虚拟交换机的传统防火墙安全性低的问题。所述云计算状态防火墙的实现方法包括:接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态;提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种云计算状态防火墙的实现方法及装置。
背景技术
云计算是一种基于互联网的计算方式,通过云计算,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。其中,云计算网络是云计算的重要组成部分,云计算网络的基本核心包括:虚拟二层交换机、虚拟路由器、安全组以及虚拟防火墙等,需要为租户虚拟网络提供互相隔离、安全功能,以及实现OSI(Open System Interconnection,开放式系统互联)网络模型二、三层互通的功能,其中,二层和三层分别为数据链路层和网络层。
OpenFlow(开放流表)协议是软件定义网络(Software Defined Network,SDN)中的一种协议,OpenFlow交换机将原来完全由交换机控制的报文转发过程转化为由OpenFlow交换机和控制服务器来共同完成,从而实现了数据转发和控制的分离,控制服务器可以通过事先规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。这样,原来在同一台交换机设备上的报文转发功能和报文转发策略即各种软件协议被分开到了不同的硬件设备上,从而实现了统一的控制端,以更有效地控制网络。
状态防火墙(Stateful firewall)是一种能够提供状态封包检查(Statefulpacket inspection,SPI)或状态检视(Stateful inspection)功能的防火墙,能够持续追踪穿过这个防火墙的各种网络连线的状态,例如TCP(Transmission Control Protocol,传输控制协议)与UDP(User Datagram Protocol,用户数据报协议)连线。这种防火墙被设计来区分不同连线种类下的合法封包,只有符合主动连线的封包才能够被允许穿过防火墙,其他的封包都会被拒绝。
在云计算中,虚拟防火墙和安全组作为虚拟网络中不可或缺的基础安全组件,为用户提供了最基本的安全保护,运行OpenFlow协议的虚拟交换机因其良好的管控能力,被作为云计算中最常见的虚拟网络底层实现方案。目前,基于OpenFlow虚拟交换机的普通无状态防火墙已经有个别应用,但是在云计算环境中,基于OpenFlow虚拟交换机的状态防火墙还没有有效的实际应用。
目前,基于OpenFlow虚拟交换机的传统防火墙是这样实现的:
例如,云计算租户A需要通过虚拟路由器B连接外网主机C上的ssh(Secure Shell,安全外壳)协议服务,其中,外网主机C的IP(Internet Protocol,网络协议)地址为:123.0.0.1。用户通常需要创建防火墙D,绑定虚拟路由器B和防火墙D,并且通过SDN控制服务器在指定的OpenFlow流表中下发如下防火墙规则:
规则1、防火墙流表中,匹配IP为TCP,TCP的目的端口号为22,且目的IP地址为123.0.0.1的报文,规则动作为“允许通过”。
规则2、防火墙流表中,匹配IP协议为TCP,TCP的源端口号为22,且源IP地址为123.0.0.1的报文,规则动作为“允许通过”。
规则3、防火墙流表中,匹配所有报文,规则动作为“拒绝”。
规则1为出方向放行规则;规则2为入方向放行规则,即返程规则;规则3为默认规则,防火墙为白名单方式。
其中,规则2并不安全,并且采用手动配置的方式使得操作繁琐。具体地,由于目前主流操作系统上底层socket(网络套接字)库实现的原因,和对端服务绑定的本地主机所使用的TCP或UDP端口通常都是随机产生的,且有些软件间隔一段时间会自动更改本地端口,基于本地端口号使用的不确定性,用户一般只指定了TCP源端口,不会在规则2中指定其返程连接的TCP目的端口,而是放开所有TCP目的端口。这样,不法分子可能会利用用户未做保护的本地端口,扫描这些端口漏洞而侵入用户系统。
发明内容
本发明提供了一种云计算状态防火墙的实现方法及装置,用以解决现有的云计算环境中使用虚拟交换机的传统防火墙安全性低的问题。
第一方面,本发明实施例提供了一种云计算状态防火墙的实现方法,应用于云计算开放流表OpenFlow交换机中,所述方法包括:
接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态;
提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则。
可选地,在提取并保存所述目的端口号、目的IP地址之前,还包括:
确定所述待转发报文的协议类型为传输控制协议TCP;
确定所述报文状态信息表示TCP连接建立。
较佳地,确定所述报文状态信息表示TCP连接建立,具体包括:
确定所述待转发报文中的TCP ACK标记等于1。
可选地,该方法进一步包括:
接收所述转发报文的响应报文;
将所述响应报文中的源端口号、源IP地址分别与保存的该响应报文对应的待转发报文的目的端口号、目的IP地址进行匹配;
如果匹配结果是一致,则返程连接建立成功,并转发所述响应报文。
可选地,所述方法还包括:
当确定所述报文状态信息表示TCP连接释放时,将所述匹配规则在预设时间段后删除。
较佳地,当确定所述报文状态信息表示TCP连接释放时,将所述匹配规则在预设时间段后删除,具体包括:
当确定所述待转发报文中的TCP FIN标记等于1时,将所述匹配规则在预设时间段后删除。
第二方面,本发明实施例提供了一种云计算状态防火墙的实现装置,应用于云计算开放流表OpenFlow交换机中,所述装置包括:
第一接收单元,用于接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态;
提取单元,用于提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则。
可选地,所述装置还包括:
第一确定单元,用于在提取并保存所述目的端口号、目的IP地址之前,确定所述待转发报文的协议类型为传输控制协议TCP;
第二确定单元,用于确定所述报文状态信息表示TCP连接建立。
较佳地,所述第二确定单元,具体用于确定所述待转发报文中的TCP ACK标记等于1。
可选地,所述装置还包括:
第二接收单元,用于接收所述转发报文的响应报文;
匹配单元,用于将所述响应报文中的源端口号、源IP地址分别与保存的该响应报文对应的待转发报文的目的端口号、目的IP地址进行匹配;
返程连接建立单元,用于如果匹配结果是一致,则返程连接建立成功,并转发所述响应报文。
可选地,所述装置还包括:
删除单元,用于当确定所述报文状态信息表示TCP连接释放时,将所述匹配规则在预设时间段后删除。
较佳地,所述删除单元,具体用于当确定所述待转发报文中的TCP FIN标记等于1时,将所述匹配规则在预设时间段后删除。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的云计算状态防火墙的实现方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的云计算状态防火墙的实现方法中的步骤。
本发明的有益效果包括:
本发明实施例提供的云计算状态防火墙的实现方法及装置,云计算OpenFlow交换机接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态,提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则,从而报文转发过程中的端口号与IP地址可以根据匹配规则进行自动匹配,报文在转发过程中不必再手动配置端口号与IP地址,实现了云计算环境中状态防火墙,增强了报文转发的安全性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一提供的云计算状态防火墙的实现方法的实施流程示意图;
图2为本发明实施例一中,在云计算OpenFlow交换机中添加防火墙状态流表后的流表转发流程示意图;
图3为本发明实施例二提供的云计算状态防火墙的实现装置的结构示意图。
具体实施方式
本发明提供了一种云计算状态防火墙的实现方法及装置,用以解决现有的云计算环境中使用虚拟交换机的传统防火墙安全性低的问题。
本发明实施例提供的云计算状态防火墙的实现方法的实施原理是:云计算OpenFlow交换机接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态,提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则,从而报文转发过程中的端口号与IP地址可以根据匹配规则进行自动匹配,报文在转发过程中不必再手动配置端口号与IP地址,实现了云计算环境中状态防火墙,增强了报文转发的安全性。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
如图1所示,其为本发明实施例一提供的云计算状态防火墙的实现方法的实施流程示意图,可以包括以下步骤:
S11、接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态。
具体实施时,云计算OpenFlow交换机接收待转发报文,待转发报文中携带有目的端口号、目的IP地址和报文状态信息,报文状态信息表征所述待转发报文的源端与目的端之间的连接状态。
进一步地,确定所述待转发报文的协议类型为TCP;并确定所述报文状态信息表示TCP连接建立。
具体地,确定所述待转发报文中的TCP ACK标记等于1。
在TCP连接建立时,TCP ACK标记等于1表示已确认接收到报文数据,接收方成功接收到数据后,会回复一个ACK响应数据包,表示已经确认接收到ACK确认号前面的所有数据。
具体实施时,报文通过OpenFlow交换机中的各流表进行转发,可以在云计算开放流表OpenFlow交换机中添加一个防火墙状态流表,所述防火墙状态流表用于判断报文的状态,并进行相应的规则处理,如学习、下发反向流表等。具体地,将防火墙状态流表添加在三层路由流表和防火墙过滤流表之间。如图2所示,其为在云计算OpenFlow交换机中添加防火墙状态流表后的流表转发流程示意图,OpenFlow交换机中包含的流表有:流表10-识别网络、租户分类流表,流表20-安全组流表,流表30-二层转发流表,流表40-三层路由流表,流表49-防火墙状态流表,流表50-防火墙过滤流表和流表60-节点转发流表。流表10用于识别网络、租户分类,流表20用于对报文进行安全过滤,流表30用于同一个节点的多个虚拟机之间的报文转发,流表40用于不同虚拟机之间的报文依靠IP地址转发,流表49用于做防火墙状态检查,判断报文的状态,并进行相应的规则处理,流表50用于对报文进行过滤,流表60用于不同节点间的报文转发。在云计算网络中,报文经过虚拟机后,按照流表10-流表20-流表30-流表40-流表49-流表50-流表60的顺序进行转发。
S12、提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则。
具体实施时,提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则。
进一步地,接收所述转发报文的响应报文;将所述响应报文中的源端口号、源IP地址分别与保存的该响应报文对应的待转发报文的目的端口号、目的IP地址进行匹配;如果匹配结果是一致,则返程连接建立成功,并转发所述响应报文。
进一步地,当确定所述报文状态信息表示TCP连接释放时,将所述匹配规则在预设时间段后删除。具体地,当确定所述待转发报文中的TCP FIN标记等于1时,将所述匹配规则在预设时间段后删除。其中,TCP FIN标记等于1表示TCP连接关闭,即TCP连接释放。
需要说明的是,预设时间段可以根据需要仔细设定,本发明实施例对此不作限定。
具体实施时,可以在所述防火墙状态流表中下发预设规则,预设规则至少包括:连接状态学习规则、断连状态学习规则和无状态连接默认规则。其中,所述连接状态学习规则用于学习正在连接中的报文,所述断连状态学习规则用于学习正在断连中的报文,所述无状态连接默认规则用于处理无连接状态的报文。
(1)连接状态学习规则具体为:
优先级等于所述防火墙过滤流表中初始规则的优先级,各匹配字段和所述防火墙过滤流表中初始规则的匹配字段相同,增加匹配字段TCP ACK标记等于1。
动作1为:学习(目标流表等于所述防火墙过滤流表,空闲超时等于M秒,优先级等于所述防火墙过滤流表中初始规则的优先级,网络协议IP等于TCP,TCP源端口号等于TCP目的端口号,源IP地址等于目的IP地址,发送至所述节点转发流表)。
动作2为:学习(目标流表等于所述防火墙状态流表,空闲超时等于M秒,优先级等于所述防火墙过滤流表中初始规则的优先级加1,IP等于TCP,TCP目的端口号等于所述防火墙过滤流表中初始规则中的TCP目的端口号,目的IP地址等于所述防火墙过滤流表中初始规则中的目的IP地址,发送至所述防火墙过滤流表)。
动作3为:发送报文至所述防火墙过滤流表。
其中,所述匹配字段至少包括匹配的网络协议类型、TCP源端口号、TCP目的端口号、源IP地址和目的IP地址;M为第一预设时长。
通过动作1学习到的规则“目标流表等于所述防火墙过滤流表,空闲超时等于M秒,优先级等于所述防火墙过滤流表中初始规则的优先级,网络协议IP等于TCP,TCP源端口号等于TCP目的端口号,源IP地址等于目的IP地址,发送至所述节点转发流表”为返程连接规则,也可以称为返程允许规则。
通过动过2学习到的规则“目标流表等于所述防火墙状态流表,空闲超时等于M秒,优先级等于所述防火墙过滤流表中初始规则的优先级加1,IP等于TCP,TCP目的端口号等于所述防火墙过滤流表中初始规则中的TCP目的端口号,目的IP地址等于所述防火墙过滤流表中初始规则中的目的IP地址,发送至所述防火墙过滤流表”为连接已学习规则,其作用为记录该防火墙返程连接规则已被学习和下发,在最近M秒内无需重新学习。
(2)所述断连状态学习规则具体为:
优先级等于所述防火墙过滤流表中初始规则的优先级加2,各匹配字段和所述防火墙过滤流表中初始规则的匹配字段相同,增加匹配字段TCP FIN等于1。
动作1为:学习(目标流表=防火墙过滤流表,强制超时等于N秒,优先级等于所述防火墙过滤流表中初始规则的优先级,IP等于TCP,TCP源端口号等于TCP目的端口号,源IP地址等于目的IP地址,发送至所述节点转发流表)。
动作2为:发送报文至所述防火墙过滤流表。
其中,N为第二预设时长。
(3)所述无状态连接默认规则,具体为:
匹配所有报文。
动作为:转发至所述防火墙过滤流表。
所述无状态连接默认规则又可以称为无需状态连接流量的默认转发规则,针对连接状态学习规则以及断连状态学习规则都没有处理到的报文在这里处理,主要因为本发明只处理带状态的TCP报文,对于我们不需要关心的UDP等无状态报文,我们直接让其匹配到该默认规则并转发到下个流表继续处理。之所以要下发本规则是因为:按照OpenFlow协议规范,如果没有本默认规则,报文可能会被直接丢弃。
需要说明的是,M和N的值可以根据实际情况自行设定,本发明实施例对此不作限定。
下面举一个实例对上述流表规则进行说明:
假设流表允许发至IP=123.0.0.1的ssh报文进行转发,匹配字段TCP目的端口号为端口22,其防火墙过滤流表即流表50的规则如下,记作流表规则A:
A:流表=50,优先级=100,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1。动作:发送至流表:60。
本发明实施例在下发这条流表规则A的同时,会在防火墙状态流表即流表49下发如下流表规则,记作流表规则B、C和D,B为断连状态学习规则,C为连接状态学习规则,D为无状态连接默认规则,规则内容具体如下:
B:流表=49,优先级=102,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,TCP FIN标记=1。动作:学习(目标流表=50,强制超时=10秒,优先级=100,IP=TCP,TCP源端口号=22,源IP地址=123.0.0.1,发送至流表:60),发送至流表:50。
C:流表=49,优先级=100,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,TCP ACK标记=1。动作:学习(目标流表=50,空闲超时=600秒,优先级=100,IP=TCP,TCP源端口号=22,源IP地址=123.0.0.1,发送至流表:60),学习(目标流表=49,空闲超时=600秒,优先级=101,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,发送至流表:50),发送至流表:50。
D:流表=49,优先级=0,匹配所有报文。动作:发送至流表:50。
具体实施时,将待转发报文与所述预设规则进行匹配,得到匹配结果,根据所述匹配结果对所述待转发报文进行相应处理,具体地,根据匹配到的规则对所述待转发报文进行所述规则中规定的转发处理。
具体地,当该ssh连接建立时,ssh报文将会先进入防火墙状态流表,即流表49,由于ssh是TCP连接,所以ssh报文中携带TCP ACK标记=1,流表49中优先级100的规则将会被匹配到规则C,其会转发报文至防火墙过滤流表,即流表50,并学习和下发2条新规则:一条是返程连接规则,记为E:流表=50,空闲超时=600秒,优先级=100,IP=TCP,TCP源端口号=22,源IP地址=123.0.0.1,发送至流表:60,下发至防火墙过滤流表。另一条是连接已学习规则,记为F:流表=49,空闲超时=600秒,优先级=101,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,发送至流表:50,下发至防火墙状态流表,且优先级高于规则C,但低于规则B,其实际作用为记录该防火墙返程连接规则已被学习和下发,在最近600秒之内无需重新学习。
进一步地,当ssh连接成功后,最终学习到的状态防火墙规则和防火墙规则如下:
流表49:
B:流表=49,优先级=102,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,TCP FIN标记=1。动作:学习(目标流表=50,强制超时=10秒,优先级=100,IP=TCP,TCP源端口号=22,源IP地址=123.0.0.1,发送至流表:60),发送至流表:50。
F:流表=49,空闲超时=600秒,优先级=101,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,发送至流表:50。
C:流表=49,优先级=100,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,TCP ACK标记=1。动作:学习(目标流表=50,空闲超时=600秒,优先级=100,IP=TCP,TCP源端口号=22,源IP地址=123.0.0.1,发送至流表:60),学习(目标流表=49,空闲超时=600秒,优先级=101,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1,发送至流表:50),发送至流表:50。
D:流表=49,优先级=0,匹配所有报文。动作:发送至流表:50。
流表50:
A:流表=50,优先级=100,IP=TCP,TCP目的端口号=22,目的IP地址=123.0.0.1。动作:发送至流表:60。
E:流表=50,空闲超时=600秒,优先级=100,IP=TCP,TCP源端口号=22,源IP地址=123.0.0.1,发送至流表:60。
具体实施时,当有新的ssh报文需要进行转发时,根据优先级的高低,ssh报文会在防火墙状态流表中先匹配到规则F,然后转发至防火墙过滤流表中的规则A进行防火墙放行。当有ssh返程报文需要进行转发时,会匹配到防火墙状态流表中的无状态连接默认规则D,并转发至防火墙过滤流表,匹配到规则E后进行防火墙放行。当连接中断时,TCP连接会发送TCP FIN标记,根据优先级的高低,规则B会被匹配到,在转发报文至防火墙过滤流表的同时,会修改返程连接规则E,把空闲超时=600秒的超时定时器修改为强制超时=10秒,超过10秒后该返程连接规则将自动删除,从而达到TCP断连后学习到的返程连接规则自动删除的目的,加强了安全性和数据收发的完整性,且无需人工操作。
需要说明的是,本发明中的示例只是实现状态防火墙最小配置,实际应用中可能根据场景不同增加其他匹配字段或动作,对此,本发明实施例不作限定。本发明实施例可以单独部署在云计算的网络节点上作为集中处理,也可以放在虚拟机所在的计算节点上作为分布式防火墙进行处理。并且,除了状态防火墙,本发明实施例中的上述方法同样可以适用于状态安全组中和其他类似提供状态策略的服务中,本发明实施例对此不作限定。
本发明实施例一提供的云计算状态防火墙的实现方法,通过在增加的防火墙状态流表中下发匹配字段TCP ACK标记=1,并把TCP目的端口赋值给TCP源端口,以及把目的IP赋值给源IP的方式来进行连接状态的自动学习。通过匹配TCP ACK标记而不用TCP SYN或TCP SYN+ACK标记来判断连接是由于通常TCP会开启TCP keepalive(保活)机制来保持TCP连接,这是通过客户端定时发送很多ACK标记报文来实现的,而带SYN和带SYN+ACK标记的报文只在建立连接时发送各1个,显然通过匹配ACK标记更有效和可靠,从而提高了云计算网络中报文转发的安全性,其中,TCP SYN为TCP报文中的"建立连接"标识,TCP SYN表示建立连接,TCP SYN+ACK为TCP报文中的"建立连接响应"标识,SYN和ACK这2个标识字段可能同时为1,它表示的就是建立连接之后服务端的响应。在防火墙状态流表中,通过在返程连接规则中将超时定时器修改为强制超时等于N秒的方法,来做规则的优雅删除(gracefuldelete),而不是立即强制删除,这是因为TCP关闭连接时,四次挥手中规定,在发送FIN消息后,如果有没发送完的数据,还会再发送一次。本超时时间的设置可以在等待最后一次发送数据后再进行返程连接的超时删除。并且通过在连接已学习规则中配置高优先级的方式,来防止“已连接”流量进行反复学习,提高了报文转发效率。通过在连接已学习规则中配置空闲超时的方式来进行自动老化,用来解决TCP挥手时,携带FIN标记的报文意外丢失,连接实际已被动中断、而本方案中的断连状态学习规则没能学习到的情况。通过在防火墙状态流表中下发匹配字段TCP FIN标记=1来进行主动连接中断状态学习。本发明实施例中,连接状态学习规则和断连状态学习规则中都是自动学习和下发的,控制器无需接收和处理OpenFlow虚拟交换机上的PACKET-IN消息,从而有效地减少了控制器的负担。其中,PACKET-IN消息为上报控制器报文消息,是OpenFlow协议中用来把报文上发至控制器的协议类型。需要说明的是,这里的自动学习也可以通过把报文以PACKET-IN的形式发送给控制器,由控制器来学习并下发上述连接状态学习规则。本申请在添加的防火墙状态流表中使用优先级为0的默认规则,即无状态连接默认规则,做无需状态连接流量的统一转发处理,节约了表项。
实施例二
基于同一发明构思,本发明实施例中还提供了一种云计算状态防火墙的实现装置,由于上述装置解决问题的原理与上述云计算状态防火墙的实现方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,其为本发明实施例二提供的云计算状态防火墙的实现装置的结构示意图,应用于云计算开放流表OpenFlow交换机中,所述装置可以包括:
第一接收单元21,用于接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态;
提取单元22,用于提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配规则。
可选地,所述装置还包括:
第一确定单元,用于在提取并保存所述目的端口号、目的IP地址之前,确定所述待转发报文的协议类型为传输控制协议TCP;
第二确定单元,用于确定所述报文状态信息表示TCP连接建立。
较佳地,所述第二确定单元,具体用于确定所述待转发报文中的TCP ACK标记等于1。
可选地,所述装置还包括:
第二接收单元,用于接收所述转发报文的响应报文;
匹配单元,用于将所述响应报文中的源端口号、源IP地址分别与保存的该响应报文对应的待转发报文的目的端口号、目的IP地址进行匹配;
返程连接建立单元,用于如果匹配结果是一致,则返程连接建立成功,并转发所述响应报文。
可选地,所述装置还包括:
删除单元,用于当确定所述报文状态信息表示TCP连接释放时,将所述匹配规则在预设时间段后删除。
较佳地,所述删除单元,具体用于当确定所述待转发报文中的TCP FIN标记等于1时,将所述匹配规则在预设时间段后删除。
实施例三
本发明实施例三提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例一所述的云计算状态防火墙的实现方法。
实施例四
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例一所述的云计算状态防火墙的实现方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种云计算状态防火墙的实现方法,其特征在于,应用于云计算开放流表OpenFlow交换机中,所述方法包括:
接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态;
提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配对象;
接收所述转发报文的响应报文;
将所述响应报文中的源端口号、源IP地址分别与保存的该响应报文对应的待转发报文的目的端口号、目的IP地址进行匹配;
如果匹配结果是一致,则返程连接建立成功,并转发所述响应报文。
2.如权利要求1所述的方法,其特征在于,在提取并保存所述目的端口号、目的IP地址之前,还包括:
确定所述待转发报文的协议类型为传输控制协议TCP;
确定所述报文状态信息表示TCP连接建立。
3.如权利要求2所述的方法,其特征在于,确定所述报文状态信息表示TCP连接建立,具体包括:
确定所述待转发报文中的TCP ACK标记等于1。
4.如权利要求2所述的方法,其特征在于,还包括:
当确定所述报文状态信息表示TCP连接释放时,将所述匹配对象在预设时间段后删除。
5.如权利要求4所述的方法,其特征在于,当确定所述报文状态信息表示TCP连接释放时,将所述匹配对象在预设时间段后删除,具体包括:
当确定所述待转发报文中的TCP FIN标记等于1时,将所述匹配对象在预设时间段后删除。
6.一种云计算状态防火墙的实现装置,其特征在于,应用于云计算开放流表OpenFlow交换机中,所述装置包括:
第一接收单元,用于接收待转发报文,其中,所述待转发报文中携带有目的端口号、目的IP地址和报文状态信息,所述报文状态信息表征所述待转发报文的源端与目的端之间的连接状态;
提取单元,用于提取并保存所述目的端口号、目的IP地址,所述目的端口号、目的IP地址用于作为针对该待转发报文的响应报文返程转发的匹配对象;
第二接收单元,用于接收所述转发报文的响应报文;
匹配单元,用于将所述响应报文中的源端口号、源IP地址分别与保存的该响应报文对应的待转发报文的目的端口号、目的IP地址进行匹配;
返程连接建立单元,用于如果匹配结果是一致,则返程连接建立成功,并转发所述响应报文。
7.如权利要求6所述的装置,其特征在于,还包括:
第一确定单元,用于在提取并保存所述目的端口号、目的IP地址之前,确定所述待转发报文的协议类型为传输控制协议TCP;
第二确定单元,用于确定所述报文状态信息表示TCP连接建立。
8.如权利要求7所述的装置,其特征在于,
所述第二确定单元,具体用于确定所述待转发报文中的TCP ACK标记等于1。
9.如权利要求7所述的装置,其特征在于,还包括:
删除单元,用于当确定所述报文状态信息表示TCP连接释放时,将所述匹配对象在预设时间段后删除。
10.如权利要求9所述的装置,其特征在于,
所述删除单元,具体用于当确定所述待转发报文中的TCP FIN标记等于1时,将所述匹配对象在预设时间段后删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711490183.XA CN109995725B (zh) | 2017-12-29 | 2017-12-29 | 一种云计算状态防火墙的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711490183.XA CN109995725B (zh) | 2017-12-29 | 2017-12-29 | 一种云计算状态防火墙的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109995725A CN109995725A (zh) | 2019-07-09 |
CN109995725B true CN109995725B (zh) | 2021-08-06 |
Family
ID=67111496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711490183.XA Active CN109995725B (zh) | 2017-12-29 | 2017-12-29 | 一种云计算状态防火墙的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995725B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491822A (zh) * | 2020-11-13 | 2021-03-12 | 中盈优创资讯科技有限公司 | 一种安全策略自动下发的方法及装置 |
CN112486037B (zh) * | 2020-12-09 | 2023-08-18 | 友道科技有限公司 | Cbtc仿真系统中列车和区域控制器的通信匹配方法、系统 |
CN113873041B (zh) * | 2021-09-30 | 2024-03-01 | 迈普通信技术股份有限公司 | 报文传输方法、装置、网络设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780088A (zh) * | 2015-03-19 | 2015-07-15 | 杭州华三通信技术有限公司 | 一种业务报文的传输方法和设备 |
CN105338003A (zh) * | 2015-12-09 | 2016-02-17 | 中国电子科技集团公司第二十八研究所 | 一种应用于软件定义网络的防火墙实现方法 |
CN105681305A (zh) * | 2016-01-15 | 2016-06-15 | 北京工业大学 | 一种sdn防火墙系统及实现方法 |
CN106105098A (zh) * | 2014-09-25 | 2016-11-09 | 华为技术有限公司 | 交换机及业务请求报文的处理方法 |
CN106230640A (zh) * | 2016-08-30 | 2016-12-14 | 浙江宇视科技有限公司 | 一种安全规则端口配置方法和设备 |
WO2017142862A1 (en) * | 2016-02-18 | 2017-08-24 | Idac Holdings, Inc. | Open flow functionality in a software-defined network |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253035B2 (en) * | 2013-02-21 | 2016-02-02 | International Business Machines Corporation | Reducing switch state size in flow-based networks |
-
2017
- 2017-12-29 CN CN201711490183.XA patent/CN109995725B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106105098A (zh) * | 2014-09-25 | 2016-11-09 | 华为技术有限公司 | 交换机及业务请求报文的处理方法 |
CN104780088A (zh) * | 2015-03-19 | 2015-07-15 | 杭州华三通信技术有限公司 | 一种业务报文的传输方法和设备 |
CN105338003A (zh) * | 2015-12-09 | 2016-02-17 | 中国电子科技集团公司第二十八研究所 | 一种应用于软件定义网络的防火墙实现方法 |
CN105681305A (zh) * | 2016-01-15 | 2016-06-15 | 北京工业大学 | 一种sdn防火墙系统及实现方法 |
WO2017142862A1 (en) * | 2016-02-18 | 2017-08-24 | Idac Holdings, Inc. | Open flow functionality in a software-defined network |
CN106230640A (zh) * | 2016-08-30 | 2016-12-14 | 浙江宇视科技有限公司 | 一种安全规则端口配置方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109995725A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7004405B2 (ja) | 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法 | |
US9762485B2 (en) | Network packet flow controller with extended session management | |
US9491189B2 (en) | Revival and redirection of blocked connections for intention inspection in computer networks | |
TWI583151B (zh) | 實施及管理虛擬網路的系統與方法 | |
CN104205051B (zh) | 用于虚拟机的移动处理的方法和装置 | |
US7480707B2 (en) | Network communications management system and method | |
EP2991292B1 (en) | Network collaborative defense method, device and system | |
EP3136654A1 (en) | Systems and methods for externalizing network functions via packet trunking | |
CN109995725B (zh) | 一种云计算状态防火墙的实现方法及装置 | |
FI119303B (fi) | Liitettävyys tilatietoisten palomuurien välillä | |
CN103051605B (zh) | 一种数据包处理方法、装置和系统 | |
US11329959B2 (en) | Virtual routing and forwarding (VRF)-aware socket | |
US7130266B2 (en) | Handling of data packets | |
CN110086798B (zh) | 一种基于公共虚拟接口进行通信的方法及装置 | |
WO2016177131A1 (zh) | 防止dos攻击方法、装置和系统 | |
WO2018001373A1 (zh) | 报文限速的方法及装置 | |
CN108810008B (zh) | 传输控制协议流量过滤方法、装置、服务器及存储介质 | |
CN109391523A (zh) | 用于监控网络中的网络成员之间的通信量的方法 | |
US20200314139A1 (en) | System and method for security service collaboration | |
WO2017131765A1 (en) | Verifying a service function chain | |
CN108512833A (zh) | 一种防范攻击方法及装置 | |
JP2017147516A (ja) | DDoS攻撃情報共有装置、動作方法及びプログラム | |
US9871765B2 (en) | DIAMETER firewall using reception IP address or peer identity | |
KR101457314B1 (ko) | 라우팅 방법 및 관련 라우팅 장치 및 목적지 장치 | |
TWI452870B (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 |