一种虚拟机安全通信系统及虚拟机安全通信方法与流程

文档序号:14186727阅读:149来源:国知局

本发明涉及通信技术领域,尤其涉及一种虚拟机安全通信系统及虚拟机安全通信方法。



背景技术:

随着云技术的快速发展,云已经是当今it(informationtechnology,信息技术)建设部署的重要方式。同时,云内虚拟机之间的病毒传播成为云安全开发商的重点关注的问题。

目前,防止云内虚拟机之间的病毒传播的方式主要包括:方式一,vmware(威睿)流量重定向技术,在物理服务器创建时,在驱动层面添加流量重定向驱动程序;当应用层虚拟机之间进行流量传输时,在虚拟机流量到达驱动层时进行流量重定向,对流量进行合法性判断通过后,允许流量发送给目的虚拟机,从而实现虚拟机之间流量传输的安全性;方式二,vepa(virtualethernetportaggregator,虚拟以太网端口聚合器)技术,该技术主要是通过体外循环方案,将服务器内部虚拟机流量全部牵引到服务器外部专用的安全设备,通过安全设备对虚拟机流量执行过滤和防护等安全处理;即通过vepa技术,将虚拟机产生的网络流量全部交由与服务器相连的物理交换机进行处理。即使同一台服务器的虚拟机间的流量,也发往外部物理交换机进行转发处理,然后对于需要进行安全防护的流量重定向到旁挂的物理防火墙中,由物理防火墙对流量进行防护处理,处理完毕后再返回服务器内部。

但上述防止云内虚拟机之间的木马病毒传染的方式主要存在以下缺陷:方式一,首先,在随着虚拟机在多个物理服务器之间动态迁移,虚拟边界动态变化时,vmware流量重定向技术需要在新的服务器上安装对应驱动,配置对应策略,存在不够灵活和成本较高等问题;其次,vmware流量重定向技术只能适用于vmware自己的虚拟化平台,无法应用于其他虚拟化平台(例如kvm(kernel-basedvirtualmachine)和开放源代码虚拟机监视器xen等),使用范围受限;再次,vmware流量重定向技术需要在hypervisor层(驱动层)安装对应的流量重定向驱动,作为第三方安全服务器需要根据vmware提供的对外的接口进行二次开发,难度比较大,成本较高;方式二,首先,在随着虚拟机在多个物理服务器之间动态迁移时,vepa技术需要进行对应策略的配置和新增新服务器上的专用物理设备等,成本高,开发效率低;其次,vepa技术要将所有服务器内部流量引导到外部处理,增加了流量处理的负荷,会影响服务器和交换机性能;再次,流量引导要外部接入交换机配合,需要专用的物理交换设备,成本较高。



技术实现要素:

本发明提供一种虚拟机安全通信系统及虚拟机安全通信方法,用以解决现有技术中虚拟机之间的数据安全通信成本过高的问题。

本发明提供一种虚拟机安全通信系统,包括:

流量交换单元,用于当任一虚拟机向其他虚拟机发送流量信息时,获取所述流量信息,并基于预置的流量转发配置表将所述流量信息发送至防火墙单元;

所述防火墙单元,用于基于预置的安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述流量交换单元;否则将所述流量信息进行隔离;

所述流量交换单元,还用于基于所述流量转发配置表,将接收到的所述防火墙单元发送的所述流量信息发送至所述其他虚拟机。

可选的,所述流量交换单元包括:第一流量交换模块和第二流量交换模块;所述防火墙单元包括:第一防火墙模块和第二防火墙模块;所述流量转发配置表包括所述任一虚拟机对应的第一流量转发配置表,以及所述其他虚拟机对应的第二流量转发配置表;

其中,所述第一流量交换模块、第一防火墙模块和所述任一虚拟机设置于第一服务器;所述第二流量交换模块、第二防火墙模块和所述其他虚拟机设置于第二服务器;

所述第一流量交换模块,用于当所述任一虚拟机向所述其他虚拟机发送流量信息时,获取所述流量信息,并基于所述第一流量转发配置表将所述流量信息发送至第一防火墙模块;

所述第一防火墙模块,用于基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第一流量交换模块;否则将所述流量信息进行隔离;

所述第一流量交换模块,还用于基于所述第一流量转发配置表,将接收到的所述第一防火墙模块发送的所述流量信息发送至所述第二流量交换模块;

所述第二流量交换模块,用于基于所述第二流量转发配置表,将所述流量信息发送至所述第二防火墙模块;

所述第二防火墙模块,用于基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第二流量交换模块;否则将所述流量信息进行隔离;

所述第二流量交换模块,还用于基于所述第二流量转发配置表,将接收到的所述第二防火墙模块发送的所述流量信息发送至所述其他虚拟机。

可选的,所述流量交换单元还包括第三流量交换模块;所述防火墙单元还包括第三防火墙模块;其中,所述第三流量交换模块和所述第三防火墙模块设置于第三服务器;

所述第三流量交换模块,用于在所述任一虚拟机迁移至所述第三服务器的情况下,获取所述第一流量交换模块中的第一流量转发配置表;当所述任一虚拟机向所述其他虚拟机发送流量信息时,获取所述流量信息,并基于所述第一流量转发配置表将所述流量信息发送至第三防火墙模块;

所述第三防火墙模块,用于基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第三流量交换模块;否则将所述流量信息进行隔离;

所述第三流量交换模块,还用于基于所述第一流量转发配置表,将接收到的所述第一防火墙模块发送的所述流量信息发送至所述第二流量交换模块。

可选的,所述流量交换单元还包括第四流量交换模块;所述防火墙单元还包括第四防火墙模块;其中,所述第四流量交换模块和所述第四防火墙模块设置于第四服务器;

所述第四流量交换模块,用于在所述其他虚拟机迁移至所述第四服务器的情况下,获取所述第二流量交换模块中的第二流量转发配置表;当接收到所述第一流量交换模块发送的流量信息时,获取所述流量信息,并基于所述第二流量转发配置表将所述流量信息发送至第四防火墙模块;

所述第四防火墙模块,用于基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第四流量交换模块;否则将所述流量信息进行隔离;

所述第四流量交换模块,还用于基于所述第二流量转发配置表,将接收到的所述第四防火墙模块发送的所述流量信息发送至所述其他虚拟机。

可选的,所述流量交换单元、所述防火墙模块单元、所述任一虚拟机和所述其他虚拟机设置于第五服务器。

本发明还提供一种上述的虚拟机安全通信系统的虚拟机安全通信方法,所述方法包括:

当任一虚拟机向其他虚拟机发送流量信息时,通过流量交换单元获取所述流量信息,并基于预置的流量转发配置表将所述流量信息发送至防火墙单元;

通过所述防火墙单元基于预置的安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述流量交换单元;否则将所述流量信息进行隔离;

通过所述流量交换单元基于所述流量转发配置表,将接收到的所述防火墙单元发送的所述流量信息发送至所述其他虚拟机。

可选的,所述流量交换单元包括:第一流量交换模块和第二流量交换模块;所述防火墙单元包括:第一防火墙模块和第二防火墙模块;所述流量转发配置表包括所述任一虚拟机对应的第一流量转发配置表,以及所述其他虚拟机对应的第二流量转发配置表;其中,所述第一流量交换模块、第一防火墙模块和所述任一虚拟机设置于第一服务器;所述第二流量交换模块、第二防火墙模块和所述其他虚拟机设置于第二服务器;

所述方法具体包括:

当所述任一虚拟机向所述其他虚拟机发送流量信息时,通过所述第一流量交换模块获取所述流量信息,并基于所述第一流量转发配置表将所述流量信息发送至第一防火墙模块;

通过所述第一防火墙模块基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第一流量交换模块;否则将所述流量信息进行隔离;

通过所述第一流量交换模块基于所述第一流量转发配置表,将接收到的所述第一防火墙模块发送的所述流量信息发送至所述第二流量交换模块;

通过所述第二流量交换模块基于所述第二流量转发配置表,将所述流量信息发送至所述第二防火墙模块;

通过所述第二防火墙模块基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第二流量交换模块;否则将所述流量信息进行隔离;

通过所述第二流量交换模块基于所述第二流量转发配置表,将接收到的所述第二防火墙模块发送的所述流量信息发送至所述其他虚拟机。

可选的,所述流量交换单元还包括第三流量交换模块;所述防火墙单元还包括第三防火墙模块;其中,所述第三流量交换模块和所述第三防火墙模块设置于第三服务器;

所述方法还包括:

在所述任一虚拟机迁移至所述第三服务器的情况下,通过所述第三流量交换模块获取所述第一流量交换模块中的第一流量转发配置表;当所述任一虚拟机向所述其他虚拟机发送流量信息时,通过所述第三流量交换模块获取所述流量信息,并基于所述第一流量转发配置表将所述流量信息发送至第三防火墙模块;

通过所述第三防火墙模块基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第三流量交换模块;否则将所述流量信息进行隔离;

通过所述第三流量交换模块基于所述第一流量转发配置表,将接收到的所述第一防火墙模块发送的所述流量信息发送至所述第二流量交换模块。

可选的,所述流量交换单元还包括第四流量交换模块;所述防火墙单元还包括第四防火墙模块;其中,所述第四流量交换模块和所述第四防火墙模块设置于第四服务器;

所述方法还包括:

在所述其他虚拟机迁移至所述第四服务器的情况下,通过所述第四流量交换模块获取所述第二流量交换模块中的第二流量转发配置表;当接收到所述第一流量交换模块发送的流量信息时,通过所述第四流量交换模块获取所述流量信息,并基于所述第二流量转发配置表将所述流量信息发送至第四防火墙模块;

通过第四防火墙模块基于所述安全策略配置表,判断所述流量信息是否合法;若判定所述流量信息为合法,则将所述流量信息发送至所述第四流量交换模块;否则将所述流量信息进行隔离;

通过所述第四流量交换模块基于所述第二流量转发配置表,将接收到的所述第四防火墙模块发送的所述流量信息发送至所述其他虚拟机。

可选的,所述流量交换单元、所述防火墙模块单元、所述任一虚拟机和所述其他虚拟机设置于第一服务器。

采用上述技术方案,本发明至少具有下列优点:

本发明所述一种虚拟机安全通信系统及虚拟机安全通信方法,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本;在虚拟机进行迁移时,实现了虚拟机的流量转发配置表自动迁移,有效提高了虚拟机的通信安全。

附图说明

图1为本发明第一实施例的虚拟机安全通信系统组成结构示意图;

图2为本发明第二实施例的虚拟机安全通信系统组成结构示意图;

图3为本发明第二实施例的虚拟机安全通信系统组成结构示意图;

图4为本发明第二实施例的虚拟机安全通信系统组成结构示意图;

图5为本发明第三实施例的虚拟机安全通信方法流程图;

图6为本发明第四实施例的虚拟机安全通信方法流程图;

图7为本发明第五实施例的虚拟机安全通信方法流程图;

图8为本发明第六实施例的虚拟机安全通信方法流程图;

图9为本发明第七实施例的虚拟机安全通信系统组成结构示意图。

具体实施方式

为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。

本发明第一实施例,一种虚拟机安全通信系统,如图1所示,包括以下组成部分:

流量交换单元100,用于当任一虚拟机400向其他虚拟机500发送流量信息时,获取流量信息,并基于预置的流量转发配置表将流量信息发送至防火墙单元200;

防火墙单元200,用于基于预置的安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至流量交换单元100;否则将流量信息进行隔离;

流量交换单元100,还用于基于流量转发配置表,将接收到的防火墙单元200发送的流量信息发送至其他虚拟机500。

可选的,流量交换单元100、防火墙模块单元、任一虚拟机400和其他虚拟机500设置于第五服务器405。

可选的,虚拟机安全通信系统还包括:

防火墙管理单元300,用于在任一虚拟机400向其他虚拟机500发送流量信息之前,将预置的流量转发配置表发送至流量交换单元100,并将预置的安全策略配置表发送至防火墙单元200。

其中,流量转发配置表,至少包括以下流量转发配置方式之一:

方式一,全部重定向流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略;

ovs-ofctladd-flow$switchpriority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的默认策略;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对防火墙的出口添加默认策略normal(至少广播包需要),优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=1,in_port=$outport,actions=normal;

#默认策略是重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=output:$inport;

方式二,定向保护流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略ovs-ofctladd-flow$switch

priority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的其他策略;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对出口的广播包作特殊判断,只允许被保护虚拟机的广播包,防止多份广播,因为广播包也会送一份给inport;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm1mac},actions=normal;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm2mac},actions=normal;

#对防火墙的出口添加默认策略drop,优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=2,in_port=$outport,actions=drop;

#被保护虚拟机发出的数据包要重定向进防火墙;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm1port,actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm2port,actions=output:$inport;

#发往被保护的虚拟机的数据包,未经过防火墙要进防火墙;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm1mac},actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm2mac},actions=output:$inport;

#默认策略是通过,不重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=normal。

本发明第一实施例的虚拟机安全通信系统,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本。

本发明第二实施例,一种虚拟机安全通信系统,如图2~图4所示,包括以下组成部分:

流量交换单元100,用于当任一虚拟机400向其他虚拟机500发送流量信息时,获取流量信息,并基于预置的流量转发配置表将流量信息发送至防火墙单元200;

防火墙单元200,用于基于预置的安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至流量交换单元100;否则将流量信息进行隔离;

流量交换单元100,还用于基于流量转发配置表,将接收到的防火墙单元200发送的流量信息发送至其他虚拟机500。

可选的,如图2所示,流量交换单元100包括:第一流量交换模块101和第二流量交换模块102;防火墙单元200包括:第一防火墙模块201和第二防火墙模块202;流量转发配置表包括任一虚拟机400对应的第一流量转发配置表,以及其他虚拟机500对应的第二流量转发配置表;

其中,第一流量交换模块101、第一防火墙模块201和任一虚拟机400设置于第一服务器401;第二流量交换模块102、第二防火墙模块202和其他虚拟机500设置于第二服务器402;

第一流量交换模块101,用于当任一虚拟机400向其他虚拟机500发送流量信息时,获取流量信息,并基于第一流量转发配置表将流量信息发送至第一防火墙模块201;

第一防火墙模块201,用于基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第一流量交换模块101;否则将流量信息进行隔离;

第一流量交换模块101,还用于基于第一流量转发配置表,将接收到的第一防火墙模块201发送的流量信息发送至第二流量交换模块102;

第二流量交换模块102,用于基于第二流量转发配置表,将流量信息发送至第二防火墙模块202;

第二防火墙模块202,用于基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第二流量交换模块102;否则将流量信息进行隔离;

第二流量交换模块102,还用于基于第二流量转发配置表,将接收到的第二防火墙模块202发送的流量信息发送至其他虚拟机500。

可选的,虚拟机安全通信系统还包括:

防火墙管理单元300,用于在任一虚拟机400向其他虚拟机500发送流量信息之前,将预置的第一流量转发配置表发送至第一流量交换模块101,将预置的第二流量转发配置表发送至第二流量交换模块102,将预置的安全策略配置表分别发送至第一防火墙模块201和第二防火墙模块202。

可选的,如图3所示,流量交换单元100还包括第三流量交换模块103;防火墙单元200还包括第三防火墙模块203;其中,第三流量交换模块103和第三防火墙模块203设置于第三服务器403;

第三流量交换模块103,用于在任一虚拟机400迁移至第三服务器403的情况下,获取第一流量交换模块101中的第一流量转发配置表;当任一虚拟机400向其他虚拟机500发送流量信息时,获取流量信息,并基于第一流量转发配置表将流量信息发送至第三防火墙模块203;

第三防火墙模块203,用于基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第三流量交换模块103;否则将流量信息进行隔离;

第三流量交换模块103,还用于基于第一流量转发配置表,将接收到的第一防火墙模块201发送的流量信息发送至第二流量交换模块102。

可选的,如图4所示,流量交换单元100还包括第四流量交换模块104;防火墙单元200还包括第四防火墙模块204;其中,第四流量交换模块104和第四防火墙模块204设置于第四服务器404;

第四流量交换模块104,用于在其他虚拟机500迁移至第四服务器404的情况下,获取第二流量交换模块102中的第二流量转发配置表;当接收到第一流量交换模块101发送的流量信息时,获取流量信息,并基于第二流量转发配置表将流量信息发送至第四防火墙模块204;

第四防火墙模块204,用于基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第四流量交换模块104;否则将流量信息进行隔离;

第四流量交换模块104,还用于基于第二流量转发配置表,将接收到的第四防火墙模块204发送的流量信息发送至其他虚拟机500。

其中,流量转发配置表,至少包括以下流量转发配置方式之一:

方式一,全部重定向流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略;

ovs-ofctladd-flow$switchpriority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的默认策略;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对防火墙的出口添加默认策略normal(至少广播包需要),优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=1,in_port=$outport,actions=normal;

#默认策略是重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=output:$inport;

方式二,定向保护流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略ovs-ofctladd-flow$switch

priority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的其他策略;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对出口的广播包作特殊判断,只允许被保护虚拟机的广播包,防止多份广播,因为广播包也会送一份给inport;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm1mac},actions=normal;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm2mac},actions=normal;

#对防火墙的出口添加默认策略drop,优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=2,in_port=$outport,actions=drop;

#被保护虚拟机发出的数据包要重定向进防火墙;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm1port,actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm2port,actions=output:$inport;

#发往被保护的虚拟机的数据包,未经过防火墙要进防火墙;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm1mac},actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm2mac},actions=output:$inport;

#默认策略是通过,不重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=normal。

本发明第二实施例的虚拟机安全通信系统,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本;在虚拟机进行迁移时,实现了虚拟机的流量转发配置表自动迁移,有效提高了虚拟机的通信安全。

本发明第三实施例,一种根据本发明第一实施例的虚拟机安全通信系统的虚拟机安全通信方法,如图5所示,包括以下具体步骤:

步骤s302,当任一虚拟机向其他虚拟机发送流量信息时,通过流量交换单元获取流量信息,并基于预置的流量转发配置表将流量信息发送至防火墙单元。

步骤s303,通过防火墙单元基于预置的安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至流量交换单元;否则将流量信息进行隔离。

步骤s304,通过流量交换单元基于流量转发配置表,将接收到的防火墙单元发送的流量信息发送至其他虚拟机。

可选的,流量交换单元、防火墙模块单元、任一虚拟机和其他虚拟机设置于第五服务器。

可选的,在步骤s302之前,还包括:

步骤s301,通过防火墙管理单元将预置的流量转发配置表发送至流量交换单元,并将预置的安全策略配置表发送至防火墙单元。

其中,流量转发配置表,至少包括以下流量转发配置方式之一:

方式一,全部重定向流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略;

ovs-ofctladd-flow$switchpriority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的默认策略;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对防火墙的出口添加默认策略normal(至少广播包需要),优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=1,in_port=$outport,actions=normal;

#默认策略是重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=output:$inport;

方式二,定向保护流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略ovs-ofctladd-flow$switch

priority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的其他策略;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对出口的广播包作特殊判断,只允许被保护虚拟机的广播包,防止多份广播,因为广播包也会送一份给inport;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm1mac},actions=normal;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm2mac},actions=normal;

#对防火墙的出口添加默认策略drop,优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=2,in_port=$outport,actions=drop;

#被保护虚拟机发出的数据包要重定向进防火墙;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm1port,actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm2port,actions=output:$inport;

#发往被保护的虚拟机的数据包,未经过防火墙要进防火墙;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm1mac},actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm2mac},actions=output:$inport;

#默认策略是通过,不重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=normal。

本发明第三实施例的虚拟机安全通信系方法,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本。

本发明第四实施例,一种根据本发明第二实施例的虚拟机安全通信系统的虚拟机安全通信方法,如图6所示,包括以下具体步骤:

步骤s401,当任一虚拟机向其他虚拟机发送流量信息时,通过第一流量交换模块获取流量信息,并基于第一流量转发配置表将流量信息发送至第一防火墙模块。

步骤s402,通过第一防火墙模块基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第一流量交换模块;否则将流量信息进行隔离。

步骤s403,通过第一流量交换模块基于第一流量转发配置表,将接收到的第一防火墙模块发送的流量信息发送至第二流量交换模块。

步骤s404,通过第二流量交换模块基于第二流量转发配置表,将流量信息发送至第二防火墙模块。

步骤s405,通过第二防火墙模块基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第二流量交换模块;否则将流量信息进行隔离。

步骤s406,通过第二流量交换模块基于第二流量转发配置表,将接收到的第二防火墙模块发送的流量信息发送至其他虚拟机。

其中,第一流量交换模块、第一防火墙模块和任一虚拟机设置于第一服务器;第二流量交换模块、第二防火墙模块和其他虚拟机设置于第二服务器。

其中,流量转发配置表,至少包括以下流量转发配置方式之一:

方式一,全部重定向流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略;

ovs-ofctladd-flow$switchpriority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的默认策略;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对防火墙的出口添加默认策略normal(至少广播包需要),优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=1,in_port=$outport,actions=normal;

#默认策略是重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=output:$inport;

方式二,定向保护流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略ovs-ofctladd-flow$switch

priority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的其他策略;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对出口的广播包作特殊判断,只允许被保护虚拟机的广播包,防止多份广播,因为广播包也会送一份给inport;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm1mac},actions=normal;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm2mac},actions=normal;

#对防火墙的出口添加默认策略drop,优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=2,in_port=$outport,actions=drop;

#被保护虚拟机发出的数据包要重定向进防火墙;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm1port,actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm2port,actions=output:$inport;

#发往被保护的虚拟机的数据包,未经过防火墙要进防火墙;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm1mac},actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm2mac},actions=output:$inport;

#默认策略是通过,不重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=normal。

本发明第四实施例的虚拟机安全通信方法,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本;在虚拟机进行迁移时,实现了虚拟机的流量转发配置表自动迁移,有效提高了虚拟机的通信安全。

本发明第五实施例,一种虚拟机安全通信方法,本实施例方法与第四实施例大致相同,区别在于当任一虚拟机由第一服务器迁移至第三服务器时,对第一流量交换模块中的第一流量转发配置表进行自动迁移,当如图7所示,本实施例的方法,包括以下具体步骤:

步骤s501,在任一虚拟机由第一服务器迁移至第三服务器的情况下,通过第三流量交换模块获取第一流量交换模块中的第一流量转发配置表;当任一虚拟机向其他虚拟机发送流量信息时,通过第三流量交换模块获取流量信息,并基于第一流量转发配置表将流量信息发送至第三防火墙模块。

步骤s502,通过第三防火墙模块基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第三流量交换模块;否则将流量信息进行隔离。

步骤s503,通过第三流量交换模块基于第一流量转发配置表,将接收到的第一防火墙模块发送的流量信息发送至第二流量交换模块。

步骤s504,通过第二流量交换模块基于第二流量转发配置表,将流量信息发送至第二防火墙模块。

步骤s505,通过第二防火墙模块基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第二流量交换模块;否则将流量信息进行隔离。

步骤s506,通过第二流量交换模块基于第二流量转发配置表,将接收到的第二防火墙模块发送的流量信息发送至其他虚拟机。

其中,第一流量交换模块设置于第一服务器;第二流量交换模块、第二防火墙模块和其他虚拟机设置于第二服务器;第三流量交换模块和第三防火墙模块设置于第三服务器。

其中,流量转发配置表,至少包括以下流量转发配置方式之一:

方式一,全部重定向流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略;

ovs-ofctladd-flow$switchpriority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的默认策略;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对防火墙的出口添加默认策略normal(至少广播包需要),优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=1,in_port=$outport,actions=normal;

#默认策略是重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=output:$inport;

方式二,定向保护流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略ovs-ofctladd-flow$switch

priority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的其他策略;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对出口的广播包作特殊判断,只允许被保护虚拟机的广播包,防止多份广播,因为广播包也会送一份给inport;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm1mac},actions=normal;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm2mac},actions=normal;

#对防火墙的出口添加默认策略drop,优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=2,in_port=$outport,actions=drop;

#被保护虚拟机发出的数据包要重定向进防火墙;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm1port,actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm2port,actions=output:$inport;

#发往被保护的虚拟机的数据包,未经过防火墙要进防火墙;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm1mac},actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm2mac},actions=output:$inport;

#默认策略是通过,不重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=normal。

本发明第五实施例的虚拟机安全通信方法,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本;在虚拟机进行迁移时,实现了虚拟机的流量转发配置表自动迁移,有效提高了虚拟机的通信安全。

本发明第六实施例,一种虚拟机安全通信方法,本实施例方法与第四实施例大致相同,区别在于其他虚拟机由第二服务器迁移至第四服务器时,对第二流量交换模块中的第二流量转发配置表进行自动迁移,当如图8所示,本实施例的方法,包括以下具体步骤:

步骤s601,当任一虚拟机向其他虚拟机发送流量信息时,通过第一流量交换模块获取流量信息,并基于第一流量转发配置表将流量信息发送至第一防火墙模块。

步骤s602,通过第一防火墙模块基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第一流量交换模块;否则将流量信息进行隔离。

步骤s603,通过第一流量交换模块基于第一流量转发配置表,将接收到的第一防火墙模块发送的流量信息发送至第二流量交换模块。

步骤s604,在其他虚拟机由第二服务器迁移至第四服务器的情况下,通过第四流量交换模块获取第二流量交换模块中的第二流量转发配置表;当接收到第一流量交换模块发送的流量信息时,通过第四流量交换模块获取流量信息,并基于第二流量转发配置表将流量信息发送至第四防火墙模块。

步骤s605,通过第四防火墙模块基于安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至第四流量交换模块;否则将流量信息进行隔离。

步骤s606,通过第四流量交换模块基于第二流量转发配置表,将接收到的第四防火墙模块发送的流量信息发送至其他虚拟机。

其中,第一流量交换模块、第一防火墙模块和任一虚拟机设置于第一服务器;第二流量交换模块设置于第二服务器;第四流量交换模块和第四防火墙模块设置于第四服务器。

其中,流量转发配置表,至少包括以下流量转发配置方式之一:

方式一,全部重定向流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略;

ovs-ofctladd-flow$switchpriority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的默认策略;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对防火墙的出口添加默认策略normal(至少广播包需要),优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=1,in_port=$outport,actions=normal;

#默认策略是重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=output:$inport;

方式二,定向保护流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略ovs-ofctladd-flow$switch

priority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的其他策略;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对出口的广播包作特殊判断,只允许被保护虚拟机的广播包,防止多份广播,因为广播包也会送一份给inport;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm1mac},actions=normal;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm2mac},actions=normal;

#对防火墙的出口添加默认策略drop,优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=2,in_port=$outport,actions=drop;

#被保护虚拟机发出的数据包要重定向进防火墙;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm1port,actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm2port,actions=output:$inport;

#发往被保护的虚拟机的数据包,未经过防火墙要进防火墙;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm1mac},actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm2mac},actions=output:$inport;

#默认策略是通过,不重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=normal。

本发明第六实施例的虚拟机安全通信方法,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本;在虚拟机进行迁移时,实现了虚拟机的流量转发配置表自动迁移,有效提高了虚拟机的通信安全。

本发明第七实施例,本实施例是在上述实施例的基础上,以虚拟机安全通信系统为例,结合附图9介绍一个本发明的应用实例。

该虚拟机安全通信系统包括:

防火墙管理vseccenter单元30,用于在第一虚拟机40向第二虚拟机50发送流量信息之前,将预置的流量转发配置表发送至流量交换openvswitch单元10,并将将预置的安全策略配置表发送至防火墙vfw单元20。

流量交换openvswitch单元10,用于当第一虚拟机40向第二虚拟机50发送流量信息时,获取流量信息,并基于流量转发配置表将流量信息发送至防火墙vfw单元20;

防火墙vfw单元20,用于基于预置的安全策略配置表,判断流量信息是否合法;若判定流量信息为合法,则将流量信息发送至流量交换vseccenter单元10;否则将流量信息进行隔离;

流量交换vseccenter单元10,还用于基于流量转发配置表,将接收到的防火墙vfw单元20发送的流量信息发送至第二虚拟机50。

其中,流量交换openvswitch单元10、防火墙vfw单元20、第一虚拟机40和第二虚拟机50均设置于服务器60中。

其中,流量转发配置表,至少包括以下流量转发配置方式之一:

方式一,全部重定向流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略;

ovs-ofctladd-flow$switchpriority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的默认策略;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=2,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对防火墙的出口添加默认策略normal(至少广播包需要),优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=1,in_port=$outport,actions=normal;

#默认策略是重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=output:$inport;

方式二,定向保护流量转发配置方式:

#禁掉防火墙出口的收包功能;

ovs-ofctlmod-port$switch$outportno-forward;

#禁掉防火墙入口的flood功能;

ovs-ofctlmod-port$switch$inportno-flood;

#清理掉bridge上的策略;

ovs-ofctldel-flows$switch;

#可以再执行恢复默认策略ovs-ofctladd-flow$switch

priority=0,actions=normal;

#不能从防火墙入口收包,最高优先级,防止环回,且要最先添加;

ovs-ofctladd-flow$switchpriority=65535,in_port=$inport,actions=drop;

#对防火墙的出口数据进行甄别,根据目的mac送往不同的端口,优先级要高于防火墙出口的其他策略;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm1mac},actions=output:$vm1port;

ovs-ofctladd-flow$switch

priority=4,in_port=$outport,dl_dst=${vm2mac},actions=output:$vm2port;

#对出口的广播包作特殊判断,只允许被保护虚拟机的广播包,防止多份广播,因为广播包也会送一份给inport;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm1mac},actions=normal;

ovs-ofctladd-flow$switch

priority=3,in_port=$outport,dl_src=${vm2mac},actions=normal;

#对防火墙的出口添加默认策略drop,优先级要高于重定向进防火墙的默认策略,防止数据包再次重定向进防火墙,且添加顺序要早于重定向策略;

ovs-ofctladd-flow$switchpriority=2,in_port=$outport,actions=drop;

#被保护虚拟机发出的数据包要重定向进防火墙;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm1port,actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,in_port=$vm2port,actions=output:$inport;

#发往被保护的虚拟机的数据包,未经过防火墙要进防火墙;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm1mac},actions=output:$inport;

ovs-ofctladd-flow$switch

priority=1,dl_dst=${vm2mac},actions=output:$inport;

#默认策略是通过,不重定向进防火墙入口,优先级最低;

ovs-ofctladd-flow$switchpriority=0,actions=normal。

本发明第七实施例的虚拟机安全通信方法,通过预置的流量转发配置表,对虚拟机之间发送的流量信息进行重新定向,实现了虚拟机安全通信系统在多个类型的虚拟机平台上的使用,有效提高了虚拟机安全通信系统的通用性;虚拟机安全通信系统避免了在hypervisor层之外设置驱动,有效降低了成本;虚拟机安全通信系统在服务器内部进行流量防护,有效地避免虚拟机之间发送的流量信息转发至服务器外部进行安全通行处理,有效减少流量处理的负荷,避免了服务器和交换机性能的耗损;由于虚拟机安全通信系统不需外部接入专用物理交换设备,有效节约了成本。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1