一种物理机的安全防护方法及网络节点设备转让专利

申请号 : CN202110279808.8

文献号 : CN115150106B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张燕咏张致江刘年超

申请人 : 中国科学技术大学

摘要 :

本发明公开了一种物理机的安全防护方法及网络节点设备,网络节点设备上运行着虚拟交换机,虚拟交换机实现物理机安全组功能和虚拟网关功能,物理机的安全组功能通过由一系列Openflow流表组成的逻辑交换机实现,对入口的所有原始数据包依次进行链路层安全检查、网络层安全检查、邻居发现包检查、防火墙检查和负载均衡功能检查,对通过检查的数据包发送至全局状态记录器进行数据包状态记录,并筛选出满足预设放行规则的数据包作为第一目标数据包。本发明中每台物理机按需下发安全相关流表接口即可实现安全组功能,计算资源占用少,流表是分布在所有的计算节点设备上,使得物理机的安全防护更灵活,流表通过下载到现有网卡可降低硬件成本。

权利要求 :

1.一种物理机的安全防护方法,其特征在于,应用于与物理机连接的网络节点设备,所述网络节点设备上运行着虚拟交换机,所述虚拟交换机用于实现物理机安全组功能和虚拟网关功能,所述物理机安全组功能通过逻辑交换机实现,所述逻辑交换机由一系列Openflow流表组成,所述安全防护方法包括:对入口所有的原始数据包进行链路层安全检查,筛选出通过所述链路层安全检查的原始数据包,记为第一数据包,其中,所述链路层安全检查的内容包括:原始数据包是否为虚拟局域网包或者多播包,以及启用端口安全的端口的MAC地址和运管平台上设定的MAC地址是否匹配;

对所有的所述第一数据包进行网络层安全检查,筛选出通过所述网络层安全检查的第一数据包,其余的记为第二数据包,网络层安全检查的内容包括:端口在云平台上配置的IP地址与进入的所述第一数据包的IP地址是否一致;

从所有的所述第二数据包中,筛选出不为邻居发现包的第二数据包,记为第三数据包;

根据云平台预先设置的第一筛选规则,从所有的所述第三数据包中,确定需要进入防火墙的第三数据包,记为第四数据包,并对每个所述第四数据包进行标记;

从所有的所述第四数据包和所有不需要进入防火墙的所述第三数据包中,将执行负载均衡功能的数据包进行标记得到第五数据包,以及将不执行负载均衡功能的数据包也进行标记得到第六数据包;

将所有的所述第五数据包和所有的所述第六数据包发送至一个全局状态记录器进行数据包状态记录,记录完成后得到第七数据包;

从所有的所述第七数据包中筛选出满足预设放行规则的第七数据包作为第一目标数据包。

2.根据权利要求1所述的安全防护方法,其特征在于,在所述从所有的所述第七数据包中筛选出满足预设放行规则的第七数据包作为第一目标数据包之后,还包括:对所有的所述第一目标数据包,将经过排队发送的所述第一目标数据包确定为第八数据包,将未经过排队发送的数据包进行标记,并确定为第九数据包;

对所有的所述第八数据包和所有的所述第九数据包均执行负载均衡功能得到第十数据包;

将所有的所述第十数据包提交到一个全局状态记录器中,得到第十一数据包;

对所有的所述第十一数据包中,将作为邻居请求包的所述第十一数据包确定为第十二数据包,并丢弃作为邻居请求包的第十一数据包,将作为非邻居请求包的所述第十一数据包进行放行,得到第十三数据包;

将所有的所述第十二数据包和所有的所述第十三数据包中,对DHCP请求数据包的数据包生成DHCP回复包数据包,对非DHCP请求数据包的数据包放行,得到第十四数据包;

将所有的所述DHCP回复包数据包和所有的所述第十四数据包中,对DNS请求包的数据包进行处理得到第十五数据包,对非dns请求包的数据包确定为第十六数据包;

基于每个所述第十五数据包的MAC地址和每个所述第十六数据包的MAC地址,查找在逻辑交换机中的出口地址,将查找到所述出口地址的数据包确定为入口数据包。

3.根据权利要求2所述的安全防护方法,其特征在于,在查找到所述入口数据包之后,还包括:根据云平台预先设置的第二筛选规则,从所有的所述入口数据包中筛选出需要执行负载均衡功能的所述入口数据包并添加标记,记为第十七数据包,对无需执行负载均衡功能的所述入口数据包进行放行,并记为第十八数据包;

对所有的所述第十七数据包执行负载均衡功能,得到第十九数据包;

从所有的所述第十九数据包和所有的所述第十八数据包中,将至少与云平台中的一个规则匹配的数据包添加全局状态记录,并记录为第二十数据包,将与云平台中的所有规则均不匹配的数据包记录为第二十一数据包;

对所有的所述第二十数据包和所有的所述第二十一数据包中,需要进行负载均衡功能的数据包执行负载均衡功能,得到第二十二数据包;

从所有的所述第二十二数据包中筛选出与云平台配置的至少一个安全组规则匹配的数据包进行放行,并记录为第二目标数据包。

4.根据权利要求3所述的安全防护方法,其特征在于,在所述从所有的所述第二十二数据包中筛选出与云平台配置的至少一个安全组规则匹配的数据包进行放行,并记录为第二目标数据包之后,还包括:针对所有的所述第二目标数据包,分别对需要执行负载均衡功能的数据包执行负载均衡功能,以及对无需执行负载均衡功能的数据包直接放行,得到与所述第二目标数据包对应的第二十三数据包;

针对所有的所述第二十三数据包,分别对添加全局状态记录的第二十三数据包发送至全局状态记录器,以及并对未添加全局状态记录的第二十三数据包直接放行,得到与所述第二十三数据包对应的第二十四数据包;

对所有的所述第二十四数据包进行网络层安全检查,对通过所述网络层安全检查的第二十四数据包确定为第二十五数据包;

对所有的所述第二十五数据包进行链路层安全检查,对通过所述链路层安全检查的第二十五数据包记录为第二十六数据包;

为每个所述第二十六数据包添加上标签,并从对应的虚拟机口发送出去。

5.一种网络节点设备,其特征在于,所述网络节点设备与物理机连接,所述网络节点设备上运行着虚拟交换机,所述虚拟交换机用于实现物理机安全组功能和虚拟网关功能,所述物理机安全组功能通过逻辑交换机实现,所述逻辑交换机由一系列Openflow流表组成;

所述网络节点设备包括:存储器和处理器;

所述处理器用于加载并执行所述存储器中存储的程序时,具体用于加载并执行如权利要求1~4任意一项所述的物理机的安全防护方法。

说明书 :

一种物理机的安全防护方法及网络节点设备

技术领域

[0001] 本发明涉及物理机技术领域,更具体的说,涉及一种物理机的安全防护方法及网络节点设备。

背景技术

[0002] 物理机是相对于虚拟机而言对实体计算机的称呼,物理机提供给虚拟机以硬件环境,有时也成为“寄主”或“宿主”。目前市场上针对物理机的安全防护主要有如下几种方法:
[0003] 第一种方案,运用硬件安全产品对物理机进行安全防护。该种实现方式主要是将流量引入到网关,网关当中包含安全模块,安全模块对外提供用户接口,用户利用提供的用户接口将特定的数据包操作规则下发到安全模块,安全模块基于这些下发的数据包操作规则对进入或者出去物理机的数据包进行过滤。
[0004] 第二种方案,运用安全软件对物理机进行安全防护。安全软件通常是运行在x86平台,从开源平台或者安全厂商处获取。当需要对物理机进行安全防护时,通常会创建一台虚拟机,在虚拟机中部署安全软件,将所有通往物理机的流量首先导入到部署有安全软件的虚机,经过部署有安全软件的虚机处理之后,再将流量转发到虚拟机。
[0005] 虽然上述两种方案都可以对物理机进行安全防护,但是各自都有其优缺点。针对第一种方案,优点是安全模块集成在网关中,因此可以方便集成到环境中,缺点是具有硬件的安全网关需要由专业的安全设备厂商或者通信设备厂商提供,价格昂贵且硬件安全网关的物理位置固定不灵活;针对第二种方案,优点是提供的安全特性比较多,且能不断更新升级来获取一些新安全特性,缺点是部署时需要专门的虚拟机进行部署,占用了计算节点设备的资源,且在处理压力比较大时,容易占用同计算节点设备中其余虚拟机的资源。
[0006] 综上,亟需提供一种物理机的安全防护方法,解决上述问题成为了本领域技术人员亟需解决的技术问题。

发明内容

[0007] 有鉴于此,本发明公开一种物理机的安全防护方法及网络节点设备,以解决硬件安全网关价格昂贵、位置固定不灵活以及软件方案过度占用计算节点设备资源的问题。
[0008] 一种物理机的安全防护方法,应用于与物理机连接的网络节点设备,所述网络节点设备上运行着虚拟交换机,所述虚拟交换机用于实现物理机安全组功能和虚拟网关功能,所述物理机安全组功能通过逻辑交换机实现,所述逻辑交换机由一系列Openflow流表组成,所述安全防护方法包括:
[0009] 对入口所有的原始数据包进行链路层安全检查,筛选出通过所述链路层安全检查的原始数据包,记为第一数据包,其中,所述链路层安全检查的内容包括:原始数据包是否为虚拟局域网包或者多播包,以及启用端口安全的端口的MAC地址和运管平台上设定的MAC地址是否匹配;
[0010] 对所有的所述第一数据包进行网络层安全检查,筛选出通过所述网络层安全检查的第一数据包,记为第二数据包,网络层安全检查的内容包括:端口在云平台上配置的IP地址与进入的所述第一数据包的IP地址是否一致;
[0011] 从所有的所述第二数据包中,筛选出不为邻居发现包的第二数据包,记为第三数据包;
[0012] 根据云平台预先设置的第一筛选规则,从所有的所述第三数据包中,确定需要进入防火墙的第三数据包,记为第四数据包,并对每个所述第四数据包进行标记;
[0013] 从所有的所述第四数据包和所有不需要进入防火墙的所述第三数据包中,将执行负载均衡功能的数据包进行标记得到第五数据包,以及将不执行负载均衡功能的数据包也进行标记得到第六数据包;
[0014] 将所有的所述第五数据包和所有的所述第六数据包发送至一个全局状态记录器进行数据包状态记录,记录完成后得到第七数据包;
[0015] 从所有的所述第七数据包中筛选出满足预设放行规则的第七数据包作为第一目标数据包。
[0016] 可选的,在所述从所有的所述第七数据包中筛选出满足预设放行规则的第七数据包作为第一目标数据包之后,还包括:
[0017] 对所有的所述第一目标数据包,将经过排队发送的所述第一目标数据包确定为第八数据包,将未经过排队发送的数据包进行标记,并确定为第九数据包;
[0018] 对所有的所述第八数据包和所有的所述第九数据包均执行负载均衡功能得到第十数据包;
[0019] 将所有的所述第十数据包提交到一个全局状态记录器中,得到第十一数据包;
[0020] 对所有的所述第十一数据包中,将作为邻居请求包的所述第十一数据包确定为第十二数据包,并丢弃作为邻居请求包的第十一数据包,将作为非邻居请求包的所述第十一数据包进行放行,得到第十三数据包;
[0021] 将所有的所述第十二数据包和所有的所述第十三数据包中,对DHCP请求数据包的数据包生成DHCP回复包数据包,对非DHCP请求数据包的数据包放行,得到第十四数据包;
[0022] 将所有的所述DHCP回复包数据包和所有的所述第十四数据包中,对DNS请求包的数据包进行处理得到第十五数据包,对非dns请求包的数据包确定为第十六数据包;
[0023] 基于每个所述第十五数据包的MAC地址和每个所述第十六数据包的MAC地址,查找在逻辑交换机中的出口地址,将查找到所述出口地址的数据包确定为入口数据包。
[0024] 可选的,在查找到所述入口数据包之后,还包括:
[0025] 根据云平台预先设置的第二筛选规则,从所有的所述入口数据包中筛选出需要执行负载均衡功能的所述入口数据包并添加标记,记为第十七数据包,对无需执行负载均衡功能的所述入口数据包进行放行,并记为第十八数据包;
[0026] 对所有的所述第十七数据包执行负载均衡功能,得到第十九数据包;
[0027] 从所有的所述第十九数据包和所有的所述第十八数据包中,将至少与云平台中的一个规则匹配的数据包添加全局状态记录,并记录为第二十数据包,将与云平台中的所有规则均不匹配的数据包记录为第二十一数据包;
[0028] 对所有的所述第二十数据包和所有的所述第二十一数据包中,需要进行负载均衡功能的数据包执行负载均衡功能,得到第二十二数据包;
[0029] 从所有的所述第二十二数据包中筛选出与云平台配置的至少一个安全组规则匹配的数据包进行放行,并记录为第二目标数据包。
[0030] 可选的,在所述从所有的所述第二十二数据包中筛选出与云平台配置的至少一个安全组规则匹配的数据包进行放行,并记录为第二目标数据包之后,还包括:
[0031] 针对所有的所述第二目标数据包,分别对需要执行负载均衡功能的数据包执行负载均衡功能,以及对无需执行负载均衡功能的数据包直接放行,得到与所述第二目标数据包对应的第二十三数据包;
[0032] 针对所有的所述第二十三数据包,分别对添加全局状态记录的第二十三数据包发送至全局状态记录器,以及并对未添加全局状态记录的第二十三数据包直接放行,得到与所述第二十三数据包对应的第二十四数据包;
[0033] 对所有的所述第二十四数据包进行网络层安全检查,对通过所述网络层安全检查的第二十四数据包确定为第二十五数据包;
[0034] 对所有的所述第二十五数据包进行链路层安全检查,对通过所述链路层安全检查的第二十五数据包记录为第二十六数据包;
[0035] 为每个所述第二十六数据包添加上标签,并从对应的虚拟机口发送出去。
[0036] 一种网络节点设备,所述网络节点设备与物理机连接,所述网络节点设备上运行着虚拟交换机,所述虚拟交换机用于实现物理机安全组功能和虚拟网关功能,所述物理机安全组功能通过逻辑交换机实现,所述逻辑交换机由一系列Openflow流表组成;
[0037] 所述网络节点设备包括:存储器和处理器;
[0038] 所述处理器用于加载并执行所述存储器中存储的程序时,具体用于加载并执行上述所述的物理机的安全防护方法。
[0039] 从上述的技术方案可知,本发明公开了一种物理机的安全防护方法及网络节点设备,安全防护方法应用于与物理机连接的网络节点设备,网络节点设备上运行着虚拟交换机,该虚拟交换机可以实现物理机安全组功能和虚拟网关功能,物理机的安全组功能通过由一系列Openflow流表组成的逻辑交换机实现,对入口的所有原始数据包依次进行链路层安全检查、网络层安全检查、邻居发现包检查、防火墙检查和负载均衡功能检查,对通过这些检查的数据包发送至一个全局状态记录器进行数据包状态记录,并进一步筛选出满足预设放行规则的数据包作为第一目标数据包。本发明通过对需要进入防火墙的数据包进行标记,并在全局状态记录器中对数据包状态进行记录,实现了在现有流表的条件上增加一个匹配硬件地址的过程,从而可以针对来源与物理机的数据包进行特定处理。另外,本发明利用OpenFlow流表实现物理机安全组功能,每台物理机只需要按需下发安全相关的流表,就可以实现需要的安全组功能,减少计算资源的占用并且能够达到物理机安全组的效果;由于流表是分布在所有的计算节点设备上,因此无论物理机处于什么位置,都可以通过控制器将与之相关的流表调度到物理机所能使用的节点上,使得物理机的安全防护更加灵活,对于OpenvSwitch的流表,可以下载到现有的网卡上,相对于现有硬件安全网关价格而言,大大降低了硬件成本。

附图说明

[0040] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
[0041] 图1为本发明实施例公开的一种物理机、计算节点设备以及网络节点设备混合部署的系统架构图;
[0042] 图2为本发明实施例公开的一种物理机到虚机的代答原理图;
[0043] 图3为本发明实施例公开的一种物理机安全组功能原理图;
[0044] 图4为本发明实施例公开的一种物理机、计算节点设备和交换机混合部署的系统架构图;
[0045] 图5为本发明实施例公开的一种物理机的安全防护方法流程图;
[0046] 图6为本发明实施例公开的另一种物理机的安全防护方法流程图;
[0047] 图7为本发明实施例公开的另一种物理机的安全防护方法流程图;
[0048] 图8为本发明实施例公开的另一种物理机的安全防护方法流程图。

具体实施方式

[0049] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050] 本发明实施例公开了一种物理机的安全防护方法及网络节点设备,针对现有硬件安全网关价格昂贵、位置固定不灵活以及软件方案过度占用计算节点资源的情况,本发明利用OpenFlow流表实现了基于OpenFlow流表的物理机安全组功能;利用OpenFlow流表实现物理机安全组功能,每台物理机只需要按需下发安全相关的流表,就可以实现需要的安全组功能,减少计算资源的占用并且能够达到物理机安全组的效果;本发明的另外一个特点是灵活,由于流表是分布在所有的计算节点设备上,因此无论物理机处于什么位置,都可以通过控制器将与之相关的流表调度到物理机所能使用的节点上,然后达到保护物理机流量的效果;本发明另一个优点是能够利用现有的硬件方案进行加速,对于OpenvSwitch的流表,目前已经有很多网卡支持将OpenvSwitch的流表下载到网卡上,对于数据包直接在网卡上进行基于下载的流表进行转发,因此,本发明能够释放主机的计算能力并且提高包的转发速率。
[0051] 为实现物理机的安全防护,本发明针对物理机设计了安全组功能,相比于传统虚拟机的安全组,由于物理机不直接与OVS(虚拟交换机)交互,因此,物理机的安全组规则不能沿用传统虚拟机的流程。当用户需要对物理机使用云安全组的功能时,用户需要在云管平台界面上找到需要绑定安全组的物理机,之后对该物理机绑定安全组。绑定安全组时会触发网络组件在数据库当中创建一个安全组,当SDN控制器检测到安全组被创建,便会读取安全组的规则并将其下发到OVS中运行。
[0052] 参见图1,本发明实施例公开的一种物理机、计算节点设备以及网络节点设备混合部署的系统架构图,物理机通过内网连接到网络节点设备,网络节点设备上运行着虚拟交换机(OVS),在虚拟交换机里面实现了物理机安全组功能以及物理机的虚拟网关功能。物理机发送的流量首先经过物理机安全组,最终到达物理机的虚拟网关,虚拟网关根据目的地址将流量转发到公网。物理机和计算节点设备的虚机(vm1、vm2和vm3)是通过内网进行通信,整个通信过程是:物理机向整个虚机所在网段发送ARP(Address Resolution Protocol,地址解析协议)广播包,当目的虚机收到ARP广播包则回复物理机自身的MAC地址(Media Access Control Address);物理机收到ARP回复包后,记录目的IP对应的MAC地址;物理机用目的IP所对应的MAC地址发送数据包;虚拟交换机将数据包发送到虚机所在的物理节点;数据包进入虚机所在的OVS中进行转发,数据包在OVS中匹配到物理机安全组相关规则;匹配完物理机安全组相关规则,数据包最终发送至目的虚机。
[0053] 针对物理机到虚机的代答功能设计如下:
[0054] 参见图2所示的物理机到虚机的代答原理图,计算节点设备1中的虚拟包括:vm1、vm2和vm3,计算节点设备2中的虚机包括:vm4、vm5和vm6,当物理机需要将流量发往虚机vm4时,物理机需要知道虚机vm4的位置。由于在现有的虚拟机网络中,当流量从任何一个计算节点设备进去,即使虚机不在该节点,仍然会通过隧道将流量发送到虚机的目的节点,但是这样会存在一个问题,当物理机去请求虚机vm4所在的节点时,计算节点设备1也会回复物理机虚机的物理地址,这就造成了一个问题,由于交换机是根据MAC地址进行转发的,因此当多个计算节点设备均回复同一个虚机的MAC地址时,会导致物理机无法知晓虚机的具体位置,最终导致网络时通时不通。为解决这一问题,本发明设计了物理机到虚机的ARP代答功能,该功能会在每一个节点生成ARP代答规则,相比于虚机在每一个节点生成同网段内所有虚机的ARP代答规则,物理机代答功能只会生成该节点存在的虚机规则并且对于不匹配的ARP广播包全部丢弃,从而可以保证物理机发送一个ARP广播包,有且仅有一个节点会回复该ARP包。这样的设计能够保证物理机发送一个ARP广播包就能准确的知道虚拟机所在的位置。
[0055] 针对物理机安全组功能设计,具体如下:
[0056] 参见图3,本发明实施例公开的一种物理机安全组功能原理图,物理机安全组主要通过存在于网络节点设备的安全组流表,对物理机走向公网的流量进行保护,物理机安全组的功能主要通过逻辑交换机实现,本实施例中的逻辑交换机为虚拟功能模块,由一系列Openflow流表组成,数据包进入逻辑交换机进行一系列的步骤处理,最终输出处理结果至目的机器。
[0057] OpenvSwitch是一种开源的软件交换机,可以提供众多的动作,能够实现对数据包进行拆包和解包。OpenvSwitch的出现对于网络功能的实现提供了一种新的思路,数据中心中众多的虚拟机数据包转发行为可以借助OpenvSwitch来实现。由于这些转发行为是OpenvSwitch交换机通过一个一个的流表来定义的,而这些流表可以动态的通过控制器下发,因此基于OpenvSwitch来控制数据包转发行为十分灵活。
[0058] 流表是OpenvSwitch实现网络行为的基本构成,一条流表一般包括匹配字段以及action(动作)。匹配字段就是寻找指定的数据包,例如匹配字段包含以太网源地址eth_src(数据包来自于哪个物理地址),以太网目的地址eth_dst(数据包要达到哪个物理地址),传输控制协议tcp(表示需要匹配一个tcp数据包),目的端口dst_port(tcp数据包的目的port是多少)。action用于对数据包进行操作,例如drop表示丢弃数据包,resubmit(table)表示将数据包提交到一张表。OpenvSwitch所有的行为都是通过匹配字段和action完成的。
[0059] OVN(Open VirtualNetwork)是OVS社区提出的一个轻量级的SDN(软件定义的网络)控制器,它是一种分布式控制器,位于每一个计算节点设备上面。当OVN启动时,会从南向数据库当中拉取OVN相关的逻辑模型,然后将模型翻译成物理模型下发到OpenvSwitch机器。
[0060] 参见图4,本发明实施例公开的一种物理机、计算节点设备和交换机混合部署的系统架构图,Baremetal1和Baremetal2分别表示物理机节点,交换机为物理交换机,vm1,vm2,vm3位于同一个物理机上面的三台虚机;vm4,vm5vm6,表示位于另一个物理节点上面的三台节点。
[0061] 本发明基于Openflow流表实现物理机安全组,以对物理机进行安全防护。
[0062] 参见图5,本发明实施例公开的一种物理机的安全防护方法流程图,该方法应用于与物理机连接的网络节点设备,所述网络节点设备上运行着虚拟交换机,所述虚拟交换机用于实现物理机安全组功能和虚拟网关功能,所述物理机安全组功能通过逻辑交换机实现,所述逻辑交换机由一系列Openflow流表组成,该方法包括步骤:
[0063] 步骤S101、对入口所有的原始数据包进行链路层安全检查,筛选出通过所述链路层安全检查的原始数据包,记为第一数据包;
[0064] 其中,链路层安全检查的内容包括:原始数据包是否为VLAN(Virtual LocalArea Network,虚拟局域网)包或者多播包,以及启用端口安全的端口的MAC地址和运管平台上设定的MAC地址是否匹配。
[0065] 原始数据包为需要经过逻辑交换机入口的数据包。
[0066] 本实施例中,为实现对物理机的安全防护,在原始数据包进入物理机之前,逻辑交换机首先对原始物理包进行链路层安全检查,链路层安全检查主要判断数据包是否是VLAN包或者多播包,如果符合上述条件,则丢该弃原始数据包。同时,逻辑交换机也会对一些已经启用端口安全的端口(port),检查端口的MAC地址(Media Access ControlAddress)和云管平台上设定的MAC地址是否匹配,如果否,则丢掉原始数据包,经过上述链路层安全检查,所有原始数据包中筛选出未被丢弃的原始数据包,记为第一数据包。
[0067] 步骤S102、对所有的所述第一数据包进行网络层安全检查,筛选出通过所述网络层安全检查的第一数据包,其余的记为第二数据包;
[0068] 其中,网络层安全检查的内容包括:端口port在云平台上配置的IP地址与进入的第一数据包的IP地址是否一致。
[0069] 具体的,判断每个第一数据包的IP地址与端口在云平台上配置的IP地址是否一致,如果否,则丢弃IP地址不一致的第一数据包;如果是,则放行第一数据包,并将放行的第一数据包记为第二数据包。
[0070] 步骤S103、从所有的所述第二数据包中,筛选出不为邻居发现包的第二数据包,记为第三数据包;
[0071] 校验每个第二数据包是否为邻居发现包,如果是,则丢弃为邻居发现包的第二数据包,如果否,则放行第二数据包,并将放行的第二数据包记为第三数据包。
[0072] 步骤S104、根据云平台预先设置的第一筛选规则,从所有的所述第三数据包中,确定需要进入防火墙的第三数据包,记为第四数据包,并对每个所述第四数据包进行标记;
[0073] 具体的,根据云平台预先设置的第一筛选规则,判断每个第三数据包是否需要进入防火墙,如果是,则放行需要进入防火墙的第三数据包,记为第四数据包,并对每个第四数据包采用第一标记内容进行标记;如果否,则不对第三数据包进行标记,仍然使用第三数据包。
[0074] 步骤S105、从所有的第四数据包和所有不需要进入防火墙的第三数据包中,将执行负载均衡功能的数据包进行标记得到第五数据包,以及将不执行负载均衡功能的数据包也进行标记得到第六数据包;
[0075] 其中,第五数据包中的标记内容以及第六数据包中的标记内容具体依据实际需要而定,本发明在此不做限定。
[0076] 步骤S106、将所有的所述第五数据包和所有的所述第六数据包发送至一个全局状态记录器进行数据包状态记录,记录完成后得到第七数据包;
[0077] 步骤S107、从所有的所述第七数据包中筛选出满足预设放行规则的第七数据包作为第一目标数据包。
[0078] 其中,预设放行规则由云平台预先设置,对于不满足预设放行规则的第七数据包则进行丢弃,例如,对IP地址等于第一IP地址的第七数据包则进行放行,对IP地址不等于第一IP地址的第七数据包则进行丢弃。
[0079] 本发明针对云物理机新修改的安全组流表,分别是步骤S104、步骤S105以及步骤S106。在虚机安全组中,步骤S104判断一个数据包是否需要送入防火墙,如果是则添加一个标记,如果不是则放行。由于系统中原来存在的流表只针对虚机,对于物理机并不适用。因此需要添加一条流表专门针对物理机。在步骤S104,当一个数据包是TCP(Transmission ControlProtocol,传输控制协议)数据包并且这个数据包是从虚机的口进入的,那么在全局变量中存一个标记位,该标记位表示要将数据包送入到一个全局状态记录器中。由于默认的流表只针对位于本节点的虚机,因此这种安全组不能作为云物理机的安全组使用,需要添加一个优先级更高的流表,本发明将步骤S104的流表添加一个额外的字段用来匹配数据包的硬件地址,通过对数据包来源的硬件地址进行限定,能够唯一表示这个数据包是从物理机进入的。添加了针对物理机的流表后,当物理机的数据包经过此流表时,此流表将会匹配到该数据包,并对该数据包打上一个标记,表示该数据包要进入防火墙中。对于普通的虚机,由于限定了数据包的MAC地址,因此来自虚机的数据包不能匹配到该条流表,而会匹配优先级比较低的正常的虚机流表。对于步骤S104流表和步骤S107流表也是同样的原理,在原来流表的条件上添加一个匹配硬件地址的过程;就可以只对来源于物理机的数据包进行特定的处理。
[0080] 综上可知,本发明公开了一种物理机的安全防护方法,应用于与物理机连接的网络节点设备,网络节点设备上运行着虚拟交换机,该虚拟交换机可以实现物理机安全组功能和虚拟网关功能,物理机的安全组功能通过由一系列Openflow流表组成的逻辑交换机实现,对入口的所有原始数据包依次进行链路层安全检查、网络层安全检查、邻居发现包检查、防火墙检查和负载均衡功能检查,对通过这些检查的数据包发送至一个全局状态记录器进行数据包状态记录,并进一步筛选出满足预设放行规则的数据包作为第一目标数据包。本发明通过对需要进入防火墙的数据包进行标记,并在全局状态记录器中对数据包状态进行记录,实现了在现有流表的条件上增加一个匹配硬件地址的过程,从而可以针对来源与物理机的数据包进行特定处理。另外,本发明利用OpenFlow流表实现物理机安全组功能,每台物理机只需要按需下发安全相关的流表,就可以实现需要的安全组功能,减少计算资源的占用并且能够达到物理机安全组的效果;由于流表是分布在所有的计算节点设备上,因此无论物理机处于什么位置,都可以通过控制器将与之相关的流表调度到物理机所能使用的节点上,使得物理机的安全防护更加灵活,对于OpenvSwitch的流表,可以下载到现有的网卡上,相对于现有硬件安全网关价格而言,大大降低了硬件成本。
[0081] 为进一步优化上述实施例,针对步骤S107得到的第一目标数据包,为提高物理机的安全防护功能,参见图6,本发明实施例公开的另一种物理机的安全防护方法流程图,在步骤S107之后,还可以包括:
[0082] 步骤S201、对所有的第一目标数据包,将经过排队发送的第一目标数据包确定为第八数据包,将未经过排队发送的数据包进行标记,并确定为第九数据包;
[0083] 第一目标数据包在本步骤执行流控,对于某些数据包的云平台上配置了数据包速度,本步骤则对第一目标数据包进行排队发送,将经过排队发送的第一目标数据包确定为第八数据包,将未经过排队发送的第一目标数据包进行标记,并确定为第九数据包。
[0084] 步骤S202、对所有的所述第八数据包和所有的所述第九数据包均执行负载均衡功能得到第十数据包;
[0085] 对所有的第八数据包和所有的第九数据包均执行负载均衡功能,经过负载均衡功能的数据包标记为第十数据包。
[0086] 步骤S203、将所有的所述第十数据包提交到一个全局状态记录器中,得到第十一数据包;
[0087] 步骤S204、对所有的所述第十一数据包中,将作为邻居请求包的所述第十一数据包确定为第十二数据包,并丢弃作为邻居请求包的第十一数据包,将作为非邻居请求包的所述第十一数据包进行放行,得到第十三数据包;
[0088] 具体的,依次判断每个第十一数据包是否是一个邻居请求包,如果是邻居请求包,则将作为邻居请求包的所述第十一数据包确定为第十二数据包,并丢弃作为邻居请求包的第十一数据包;如果是非邻居请求包,则放行作为非邻居请求包的所述第十一数据包,得到第十三数据包。
[0089] 步骤S205、将所有的所述第十二数据包和所有的所述第十三数据包中,对DHCP请求数据包的数据包生成DHCP回复包数据包,对非DHCP请求数据包的数据包放行,得到第十四数据包;
[0090] DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
[0091] 步骤S206、将所有的所述DHCP回复包数据包和所有的所述第十四数据包中,对DNS请求包的数据包进行处理得到第十五数据包,对非dns请求包的数据包确定为第十六数据包;
[0092] DNS(Domain Name System,域名系统)是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
[0093] 步骤S207、基于每个所述第十五数据包的MAC地址和每个所述第十六数据包的MAC地址,查找在逻辑交换机中的出口地址,将查找到所述出口地址的数据包确定为入口数据包。
[0094] 在实际应用中,对于没有查找到逻辑交换机中出口地址的第十五数据包和第十六数据包进行丢弃。
[0095] 需要说明的是,图5和图6所示的实施例示出了原始数据包首先经过逻辑交换机的入口处理过程,入口步骤处理完成之后得到入口数据包,入口数据包被提交到逻辑交换机的出口进行处理。逻辑交换机的出口处理过程和入口处理过程有同样的处理步骤。
[0096] 针对逻辑交换机针对入口数据包的出口处理过程,参见图7,本发明实施例公开的另一种物理机的安全防护方法流程图,该方法应用于与物理机连接的网络节点设备,所述网络节点设备上运行着虚拟交换机,所述虚拟交换机用于实现物理机安全组功能和虚拟网关功能,所述物理机安全组功能通过逻辑交换机实现,所述逻辑交换机由一系列Openflow流表组成,所述安全防护方法包括步骤:
[0097] 步骤S301、根据云平台预先设置的第二筛选规则,从所有的入口数据包中筛选出需要执行负载均衡功能的入口数据包并添加标记,记为第十七数据包,对无需执行负载均衡功能的入口数据包进行放行,并记为第十八数据包;
[0098] 从逻辑交换机入口进入的入口数据包到达本实施例进行出口处理,本步骤首先根据云平台预先设置的第二筛选规则,判断各个入口数据包是否需要执行负载均衡功能,对于需要执行负载均衡功能的每个入口数据包添加一个标记,并记为第十七数据包;对于不需要执行负载均衡功能的数据包进行放行,并记为第十八数据包。
[0099] 步骤S302、对所有的所述第十七数据包执行负载均衡功能,得到第十九数据包;
[0100] 步骤S303、从所有的所述第十九数据包和所有的所述第十八数据包中,将至少与云平台中的一个规则匹配的数据包添加全局状态记录,并记录为第二十数据包,将与云平台中的所有规则均不匹配的数据包记录为第二十一数据包;
[0101] 将所有的所述第十九数据包和所有的所述第十八数据包分别与云平台中的各个规则进行匹配,如果某一个第十九数据包和/或某一个第十八数据包与云平台中的至少一个规则匹配,则将与规则成功匹配的数据包添加一个表示数据包进行全局状态记录,并将与规则成功匹配的数据包记录为第二十数据包;对于与云平台中的各个规则均不匹配的数据包则记录为第二十一数据包。
[0102] 步骤S304、对所有的所述第二十数据包和所有的所述第二十一数据包中,需要进行负载均衡功能的数据包执行负载均衡功能,得到第二十二数据包;
[0103] 在步骤S301中已经确定了各个入口数据包是否需要执行负载均衡功能,并对需要执行负载均衡功能的入口数据包添加了标记,因此,本实施例中,各个第二十数据包或各个第二十一数据包进入该处理流程后,添加指示负载均衡功能的数据包执行负载均衡功能,未添加指示负载均衡功能的数据包不执行负载均衡功能,将处理完的数据包记录为第二十二数据包。
[0104] 步骤S305、从所有的所述第二十二数据包中筛选出与云平台配置的至少一个安全组规则匹配的数据包进行放行,并记录为第二目标数据包。
[0105] 其中,若某个第二十二数据包与云平台的安全组规则没有匹配的安全组规则,则将该地二十二数据包进行丢弃。
[0106] 本实施例中,步骤S303表示要将某个数据包送入到一个全局状态记录器,步骤S305表示基于状态和云平台配置的匹配条件(例如MAC地址)对数据包进行放行或者丢弃。在设计物理机安全组之前,由于安全组只针对虚机,因此其只需要根据虚机在虚拟交换机上的端口号就能匹配出虚机的流量并进行放行或者丢弃。但是物理机的口不在虚拟交换机上面,所以这条流表并不能匹配物理机相关的数据包,该条流表的优先级是10。针对该种情况,本发明新添加的针对物理机的流表的优先级是11,它可以比优先级为10的流表先匹配。
这条流表中有两个匹配域,一个匹配域是输出口不在本地,另外一个是数据包的目的网卡地址,通过这两个条件的限制,所有经过物理机的数据包会匹配到,所以虚机的数据包仍然走原来的流程。匹配到物理机的数据包之后便可以进行放行,丢弃或者送入到全局状态记录器的操作。
[0107] 为进一步提高物理机的安全防护功能,参见图8,本发明实施例公开的另一种物理机的安全防护方法流程图,在步骤S305之后,还可以包括:
[0108] 步骤S401、针对所有的第二目标数据包,分别对需要执行负载均衡功能的数据包执行负载均衡功能,以及对无需执行负载均衡功能的数据包直接放行,得到与所述第二目标数据包对应的第二十三数据包;
[0109] 在图6所示实施例的步骤S301中,已经判断各个入口数据包是否需要执行负载均衡功能,因此,本步骤直接对需要执行负载均衡功能的第二目标数据包执行负载均衡功能,对不需要执行负载均衡功能的数据包直接放行,经过本步骤处理的第二目标数据包记为第二十三数据包。
[0110] 步骤S402、针对所有的所述第二十三数据包,分别对添加全局状态记录的第二十三数据包发送至全局状态记录器,以及并对未添加全局状态记录的第二十三数据包直接放行,得到与所述第二十三数据包对应的第二十四数据包;
[0111] 由于在步骤303中对需要发送至全局状态记录器的数据包添加了全局状态记录,因此,针对所有的第二十三数据中,分别对添加全局状态记录的第二十三数据包发送至全局状态记录器,以及并对未添加全局状态记录的第二十三数据包直接放行,最终记录的数据包为第二十四数据包。
[0112] 步骤S403、对所有的所述第二十四数据包进行网络层安全检查,对通过所述网络层安全检查的第二十四数据包确定为第二十五数据包;
[0113] 其中,网络层安全检查包含的内容可以包括:端口port在云平台上配置的IP地址与进入的第二十四数据包的IP地址是否一致,如果是,则放行,不是则丢弃,将经过网络层安全检查的第二十四数据包记录为第二十五数据包。
[0114] 网络层安全检查包含的具体内容可根据实际需要而定,本发明在此不做限定。
[0115] 步骤S404、对所有的所述第二十五数据包进行链路层安全检查,对通过所述链路层安全检查的第二十五数据包记录为第二十六数据包;
[0116] 其中,链路层安全检查可以为:第二十五数据包是否为VLAN包或者多播包,以及启用端口安全的端口的MAC地址和运管平台上设定的MAC地址是否匹配,如果是,则放行,不是则丢弃,将经过链路层安全检查的第二十五数据包记录为第二十六数据包。
[0117] 步骤S405、为每个所述第二十六数据包添加上标签tag,并从对应的虚拟机口发送出去。
[0118] 与上述方法实施例相对应,本发明还公开了一种网络节点设备,参见图1,网络节点设备与物理机连接,所述网络节点设备上运行着虚拟交换机,所述虚拟交换机用于实现物理机安全组功能和虚拟网关功能,所述物理机安全组功能通过逻辑交换机实现,所述逻辑交换机由一系列Openflow流表组成。
[0119] 网络节点设备包括硬件存储器和处理器,处理器用于加载并执行存储器中的程序时,具体用于加载并执行图5~图8所示实施例的物理机的安全防护方法。
[0120] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0121] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0122] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。