一种虚拟机联网控制方法、装置、电子设备及存储介质与流程

文档序号:21082792发布日期:2020-06-12 16:40阅读:194来源:国知局
一种虚拟机联网控制方法、装置、电子设备及存储介质与流程

本申请涉及虚拟桌面技术领域,特别涉及一种虚拟机联网控制方法、装置、电子设备及可读存储介质。



背景技术:

基于安全方面的考虑,很多企业会给其员工提供基于vdi架构的虚拟桌面办公环境取代传统的pc办公。

此类方案的一大优势是数据安全,公司很容易对基于vdi架构创建出的虚拟机进行外网访问限制,但此类外网访问限制十分“粗糙”,绝大部分只能选择完全禁止访问外网或完全允许访问外网,即现今只能做到一刀切式的联网访问控制。但由于复杂的实际情况,往往还存在某些需要频繁更新数据的应用,即存在能够仅允许特定的应用/服务能够允许访问外网(例如android开发人员所使用的androidstudio需要频繁更新sdk)的迫切实际需求。

因此,如何解决当前业界对能够实现更加精细化联网控制的vdi虚拟桌面方案的实际需求,是本领域技术人员亟待解决的问题。



技术实现要素:

本申请的目的是提供一种虚拟机联网控制方法、装置、电子设备及可读存储介质,旨在满足业界对基于vdi架构的虚拟桌面方案能够实现精细化联网控制的迫切需求。

为实现上述目的,本申请提供一种虚拟机联网控制方法,包括:

获取用户通过vdi架构创建的虚拟机发出的联网请求;

通过wfp服务确定所述联网请求的实际发出端和实际目的端;

确定是否允许由所述实际发出端向所述实际目的端发送联网请求,得到确定结果;

根据所述确定结果对所述联网请求进行相应的处理。

可选的,通过wft服务确定所述联网请求的实际发出端和实际目的端,包括:

通过所述wfp服务从所述联网请求中识别出源ip和目的域名;

将与所述源ip对应的应用确定为所述实际发出端;

利用dns解析服务解析得到与所述目的域名对应的目的ip,并将与所述目的ip对应的网站确定为所述实际目的端。

可选的,确定是否允许由所述实际发出端向所述实际目的端发送联网请求,包括:

根据vdc联网控制规则确定是否允许由所述实际发出端发出联网请求或是否允许向所述实际目的端发送联网请求。

可选的,在根据vdc联网控制规则确定是否允许由所述实际发出端发出联网请求或是否允许向所述实际目的端发送联网请求之前,还包括:

向vdc联网控制规则库上传所述虚拟机的身份标识,以使所述vdc联网控制规则库确定与所述身份标识对应的目标vdc联网控制规则,并将所述目标vdc联网控制规则下发至所述虚拟机;其中,预先记录有每种身份标识与每种vdc联网控制规则之间的对应关系;

接收所述vdc联网控制规则库下发的目标vdc联网控制规则。

可选的,确定是否允许由所述实际发出端向所述实际目的端发送联网请求,包括:

根据完全禁止规则判断所述实际发出端和所述实际目的端是否均被完全禁止联网;

若所述实际发出端和所述实际目的端均未被完全禁止联网,则根据部分禁止联网规则判断是否允许所述实际发出端与所述实际目的端进行通信;其中,所述vdc联网控制规则包括所述完全禁止规则和所述部分禁止规则;

若允许所述实际发出端与所述实际目的端进行通信,则确定允许由所述实际发出端向所述实际目的端发送联网请求;

若所述实际发出端或所述实际目的端任一被完全禁止联网或不允许所述实际发出端与所述实际目的端进行通信,则确定不允许由所述实际发出端向所述实际目的端发送联网请求。

可选的,根据所述确定结果对所述联网请求进行相应的处理,包括:

当所述确定结果为不允许由所述实际发出端向所述实际目的端发送联网请求时,拦截所述联网请求;

当所述确定结果为允许由所述实际发出端向所述实际目的端发送联网请求时,放行所述联网请求。

为实现上述目的,本申请还提供了一种虚拟机联网控制装置,包括:

联网请求获取单元,用于获取用户通过vdi架构创建的虚拟机发出的联网请求;

发起端/目的端确定单元,用于通过wfp服务确定所述联网请求的实际发出端和实际目的端;

发送允许确定单元,用于确定是否允许由所述实际发出端向所述实际目的端发送联网请求,得到确定结果;

联网请求处理单元,用于根据所述确定结果对所述联网请求进行相应的处理。

可选的,所述发起端/目的端确定单元包括:

源ip和目的域名识别子单元,用于通过所述wfp服务从所述联网请求中识别出源ip和目的域名;

实际发出端确定子单元,用于将与所述源ip对应的应用确定为所述实际发出端;

实际目的端确定子单元,用于利用dns解析服务解析得到与所述目的域名对应的目的ip,并将与所述目的ip对应的网站确定为所述实际目的端。

可选的,所述发送允许确定单元包括:

规则确定子单元,用于根据vdc联网控制规则确定是否允许由所述实际发出端发出联网请求或是否允许向所述实际目的端发送联网请求。

可选的,该虚拟机联网控制装置还包括:

身份标识上传单元,用于在根据vdc联网控制规则确定是否允许由所述实际发出端发出联网请求或是否允许向所述实际目的端发送联网请求之前,向vdc联网控制规则库上传所述虚拟机的身份标识,以使所述vdc联网控制规则库确定与所述身份标识对应的目标vdc联网控制规则,并将所述目标vdc联网控制规则下发至所述虚拟机;其中,预先记录有每种身份标识与每种vdc联网控制规则之间的对应关系;

目标规则接收单元,用于接收所述vdc联网控制规则库下发的目标vdc联网控制规则。

可选的,所述发送允许确定单元包括:

完全禁止规则判断子单元,用于根据完全禁止规则判断所述实际发出端和所述实际目的端是否均被完全禁止联网;

部分禁止规则判断子单元,用于当所述实际发出端和所述实际目的端均未被完全禁止联网时,根据部分禁止联网规则判断是否允许所述实际发出端与所述实际目的端进行通信;其中,所述vdc联网控制规则包括所述完全禁止规则和所述部分禁止规则;

允许子单元,用于当允许所述实际发出端与所述实际目的端进行通信时,确定允许由所述实际发出端向所述实际目的端发送联网请求;

不允许子单元。用于当所述实际发出端或所述实际目的端任一被完全禁止联网或不允许所述实际发出端与所述实际目的端进行通信时,确定不允许由所述实际发出端向所述实际目的端发送联网请求。

可选的,所述联网请求处理单元包括:

拦截处理子单元,用于当所述确定结果为不允许由所述实际发出端向所述实际目的端发送联网请求时,拦截所述联网请求;

放行处理子单元,用于当所述确定结果为允许由所述实际发出端向所述实际目的端发送联网请求时,放行所述联网请求。

为实现上述目的,本申请还提供了一种电子设备,包括:

存储器,用于存储虚拟机联网控制程序;

处理器,用于在执行所述虚拟机联网控制程序时实现如上述内容所描述的虚拟机联网控制方法中的各步骤。

为实现上述目的,本申请还提供了一种可读存储介质,所述可读存储介质上存储有虚拟机联网控制程序,所述虚拟机联网控制程序被处理器执行时可实现如上述内容所描述的虚拟机联网控制方法中的各步骤。

本申请提供的一种虚拟机联网控制方法包括:获取用户通过vdi架构创建的虚拟机发出的联网请求;通过wfp服务确定所述联网请求的实际发出端和实际目的端;确定是否允许由所述实际发出端向所述实际目的端发送联网请求,得到确定结果;根据所述确定结果对所述联网请求进行相应的处理。

根据本申请提供的虚拟机联网控制方法可以看出,为实现精细化的联网控制,本申请利用wtp服务从虚拟机发出的联网请求中识别出发送端和目的端,进而得以对识别出的发送端和目的端进行该联网请求是否被允许发送的判断。相较于现有技术一刀切式的联网控制方案,通过wtp提供的网络数据过滤和针对性的提取能力,能够将判断对象精确至虚拟机上安装的某个应用/服务和要取得通信的某个应用/网站/服务,实现了更加精细化的管理,得以使用户对虚拟机使用者的联网行为进行更加精确的管控,增加了安全性。

本申请同时还提供了一种虚拟机联网控制装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种虚拟机联网控制方法的流程图;

图2为本申请实施例提供的虚拟机联网控制方法中一种通过wtp服务识别得到实际发出端和实际目的端的方法的流程图;

图3为本申请实施例提供的虚拟机联网控制方法中一种使用接收到的目标vdc联网控制规则进行是否允许的判断的方法的流程图;

图4为本申请实施例提供的虚拟联网控制方法中一种判断是否允许由实际发送端向实际目的端发送联网请求的方法的流程图;

图5为本申请实施例提供的一种虚拟机联网控制装置的结构框图。

具体实施方式

本申请的目的是提供一种虚拟机联网控制方法、装置、电子设备及可读存储介质,旨在满足业界对基于vdi架构的虚拟桌面方案能够实现精细化联网控制的迫切需求。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

请参见图1,图1为本申请实施例提供的一种虚拟机联网控制方法的流程图,其包括以下步骤,下述各步骤的执行主体均未vdi架构创建的虚拟机所处的电子设备:

s101:获取用户通过vdi架构创建的虚拟机发出的联网请求;

本步骤旨在由承载该虚拟机的电子设备获取用户发出的联网请求,即该联网请求是在用户的操作下由运行在该虚拟机中的应用/服务发出的网络数据包。

vdi,英文全称virtualdesktopinfrastructure,一种虚拟桌面方案的架构。它不是给每个用户都配置一台运行windows系统的桌面pc,而是通过在数据中心的服务器运行windows系统,将桌面进行虚拟化创建为一个个虚拟机分配给所需的用户,即用户所进行的各项操作均在该虚拟机上被执行,并将执行结果的画面反馈在用户真实所使用的设备的显示屏上。

s102:通过wfp服务确定联网请求的实际发出端和实际目的端;

wfp、windowsfilterplatform,是intel为网络过滤应用开发平台提供支持的api和系统服务的集合。wfp允许开发者编写代码和操作系统的网络协议栈,网络数据可以在到达目的地之前被过滤和修改。通过提供简单的开发平台,wfp被用于取代以前的tdi(transportdriverinterface,指windowsnt操作系统中各种运输层协议与接收软件之间的接口层)过滤,ndis(networkdriverinterfacespecification,网络驱动程序接口规范)过滤,以及lsp(winsocklayeredservice),尤其是用于替代visita(指第6个版本的windows操作系统)及以后的系统火墙钩子,因为传统的过滤钩子驱动将不再适用。

在s101的基础上,本步骤旨在借助wfp服务的能力确定出联网请求的实际发出端和实际目的端,即该联网请求是用户指示哪个应用或服务向哪个应用/服务/网站发送的。

一种包括但不限于的实现方式可参见如图2所示的流程图,包括如下步骤:

s201:通过wfp服务从联网请求中识别出源ip和目的域名;

s202:将与源ip对应的应用确定为实际发出端;

s203:利用dns解析服务解析得到与目的域名对应的目的ip;

s204:将与目的ip对应的网站确定为实际目的端。

可见,如图2所示的实现方式中,实际发出端可直接基于联网请求中包含的源ip,而实际发出端的确定则还需要利用dns解析服务对目标域名进行解析,这是因为对用户而言,更广泛的是了解到目标网站的域名,而不是更准确的ip地址,例如www.baidu.com。

应当理解的是,上述例子可根据包含的源ip确定出实际发出端,即说明该实施例针对的实际发出端为某个可由ip地址指代的对象,例如某个应用对应的网站,当实际发出端实际为某项无法用ip地址描述的服务或其它对象时,可以通过注入服务名、对象名或特殊的对象识别标记来实现相同的效果。

s103:确定是否允许由实际发出端向实际目的端发送联网请求,得到确定结果;

在s102的基础上,本步骤旨在确定是否允许由实际发出端向实际目的端发送联网请求,进而得到包含是否允许的结论的确定结果。

应当理解的是,是否允许由实际发出端向实际目的端发送联网请求的目的,是为了便于后续步骤确定出应当处理如何该联网请求。结合实际情况应当理解的是,若允许由实际发出端向实际目的端发送联网请求,实际上应满足三个条件:(1)允许该实际发出端访问外网;(2)允许与该实际目的端进行通信;(3)允许被允许访问外网的该实际发出端与该实际目的端进行通信,即第三个条件能否被满足应建立在前两个条件被满足的基础上,之所以这样分布,也是因为为了实现精细化联网控制,也不能对某个应用、某个服务直接进行一刀切,也需要考虑到应禁止服务a与绝大多数外部服务之间的联网,但满足服务a与特定外部服务x之间的联网;同理,可能允许外部服务x接收虚拟机上绝大多数服务的联网请求,但应禁止其中的服务b的联网。

用于实现本步骤得到允许的判断结果的联网控制规则可以由虚拟机创建后由外部输入的联网控制参数生成,也可以考虑到企业的办公规模,以不同的虚拟机使用者的权限预先创建一个包含有与其对应的vdc联网控制权限的vdc联网控制规则库,以便在某个虚拟机被分配给某个用户时,通过使用者的身份信息从对应的vdc联网控制规则库中请求。

vdc,英文全称vitrualdatacenter,本申请在vdi环境中提供的一种充当用户权限认证、分配虚拟机、策略配置和控制访问的功能组件或独立设备。

s104:根据确定结果对联网请求进行相应的处理。

在s103的基础上,本步骤旨在根据确定结果所包含的不同结论,对联网请求进行不同的处理,以实现精细化联网控制。

具体的,当确定结果为不允许由实际发出端向实际目的端发送联网请求时,拦截联网请求;当确定结果为允许由实际发出端向实际目的端发送联网请求时,放行联网请求。

应当理解的是,若放行由实际发出端向实际目的端发送联网请求,也就意味着该联网请求将成功到达实际目的端,虚拟机也应能正常接收到来自该实际目的端返回的响应数据,即响应数据在返回途中也不应被拦截。

根据本申请提供的虚拟机联网控制方法可以看出,为实现精细化的联网控制,本申请利用wtp服务从虚拟机发出的联网请求中识别出发送端和目的端,进而得以对识别出的发送端和目的端进行该联网请求是否被允许发送的判断。相较于现有技术一刀切式的联网控制方案,通过wtp提供的网络数据过滤和针对性的提取能力,能够将判断对象精确至虚拟机上安装的某个应用/服务和要取得通信的某个应用/网站/服务,实现了更加精细化的管理,得以使用户对虚拟机使用者的联网行为进行更加精确的管控,增加了安全性。

在实施例一的基础上,本申请还针对企业大规模使用基于vdi架构的虚拟桌面方案进行办公的场景,提供了一种由该电子设备作为执行主体的获取与其虚拟机使用者对应的目的vdc联网控制规则的实现方案,请参见如图3所示的流程图,包括如下步骤:

s301:向vdc联网控制规则库上传虚拟机的身份标识;

本步骤由该电子设备向vdc联网控制规则库上传虚拟机的身份标识,以使该vdc联网控制规则库确定与身份标识对应的目标vdc联网控制规则,并将目标vdc联网控制规则下发至虚拟机。即该vdc联网控制规则库预先记录有不同身份标识与不同vdc联网控制规则之间的对应关系,该身份标识至少包含能够用于标明该用户身份或其所拥有外网访问权限的信息。

s302:接收vdc联网控制规则库下发的目标vdc联网控制规则;

s303:根据接收到的vdc联网控制规则确定是否允许由实际发出端发出联网请求或是否允许向实际目的端发送联网请求。

为加深理解具体如何判断出是否允许由实际发出端向实际目的端发送联网请求,此处还提供了一种具体的判断方案,请参见如图4所示的流程图,包括如下步骤:

s401:通过wfp服务确定联网请求的实际发出端和实际目的端;

s402:根据完全禁止规则判断实际发出端和实际目的端是否均被完全禁止联网;

其中,该完全禁止规则在本实施例中作为vdc联网控制规则中的一部分,用于描述被完全禁止访问外网一些应用/服务。

s403:根据部分禁止规则判断是否允许实际发出端与实际目的端进行通信;

其中,该部分禁止规则在本实施例中也作为vdc联网控制规则中的一部分,用于描述被部分禁止访问外网一些应用/服务/网站,即某些应用/服务被禁止与某些外网服务/应用/网站进行通信,但也被允许被另一些外网服务/应用/网站进行通信。

本步骤建立在实际发出端和实际目的端均未被完全禁止联网的基础上,说明该实际发出端至少被允许与一些外网目的端进行通信,该实际发出端至少被允许由一些运行在虚拟机上的发出端进行通信。即本步骤旨在判断该实际发出端和实际目的端各自被允许的那部分中是否存在重合。

s404:确定允许由实际发出端向实际目的端发送联网请求;

本步骤建立在s403的判断结果为确定允许实际发出端与实际目的端进行通信的基础上,因此可确定允许由实际发出端向实际目的端发送联网请求。

s405:确定不允许由实际发出端向实际目的端发送联网请求。

本步骤建立在s402的判断结果为实际发出端和实际目的端有至少一个被完全禁止联网的基础上,以及在s403的判断结果为不允许实际发出端与实际目的端进行通信的基础上,因此可确定不允许由实际发出端向实际目的端发送联网请求。

在上述实施例的基础上,通过具体由完全禁止规则和部分禁止规则组成的vdc联网控制规则的依次判断,使得通过完全禁止规则确定出实际发出端或实际目的端被完全禁止联网时,可无需进行后续判定,相比直接基于完整的联网禁止规则,通过依次使用完全禁止规则和部分禁止规则,可更快的得到不允许由实际发出端向实际目的端发送联网请求的结论,在仅有少部分被允许联网的情况下,无疑可提升整体判断效率,判断耗时更短。

因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。

下面请参见图5,图5为本申请实施例提供的一种虚拟机联网控制装置的结构框图,该装置可以包括:

联网请求获取单元100,用于获取用户通过vdi架构创建的虚拟机发出的联网请求;

发起端/目的端确定单元200,用于通过wfp服务确定联网请求的实际发出端和实际目的端;

发送允许确定单元300,用于确定是否允许由实际发出端向实际目的端发送联网请求,得到确定结果;

联网请求处理单元400,用于根据确定结果对联网请求进行相应的处理。

其中,发起端/目的端确定单元200可以包括:

源ip和目的域名识别子单元,用于通过wfp服务从联网请求中识别出源ip和目的域名;

实际发出端确定子单元,用于将与源ip对应的应用确定为实际发出端;

实际目的端确定子单元,用于利用dns解析服务解析得到与目的域名对应的目的ip,并将与目的ip对应的网站确定为实际目的端。

其中,发送允许确定单元300可以包括:

规则确定子单元,用于根据vdc联网控制规则确定是否允许由实际发出端发出联网请求或是否允许向实际目的端发送联网请求。

进一步的,该虚拟机联网控制装置还可以包括:

身份标识上传单元,用于在根据vdc联网控制规则确定是否允许由实际发出端发出联网请求或是否允许向实际目的端发送联网请求之前,向vdc联网控制规则库上传虚拟机的身份标识,以使vdc联网控制规则库确定与身份标识对应的目标vdc联网控制规则,并将目标vdc联网控制规则下发至虚拟机;其中,预先记录有每种身份标识与每种vdc联网控制规则之间的对应关系;

目标规则接收单元,用于接收vdc联网控制规则库下发的目标vdc联网控制规则。

其中,发送允许确定单元300可以包括:

完全禁止规则判断子单元,用于根据完全禁止规则判断实际发出端和实际目的端是否均被完全禁止联网;

部分禁止规则判断子单元,用于当实际发出端和实际目的端均未被完全禁止联网时,根据部分禁止联网规则判断是否允许实际发出端与实际目的端进行通信;其中,vdc联网控制规则包括完全禁止规则和部分禁止规则;

允许子单元,用于当允许实际发出端与实际目的端进行通信时,确定允许由实际发出端向实际目的端发送联网请求;

不允许子单元。用于当实际发出端或实际目的端任一被完全禁止联网或不允许实际发出端与实际目的端进行通信时,确定不允许由实际发出端向实际目的端发送联网请求。

其中,联网请求处理单元400可以包括:

拦截处理子单元,用于当确定结果为不允许由实际发出端向实际目的端发送联网请求时,拦截联网请求;

放行处理子单元,用于当确定结果为允许由实际发出端向实际目的端发送联网请求时,放行联网请求。

根据本实施例提供的对应于上述方法实施例的虚拟机联网控制装置的内容可以看出,为实现精细化的联网控制,本实施例利用wtp服务从虚拟机发出的联网请求中识别出发送端和目的端,进而得以对识别出的发送端和目的端进行该联网请求是否被允许发送的判断。相较于现有技术一刀切式的联网控制方案,通过wtp提供的网络数据过滤和针对性的提取能力,能够将判断对象精确至虚拟机上安装的某个应用/服务和要取得通信的某个应用/网站/服务,实现了更加精细化的管理,得以使用户对虚拟机使用者的联网行为进行更加精确的管控,增加了安全性。

基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有具有为虚拟机联网控制程序的计算机程序,该处理器调用该存储器中的虚拟机联网控制程序时,可以实现上述实施例所提供的步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。

本申请还提供了一种可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

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