一种实现虚拟机网络访问控制的方法及装置与流程

文档序号:11842855阅读:164来源:国知局
一种实现虚拟机网络访问控制的方法及装置与流程

本申请涉及计算机领域,特别是涉及一种实现虚拟机网络访问控制的方法及装置。



背景技术:

随着大数据时代的到来,如何保护数据变得越来越重要,同时随着云计算技术的发展,在越来越多的应用场景下,需要使用虚拟机来访问某个应用。

因此,如何针对虚拟机进行灵活可靠的网络访问控制,对保护数据的意义越来越重要。

现有技术中,对于虚拟机的网络访问控制主要有以下三种方式:

第一,通过在虚拟机中加入一些网络访问控制软件进行网络访问控制。

此种方法虽然可以对虚拟机的网络访问控制做到很细的粒度,例如针对应用或针对用户等。但是,该方法是通过虚拟机中的软件进行网络访问控制,因此虚拟机中的软件是用户可以接触到的,也就存在被用户绕过的可能。

第二,通过对虚拟机的ip等参数实现对虚拟机的网络访问控制。

该方法在网关或应用入口处通过限制源ip的方式来进行网络访问控制。但是该方法也存在以下几点问题:

1)如果虚拟机在宿主机上通过网络地址转换(Network Address Translation,NAT)的方式访问网络,则无法拿到虚拟机的ip,只能通过限制宿主机的ip来完成网络访问控制,此时粒度就会变大。

2)如果在网关做限制且能拿到虚拟机的ip,此种情况下也只能对整个虚拟机进行网络访问控制,而无法实现针对其中的某一个应用做网络访问控制。

3)在应用入口处根据源ip做访问控制,需要修改应用,非常不灵活。

第三,通过给虚拟机所在的网络实现网络访问控制。

该方法通过给虚拟机划分网络,通过网络隔离的方式来进行网络访问控制,由于该方法是针对虚拟机所在的网络,因此粒度太大,不灵活。

因此,现有技术中无法精确实现对虚拟机中某一应用的网络访问控制,且避免用户绕过。



技术实现要素:

本申请实施例提供了一种实现虚拟机网络访问控制的方法及装置,用以实现对虚拟机中任一应用的网络访问控制,且避免用户绕过。

本申请实施例提供的具体技术方案如下:

一种实现虚拟机网络访问控制的方法,包括:

截获本地的虚拟机通过本地的虚拟网卡发送的数据包,并对所述数据包进行解析;

根据所述数据包的解析结果确定所述虚拟机中需要发起网络访问的应用程序;

根据网络访问策略集合,判断是否允许所述应用程序访问网络,若是,继续发送所述数据包,否则,抛弃所述数据包,其中,一条网络访问策略表征一虚拟机中的一应用程序通过对应的虚拟网卡进行网络访问的权限配置信息。

本申请的方法,具有细粒度,防绕过的特点,使得对虚拟机的网络访问控制更加灵活,也更加可靠。

可选的,在截获本地的虚拟机通过本地的虚拟网卡发送的数据包之前,进一步包括:

接收网络访问控制策略服务器下发的针对本地所有虚拟机的网络访问策略集合。

可选的,进一步包括:

定期将当前所有虚拟机及对应的虚拟网卡信息发送至所述网络访问控制策略服务器。

可选的,进一步包括:

当检测到有新的虚拟网卡创建时,将所述新的虚拟网卡及对应的虚拟机的通知信息发送至所述网络访问控制策略服务器。

可选的,进一步包括:

当检测到已有的虚拟网卡删除时,将所述已有的虚拟网卡及对应的虚拟机的通知信息发送至所述网络访问控制策略服务器。

一种实现虚拟机网络访问控制的装置,包括:

处理单元,用于截获本地的虚拟机通过本地的虚拟网卡发送的数据包,并对所述数据包进行解析;

分析单元,用于根据所述数据包的解析结果确定所述虚拟机中需要发起网络访问的应用程序;

判断单元,用于根据网络访问策略集合,判断是否允许所述应用程序访问网络,若是,继续发送所述数据包,否则,抛弃所述数据包,其中,一条网络访问策略表征一虚拟机中的一应用程序通过对应的虚拟网卡进行网络访问的权限配置信息。

可选的,在截获本地的虚拟机通过本地的虚拟网卡发送的数据包之前,进一步包括:

接收单元,用于接收网络访问控制策略服务器下发的针对本地所有虚拟机的网络访问策略集合。

可选的,进一步包括:

同步单元,用于定期将当前所有虚拟机及对应的虚拟网卡信息发送至所述网络访问控制策略服务器。

可选的,所述同步单元进一步用于:

当检测到有新的虚拟网卡创建时,将所述新的虚拟网卡及对应的虚拟机,的通知信息发送至所述网络访问控制策略服务器。

可选的,所述同步单元进一步用于:

当检测到已有的虚拟网卡删除时,将所述已有的虚拟网卡及对应的虚拟机的通知信息发送至所述网络访问控制策略服务器。

本申请的方法,具有细粒度,防绕过的特点,使得对虚拟机的网络访问控制更加灵活,也更加可靠。

附图说明

图1为本申请实施例中网络访问控制系统示意图;

图2为本申请实施例中网络访问控制策略服务器的结构示意图;

图3为本申请实施例中实现网络访问控制的概述流程图;

图4为本申请实施例中实现网络访问控制装置的结构示意图。

具体实施方式

为了实现对虚拟机中任一应用的网络访问控制,且避免用户绕过,本申请提供了一种实现虚拟机网络访问控制的方法及装置,该方法为:截获本地的虚拟机通过本地的虚拟网卡发送的数据包,并对数据包进行解析;根据数据包的解析结果确定虚拟机中需要发起网络访问的应用程序;根据网络访问策略集合,判断是否允许应用程序访问网络,若是,继续发送数据包,否则,抛弃数据包,其中,一条网络访问策略表征一虚拟机中的一应用程序通过对应的虚拟网卡进行网络访问的权限配置信息。

下面结合附图对本申请优选的实施方式进行详细说明。

参阅图1所示,为本申请中网络访问控制系统示意图。

图1中所示的宿主机中包括两个虚拟机,分别为虚拟机1和虚拟机2,它们分别对应着虚拟网卡1和虚拟网卡2,并通过宿主机网络协议栈与网络访问控制代理(agent)建立网络访问控制关系。

网络访问控制代理接收网络访问控制策略服务器发送的针对本地所有虚拟机的网络访问策略集合。

网络访问控制策略服务器至少包括以下五个模块,参阅图2所示。

策略配置模块20提供给管理员配置策略的接口,

其中,网络访问控制策略至少包括以下元素,虚拟机名称,虚拟网卡名称,应用名称,和访问权限以及该应用的数据包格式。例如,虚拟机1,虚拟网卡1,不可访问应用1,应用1的数据包格式,可访问应用2,应用2的数据包格式等。

策略配置模块20接收到管理员配置的策略后,如发现有更新,将其存入策略数据库21,并将策略发送给策略分发模块22。

策略分发模块22通过根据虚拟机名以及虚拟网卡名查询agent信息数据库23,找到对该虚拟机网络进行控制的agent,即宿主机,并将策略下发给对应agent。

Agent管理模块24,负责监听agent的同步信号,以更新agent的状态,并将其存入agent信息数据库23。

具体的,网络访问控制策略服务器与宿主机上的网络访问控制agent上的虚拟机和虚拟网卡信息保持同步,至少包括以下三种情况:

第一,网络访问控制agent定期将当前所有虚拟机及对应的虚拟网卡信息发送至网络访问控制策略服务器。

第二,当网络访问控制agent检测到有新的虚拟网卡创建时,将新的虚拟网卡及对应的虚拟机的通知信息发送至网络访问控制策略服务器。

第三,当网络访问控制agent检测到已有的虚拟网卡删除时,将已有的虚拟网卡及对应的虚拟机的通知信息发送至网络访问控制策略服务器。

图3所示,为本申请中通过网络访问控制agent实现虚拟机网络访问控制的具体流程:

步骤300:截获本地的虚拟机通过本地的虚拟网卡发送的数据包,并对数据包进行解析。

网络访问控制agent通过本地宿主机内核截获所使用虚拟机通过虚拟网卡 发送的ip数据包。

其中。该数据包的访问控制是在宿主机上通过网络访问控制agent完成的,由于网络控制不是发生在虚拟机内部,用户无法触及到修改网络访问权限,因此具有不可绕过的特征。

步骤310:根据数据包的解析结果确定虚拟机中需要发起网络访问的应用程序。

网络访问控制agent通过虚拟网卡确定数据包来自哪一个虚拟机,并通过对数据包进行解析确定需要发起网络访问的应用程序。

例如,通过虚拟网卡标识信息确定发送ip数据包的虚拟机,并通过对数据包包头的解析结果确定该数据包是由哪个应用程序发送的网络访问。

步骤320:根据网络访问策略集合,判断是否允许应用程序访问网络,若是,继续发送数据包,否则,抛弃数据包,其中,一条网络访问策略表征一虚拟机中的一应用程序通过对应的虚拟网卡进行网络访问的权限配置信息。

具体的,根据该数据包的解析结果,包括虚拟机名称,虚拟网卡名称,和发起网络访问的应用程序名称,查询网络访问控制agent接收到的网络访问策略集合,找出与该数据包解析结果相对应的网络访问策略。

例如,该数据包的解析结果为虚拟机1,虚拟网卡1,应用1,则在网络访问策略集合中查找相应的网络访问的权限配置信息,若确定虚拟机1,虚拟网卡1,可以访问应用1,则继续发送该数据包。若确定虚拟机1,虚拟网卡1,不可以访问应用1,则抛弃该数据包。

因此,网络访问控制agent可以实现虚拟机网络访问细粒度且防绕过的控制,使得对虚拟机的网络访问控制更加灵活,也更加可控。

例如,所有对应用的网络访问必须使用虚拟机来完成。因此,虚拟机在一个网段内可以通过对网络的控制来确保这一点。另外,在云环境中,所有用户使用的都是虚拟机,这时的网络访问也必须通过虚拟机来完成。对于重要的应 用,我们可以获知它的特定数据包结构,因此可以通过在宿主机上解析这些应用发送的数据包结构来判断是否允许其进行网络访问。

以应用A为例,虚拟机通过虚拟网卡发送应用A的数据包,宿主机通过解析该数据包的数据包结构,通过查询网络访问策略可以判断其是否允许网络访问,若通过查询网络访问策略确定该应用不具网络访问权限,则抛弃该数据包,若该应用具有网络访问权限,则转发该数据包,这样一来有效实现了对重要应用的访问控制。

此外,这种对虚拟机的网络访问控制的方法还具有以下几点好处:

第一,当一个虚拟机对某些应用的访问权限发生变化时,可以很容易通过网络访问策略服务器来进行调整。

例如,虚拟机对多个应用的网络访问权限可能是不同的,也可能随着时间变化,通过网络访问控制策略服务器能够灵活地调整这些应用的网络访问权限。

第二,当虚拟机发生迁移的时候,网络的结构也不必因为访问控制发生大的变化。

第三,不需要对所要访问的应用进行任何改造。

参阅图4所示,一种实现虚拟机网络访问控制的装置,包括:

处理单元40,用于截获本地的虚拟机通过本地的虚拟网卡发送的数据包,并对数据包进行解析;

分析单元41,用于根据数据包的解析结果确定虚拟机中需要发起网络访问的应用程序;

判断单元42,用于根据网络访问策略集合,判断是否允许应用程序访问网络,若是,继续发送数据包,否则,抛弃数据包,其中,一条网络访问策略表征一虚拟机中的一应用程序通过对应的虚拟网卡进行网络访问的权限配置信息。

可选的,在截获本地的虚拟机通过本地的虚拟网卡发送的数据包之前,进 一步包括:

接收单元43,用于接收网络访问控制策略服务器下发的针对本地所有虚拟机的网络访问策略集合。

可选的,进一步包括:

同步单元44,用于定期将当前所有虚拟机及对应的虚拟网卡信息发送至网络访问控制策略服务器。

可选的,同步单元44进一步用于:

当检测到有新的虚拟网卡创建时,将新的虚拟网卡及对应的虚拟机,的通知信息发送至网络访问控制策略服务器。

可选的,同步单元44进一步用于:

当检测到已有的虚拟网卡删除时,将已有的虚拟网卡及对应的虚拟机的通知信息发送至网络访问控制策略服务器。

综上所述,本申请中提供了一种实现虚拟机网络访问控制的方法及装置,宿主机上的网络访问控制软件截获本地的虚拟机通过本地的虚拟网卡发送的数据包,并对数据包进行解析,根据数据包的解析结果确定虚拟机中需要发起网络访问的应用程序,根据接收到的网络访问策略集合,判断是否允许应用程序访问网络,若是,继续发送数据包;否则,抛弃数据包。

本申请的方法,具有细粒度,防绕过的特点,使得对虚拟机的网络访问控制更加灵活,也更加可靠。

此外,当一个虚拟机对某些应用的访问权限发生变化时,可以很容易通过网络访问控制策略服务器来进行调整,以及当虚拟机发生迁移的时候,网络的结构也不必因为访问控制发生大的变化,更不需要对所要访问的应用进行任何改造。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包 含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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