首页> 中国专利> 基于云管理平台的虚拟机网络安全管理方法

基于云管理平台的虚拟机网络安全管理方法

摘要

本发明公开了基于云管理平台的虚拟机网络安全管理方法,包括:步骤(1):云管理平台调用OpenStack云操作系统REST API实现安全域的创建:创建自服务网络;在自服务网络上创建子网;每一个自服务网络对应一个安全域;步骤(2):云管理平台创建虚拟机,同时为虚拟机指定安全域;如果安全域中的虚拟机有添加或删除操作,则修改虚拟机所属的网络;步骤(3):设置安全域之间的访问规则;虚拟机基于访问规则进行访问。

著录项

  • 公开/公告号CN109254831A

    专利类型发明专利

  • 公开/公告日2019-01-22

    原文格式PDF

  • 申请/专利权人 山东师范大学;

    申请/专利号CN201811037214.0

  • 申请日2018-09-06

  • 分类号

  • 代理机构济南圣达知识产权代理有限公司;

  • 代理人黄海丽

  • 地址 250014 山东省济南市历下区文化东路88号

  • 入库时间 2024-02-19 06:45:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-29

    授权

    授权

  • 2019-02-22

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20180906

    实质审查的生效

  • 2019-01-22

    公开

    公开

说明书

技术领域

本发明涉及基于云管理平台的虚拟机网络安全管理方法。

背景技术

随着各行业的迅速发展,IT行业也进入了新的时代,各类软硬件技术陆续出现。虚拟化技术是指计算原件不是在真实的基础上而是在虚拟的基础上运行,虚拟化技术能够在一定程度上扩大计算机硬件的容量,简化软件的从新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内互不影响的运行,从而使得计算机的运行速度有明显的提高。在未出现虚拟化技术之前,一台物理计算机仅能够配置几个程序,大量的资源因此而得不到充分的利用,造成资源的浪费,后来出现了可以在服务器上启动虚拟机,可以实现一台服务器上多台虚拟机被同时运行,根据用户不同的需求将物理计算机中内存和硬盘等硬件资源进行划分,避免了物理资源被大量的浪费,很大程度上节约了物理资源。

虚拟机是一个完整的计算机系统,它通过模拟软件的功能而拥有了完整的硬件系统功能,可以运行在一个被隔离的独立空间中,虚拟机具有可以在一台物理计算机中模拟出多台虚拟机的特性,所被模拟出来的虚拟的计算机同真正的计算机一样,用户可以根据需要安装操作系统、安装应用程序、访问网络资源等等。对于用户来说,他只是在物理计算机上安装的一个应用程序,但是他对于在虚拟机上运行的应用程序来讲,就是一个完整的、真正的计算机。所以,当我们在虚拟机中对软件进行评测时,系统同样可能会崩溃,但是,所崩溃的并不是真正的计算机系统,而仅仅是虚拟机上的操作系统,并且,使用虚拟机的“Undo”(恢复)功能,可以马上恢复虚拟机到安装软件之前的状态。

OpenStack是最近几年被推出的一款云操作系统管理平台,并且这个平台是开源免费的应用该系统能够很方便地对服务器上的虚拟机进行管理和操作。OpenStack主要配置在云平台的各个节点中,由几个大的组件组成。它增加了一个可视化的用户操作界面,通过该可视化界面,用户能够方便地对虚拟机进行创建、管理和删除操作。当用户需要对虚拟机进行一系列的操作时,该系统中各组件会统筹兼顾,通过各类算法计算出哪一个节点可以配置用户所需要的虚拟机,很大程度上方便了用户管理,同时也推动了整个云平台的发展。该系统主要有以下几个重要的组件,第一个为Horizon组件,该组件是云操作系统的控制台,它配置了一个Web端的页面,用户可以通过该组件进行各类操作。第二个为Nova组件,该组件提供了云操作系统的计算服务,当发出请求后,系统会通过该组件各类算法,计算出虚拟机最优节点以及最佳配置,进行虚拟机的创建或删除,当虚拟机需要修改配置时,也会通过该组件进行计算。第三个为Neutron网络组件,该组件提供了系统中各台虚拟机的网络配置,为每一个虚拟机进行网络ip地址的划分或修改,创建安全区域等功能。第四个为Glance镜像组件,该组件提供了虚拟机镜像文件的存储方案,每台虚拟机都需要一个镜像文件,该组件可以管理各个镜像文件。第五个为Keystone认证组件,该组件提供了云操作系统中的各类认证机制,包括用户权限认证,虚拟机启动认证等,可以说是整个系统的通行证。目前,针对Linux系统环境下,基于云操作系统各节点启动虚拟机时存在的安全问题,尚缺乏有效的解决方案,因此,需要以Linux操作系统为基础建设安全管理方法。

发明内容

为了解决现有技术的不足,本发明提供了基于云管理平台的虚拟机网络安全管理方法;

为了实现上述目的,本发明提出如下技术方案:

基于云管理平台的虚拟机网络安全管理方法,具体包括:

步骤(1):云管理平台调用OpenStack云操作系统REST API实现安全域的创建:创建自服务网络;在自服务网络上创建子网,目的为了对网络进行进一步划分,同时可以指定IP等参数;每一个自服务网络对应一个安全域;

步骤(2):云管理平台创建虚拟机,同时为虚拟机指定安全域;如果安全域中的虚拟机有添加或删除操作,则修改虚拟机所属的网络;

步骤(3):设置安全域之间的访问规则;虚拟机基于访问规则进行访问。

进一步的,所述步骤(2)的创建虚拟机具体步骤为:

步骤(201):云管理平台向计算节点发起创建虚拟机请求,并将安全域ID传送给已经创建的虚拟机,即VXLAN ID;

步骤(202):计算节点接收创建虚拟机请求,调用OpenStack云操作系统的虚拟网络端口POST,并在network.-id参数中指定虚拟机所属安全域ID;

步骤(203):OpenStack云操作系统的nova-compute向OpenStack云操作系统的Neutron-server请求虚拟机对应的port资源;

步骤(204):OpenStack云操作系统的Neutron-server根据OpenStack云操作系统的neutron-database生成port资源,在计算节点的br-int上创建port端口,并将port端口连接到指定的安全域;每创建一个虚拟机,虚拟机所在计算节点的br-int上就会创建一个port端口,供该虚拟机连接;

步骤(205):OpenStack云操作系统自动生成接口Interface,连接新创建的虚拟机和port端口;当虚拟机连接到port端口时,虚拟机才能获得MAC地址和fixed IP地址;

步骤(206):OpenStack云操作系统的Neutron-server将虚拟机信息传输给OpenStack云操作系统的Neutron DHCP-agent;

步骤(207):OpenStack云操作系统的Neutron DHCP agent将虚拟机信息传输给OpenStack云操作系统的DHCP server;

步骤(208):虚拟机接入网络并启动;

步骤(209):虚拟机从DHCP server处获得IP地址。

虚拟机信息,例如虚拟机安全状态。

进一步的,所述步骤(2)修改虚拟机所属的网络的具体步骤为:

步骤(211):解除虚拟机绑定的端口接口port Interface,从而解除虚拟机所在原网络上的port,通过DELETE/servers/{server_id}/os-interface/{port_id}实现;

步骤(212):在新网络上的创建一个port,通POST/v2.0/ports实现,在参数中指定新网络id;

步骤(213):创建一个新的端口接口port Interface,把新创建的port连接到虚拟机上,通过POST/servers/{server_id}/os-interface实现。

进一步的,所述步骤(3)的步骤为:

在实现安全域的创建和添加/删除虚拟机后,安全域间访问控制、虚拟机间的访问控制都由iptables来实现,通过security_group_rules这组REST API来制定访问规则。

创建规则:POST/v2.0/security-groups/

删除规则:DELETE/v2.0/security-groups/{security_group_id}

通过步骤(301)-步骤(303)为虚拟机制定访问规则:

步骤(301):每个虚拟机创建时都会被分配一个port端口,port端口的参数device_id指定使用该端口的设备ID,即虚拟机ID,并自动创建interface将port连接到虚拟机上;

步骤(302):每个port端口包含若干个安全组security group,在port端口的参数security_groups中指定附加在该端口上的所有security groups;

步骤(303):每个安全组security group中包含若干条安全域规则securitygroup rule,创建安全域规则security group rule时提供安全组编号security groupID,指定安全域规则security group rule归属的安全组security group。

安全管理平台为虚拟机制定访问规则时,借助OpenStack REST API securit_group_rules,指定的参数,包括:标识id,输入端口from_port,IP协议ip_protocol,IP地址范围ip_range,输出端口to_port,其中,标识id表示当前规则所归属的securit group,ip_range中的无类域间路由选择(CIDR)指定为某个IP或某个IP地址段。

在安全域管理和虚拟网络访问规则管理的基础上,最终实现租户网络部署,虚拟机安全规则在iptables即IP表中实现;每个子网对应一个DHCP,为该子网内虚拟机自动分配IP地址。

所述创建自服务网络是通过POST/v2.0/networks创建自服务网络,即创建安全域;

所述创建子网是在自服务网络上使用POST/v2.0/subnets创建子网。

创建子网的目的是为了对网络进行进一步划分,同时可以指定IP等参数。每一个自服务网络对应一个安全域。

注:Interface(接口)、port(端口)、DHCP(Dynamic Host ConfigurationProtocol,动态主机配置协议);Nova(计算服务组件),Nova组件是云操作系统中很重要的一个组件,它提供了整个系统的计算服务。Neutorn(网络服务组件),该组件为整个云操作系统提供网路服务,网络的创建分为私有网络和公有网络,当系统接收到虚拟机创建请求命令时,该组件会创建一个虚拟交换机。在虚拟交换机中,网络划分为三种方式,如网桥模式等,当配置好虚拟机所属网络的安全区域,并为该虚拟机创建两个IP地址,一个外网IP地址和一个内网IP地址,实现虚拟机的网络结构。

计算节点上配置有安全功能层,所述安全功能层,包括:网络安全模块,所述网络安全模块,包括:网络拓扑结构查看单元、虚拟机安全状态查看单元、安全域创建或删除单元、为安全域添加或删除虚拟机单元、安全域间访问规则设置单元和虚拟机间访问规则设置单元。

进一步的,所述网络拓扑结构查看单元,用于从OpenStack云操作系统获取网络信息,例如虚拟机的ip地址,mac地址等,并进一步分析获取的网络信息,得到网络拓扑,对得到的网络拓扑进行展示。

进一步的,所述虚拟机安全状态查看单元,用于从OpenStack云操作系统获取虚拟机访问规则执行的结果,并分析判定虚拟机的安全状态;虚拟机的安全状态包括:未接入安全域、接入安全域、边界安全域、在线安全域,并用Undefined、Defined、Bound、Online来标识这四种安全状态;不同安全状态的虚拟机具有不同的访问权限。

未接入安全域:该状态下VM的网络访问受到限制,即VM不能够在访问网络,也不能通过网络被访问。有MAC地址,但没有IP。

接入安全域:可以与自身安全域内的其他虚拟机相互访问,但不具有访问域外的VM以及公共网络的功能。

边界安全域:能够与自身安全域内VM进行相互交互,与特定安全域内VM也可以交互,但不具有上网能力和对外服务功能。

在线安全域:该状态出现的VM有访问网络的需要或者对外服务的情况,该状态下的VM可以与自身安全域的VM交互,并具有上网和对外服务功能。

进一步的,所述安全域创建或删除单元,用于接收用户的创建安全域请求,并创建安全域;还用于接收用户的删除安全域请求,并删除安全域;

进一步的,所述为安全域添加或删除虚拟机单元,用于对虚拟机间的相互能否访问进行控制。

进一步的,所述安全域间访问规则设置单元,用于制定不同安全域之间的虚拟机的访问限制。

进一步的,所述虚拟机间访问规则设置单元,用于控制虚拟机之间的相互访问权限。

进一步的,所述网络安全模块,将同一物理环境中的虚拟机通过划分若干个区域的方式将每台虚拟机的网络分隔开来,每个区域成为网络安全域,每个网络安全域内的网络设置,按虚拟机的四种安全标识状态要求结果来设置访问控制策略和边界控制策略,即对网络IP地址对外界访问进行限制,通过标签进行安全域标签划分进行边界控制;处于相同安全域中的虚拟机共享一种安全策略,处于不同的安全域中的虚拟机,相互之间是无法进行访问的;

所述安全域是指:一种子网或网络,他们拥有相同的安全访问控制策略以及边界控制策略,在同一系统内有相同的安全保护需求并且相互信任,且相同的网络安全域共享一样的安全策略。

与现有技术相比,本发明的有益效果是:

通过云管理平台实现用户可视化操作界面,并且可以达到易操作、速度快的用户体验效果,该方法在云操作系统的基础上,达到了将Linux内核功能加以完善的目的,解决了很多网络问题,比如越过防火墙的数据流,或者在虚拟交换机中的数据交换,在虚拟网络中,也有恶意的虚拟机窃听程序的风险,在网络中的安全域划分,最后通过Restful Api接口使得整个虚拟机安全管理平台的设计方案更加完善与安全。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明的架构图;

图2为本发明的网络安全部署图;

图3为虚拟机端口关系;

图4为安全域增加新虚拟机;

图5为安全组规则关联图;

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

总体方案架构包括OpenStack云操作系统、云管理平台以及配置安全功能层的计算节点,各部分协同合作,完成虚拟化安全管理平台的安全运行。

本发明主要以OpenStack操作系统为基础,针对Linux系统环境下,基于云操作系统各节点启动虚拟机时存在的安全问题,针对安全功能层的网络安全配置研究,提出一种基于云操作系统平台的虚拟机网络安全方法。具体方案内容如下:

网络安全主要目的在于将每台虚拟机的网络分隔开来,同一物理环境中的虚拟机通过划分网络安全域的方法,可以进一步加强了虚拟机的安全性,处于不同的安全区域中的虚拟机,相互之间是无法进行访问的,能够让用户操作每台机器的情况时更加安全。

所谓网络安全域,就是指一种子网或网络,他们拥有相同的安全访问控制策略以及边界控制策略,在同一系统内有相同的安全保护需求并且相互信任,且相同的网络安全域共享一样的安全策略。

虚拟网络与实体网络是不同的网络,所以在虚拟的网络中很多数据的流向经常不可控制,在整个网络中,很容易出现网络安全问题,比如越过防火墙的数据流,或者在虚拟交换机中的数据交换,在虚拟网络中,也有恶意的虚拟机窃听程序的风险,所以针对以上问题,将网络进行了安全区域的划分,通过OVS虚拟交换机实现网络的访问控制。如图1所示OpenvSwitch简称OVS,正如其官网所述,OVS是一个高质量、多层的虚拟交换软件。它的目的是通过编程扩展支持大规模网络自动化,同时还支持标准的管理接口和协议。

虚拟网络安全管理提供查看当前网络拓扑结构、查看虚拟机安全状态、创建或删除安全域、为安全域添加或删除虚拟机、设置安全域间访问规则、设置虚拟机间访问规则等功能。各子功能实现原理如下:

1)查看当前网络拓扑结构

虚拟机安全管理平台的虚拟网络安全管理模块从云操作系统获取网络信息,并进一步分析获取的网络信息,得到网络拓扑,在安全管理平台展示。

2)查看虚拟机安全状态

虚拟机安全状态是一类访问规则执行的结果。安全管理平台中的虚拟网络安全管理模块从OpenStack云操作系统获取虚拟机访问规则,并分析判定虚拟机的安全状态。

虚拟机的安全状态划分为四种:未接入安全域、接入安全域、边界安全域、在线安全域,并用Undefined、Defined、Bound、Online来标识这四种安全状态。不同安全状态的虚拟机具有不同的访问权限。

3)安全域及访问规则管理

用户通过云管理平台界面发起请求,比如创建安全域,云管理平台向Web服务器发起对应的请求,应用程序与云操作系统交互,完成安全域的创建等请求。

如图2所示的是在用户态和内核态分布情况,其中,计算安全部署于物理节点的内核态和用户态,存储安全部署于物理节点的内核态和用户态,虚拟机的内核态和用户态;网络安全部署于物理节点的纯用户态。

安全域管理

在进行虚拟网络的创建的时候,云操作系统首先会将虚拟接口和虚拟网络设备,如port端口,可以将该端口理解成为虚拟网络中的网线头,在虚拟机需要与网络进行连接时,会优先通过该端口。interface也是一个虚拟的网络接口,它的URL(统一资源定位符)路径为POST/servers/{server_id}/os-interface,参数包括虚拟机id,port id(可选),netid(可选)等,其中的参数值是该端口所连接的虚拟机id等相关信息。在创建port时,使用POST/v2.0/ports,参数包括network id(网络id),security group(可选),device id服务id(可选)等。虚拟机、Interface、port、安全域关系如图3所示。

创建安全域:

登录安全管理平台后,调用云操作系统REST API实现安全域的创建。通过POST/v2.0/networks创建自服务网络,进而在自服务网络上使用POST/v2.0/subnets创建子网,同时可以指定IP等参数。每一个自服务网络对应一个安全域。为安全域添加/删除虚拟机:

1)创建虚拟机时指定安全域

在创建网络结束后,管理员登录安全管理平台创建新的虚拟机,同时将其加入指定安全域,只需要在发起请求的同时,指定虚拟机所在的安全域,即VXLANID,流程设计如图4所示。

a)管理员登录安全管理平台,通过浏览器发起创建虚拟机请求,并传送VXLAN ID。

b)服务器接收到浏览器传送来的请求,执行对应的应用程序,进而调用云操作系统的POST/servers,并在network.id参数中指定所属网络ID。

c)nova-compute向Neutron-server请求虚拟机对应的port资源。

d)Neutron-server根据neutron-database生成port资源,此时便会在该计算节点的br-int上创建这个port,并将port连接到指定的VXLAN。每创建一个虚拟机,所在计算节点的br-int上就会创建一个port端口,供该虚拟机连接。

e)自动生成Interface,连接新创建的虚拟机和port端口。当虚拟机连接到该port端口时,虚拟机才能获得MAC和fixed IP地址。

f)Neutron-server通知DHCP agent虚拟机信息。

g)DHCP agent将虚拟机信息通知给DHCP,server。

h)虚拟机接入并启动。

i)虚拟机从dhcp server处获得IP地址。

2)修改虚拟机所属安全域

为了完成安全域中虚拟机的添加和删除操作,需要更新虚拟机所属的网络,具体如下:

解除虚拟机绑定的port Interface,从而解除虚拟机所在原网络上的port,通过DELETE/servers/{server_id}/os-interface/{port_id}实现。

在新网络上的创建一个port,通POST/v2.0/ports实现,在参数中指定新网络id。

创建一个新的port Interface,把新创建的port连接到虚拟机上,通过POST/servers/{server_id}/os-interface实现。

虚拟网络访问规则管理

在实现安全域的创建和添加/删除虚拟机后,安全域间访问控制、虚拟机间的访问控制都由iptables来实现,通过security_group_rules这组REST API来制定访问规则。

创建规则:POST/v2.0/security-groups/

删除规则:DELETE/v2.0/security-groups/{security_group_id}

步骤(301)-步骤(303)涉及虚拟机、port、security group、security grouprule,四者关系如图5所示。注:security group为安全组,security group rule为安全组规则,security group ID为安全组ID。

具体指定如下:

步骤(301)每个虚拟机创建时都会分配一个port端口,port端口的参数device_id会指定使用该端口的设备ID,即虚拟机ID,并自动创建interface将port连接到虚拟机上。

步骤(302)每个port端口可能包含多个security group,同样是在port端口的参数security_groups中指定附加在该端口上的所有security groups;

步骤(303)一个security group中可以包含多条security group rule创建security grouprule时需提供security groupID这个参数,指定其归属的securitygroup。

安全管理平台为虚拟机制定访问规则时,需要借助OpenStack REST APIsecurit_group_rules,需要指定的参数包括id、from_port、ip_protocol、ip_range、to_port,其中,id指明了该规则所归属的securit group,ip_range中的cidr可以指定为某个IP,也可以是某个IP地址段。

在安全域管理和虚拟网络访问规则管理的基础上,最终实现租户网络部署,虚拟机安全规则在iptables中实现;每个子网对应一个DHCP,为该子网内虚拟机自动分配IP地址。

该网络管理模块界面主要展示各台虚拟机的网络配置情况,可以在界面中查看整个网络拓扑图,以及每台虚拟机的ip地址分配情况,当需要对某一台虚拟机的网络进行设置的时候,我们可以在虚拟机列表中选中,通过表格设置该虚拟机的网络状况,包括ip地址的静态与动态划分,安全域的选择,设置完毕以后,数据会记录到数据库中,方便后期管理员的查看与操作。

以下为网络功能模块的测试用例图,表1为网络安全服务测试用例,具体数据如下

表1网络安全服务测试用例

通过对虚拟化技术以及云操作系统的深入研究,发现并找到了目前云操作系统中的安全问题,并针对这些问题设计解决方案,针对性的提出了网络安全管理办法,提高了虚拟机的安全性,为虚拟化技术的发展提供了强有力的保障。

在进行虚拟网络的创建时,云操作系统首先会将虚拟接口和虚拟网络设备创建出来,如port端口,可以将该端口理解成为虚拟网络中的网线头,在虚拟机需要与网络进行连接时,会优先通过该端口。interface也是一个虚拟的网络接口,它的url路径为POST/servers/{server_id}/os-interface,参数包括虚拟机id,port id(可选),net id(可选)等,其中的参数值是该端口所连接的虚拟机id等相关信息。在创建port时,使用POST/v2.0/ports,参数包括network id(网络ID),security group(安全组可选),device id(可选)等。虚拟机、Interface(接口)、port(端口)、安全域关系如图3所示。

本发明公开了一种基于云管理平台的虚拟机网络安全管理方案,虚拟网络安全管理的实现需要通过调用云操作系统的REST API,这个实现存在两个难点,一是后台与云操作系统的对接,且需要仅从安全管理平台配置网络,二是通过一个简洁直观的虚拟网络操作界面实现网络管理,本发明的创新点是虚拟网络的安全隔离与防护已经不能通过已有的传统的安全防护手段来实现,因此在虚拟网络中存在着安全问题。本发明提出安全域的概念,建立清晰的虚拟网络边界,并通过安全域间的访问控制实现虚拟网络的安全隔离与防护。更好的实现网络安全。将网络安全功能模块嵌入到云操作系统中,是整个虚拟机安全管理平台的重点创新。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号