一种虚拟机安全隔离方法

文档序号:7822046阅读:6163来源:国知局
一种虚拟机安全隔离方法【专利摘要】本发明涉及云计算【
技术领域
】,特别是一种虚拟机安全隔离方法。本发明先把整个平台被划分成一个或多个集群,每个集群分配一个大的子网;接着在所有宿主机上建立一组默认的防火墙规则,默认隔离与其他子网之间的通信;当用户向云平台提交创建虚拟机请求时,云平台自动给用户分配到某个大集群,并在此大集群所属的大子网下给该用户建立一个子网;同时,把虚拟机的虚拟网络接口加入到默认的防火墙规则下实现隔离的约束;当该用户再次创建虚拟机时,虚拟机的IP地址设置成同个集群内的同个子网,同时也把虚拟机的虚拟网络接口加入到默认的防火墙规则下;再将MAC地址与IP地址绑定。本发明避免了虚拟机之间相互攻击;可以用于虚拟机的安全隔离。【专利说明】一种虚拟机安全隔离方法【
技术领域
】[0001]本发明涉及云计算【
技术领域
】,特别是一种虚拟机安全隔离方法。【
背景技术
】[0002]在云平台内部运行着由不同用户控制的虚拟机,用户在虚拟机内部的行为通常都难以控制。尤其在公有云内部,用户使用虚拟机运行不同的业务;不同用户的虚拟机之间必须要采取安全的隔离措施以避免在云平台内部的相互攻击;以保证云平台的网络安全和用户业务的正常运行。通常要隔离属于不同用户的主机之间的访问采取VLAN隔离的办法,虚拟机之间的隔离一般都结合这种方法,步骤如下:[0003]1、先把内网的地址划分成多个VLAN;[0004]2、把不同的VLAN分配给不同的用户;[0005]3、一个用户创建虚拟机以后,把虚拟机的IP地址分配成属于相应的VLAN;[0006]4、通过设置VLAN之间的相互隔离来达到用户之间虚拟机相互隔离的目的。[0007]但是,这种方法存在以下弊端:[0008]1、用户都使用相同大小的VLAN,如果用户少创建或不创建虚拟机,就造成内网IP地址的浪费;如果用户创建虚拟机较多,一个VLAN的地址又可能不足够,限制了用户创建虚拟机的规模。[0009]2、IP地址使用无法监管,容易造成IP地址冲突;由于用户可以在虚拟机内部手动设置IP地址,设置的地址不同于原分配地址时会出现两种情况;第一是设置的IP地址刚好属于同一个VLAN,这时候无法检测到新设置的IP地址已经被使用,平台再分配此IP地址时就会造成冲突。第二是设置的IP地址不属于同一个VLAN,这时候虚拟机的网络连接是无效的,不能进行任何网络通信。【
发明内容】[0010]本发明解决的技术问题在于提供一种虚拟机安全隔离方法,可管理和监控子网的管理,解决了虚拟机之间相互攻击,网络管理混乱等相关问题。[0011]本发明解决上述技术问题的技术方案是:[0012]所述的方法包括如下步骤:[0013]步骤1:将云平台的宿主物理机根据逻辑上的需求,把一台或多台划分到一个集群上,整个平台被划分成一个或多个集群,每个集群分配一个大的子网;[0014]步骤2:在所有宿主机上建立一组默认的防火墙规则,默认隔离与其他子网之间的通信;[0015]步骤3:当用户向云平台提交创建虚拟机请求时,云平台自动给用户分配到某个集群,并在此集群所属的大子网下给该用户建立一个子网;同时,将虚拟机的虚拟网络接口加入到默认的防火墙规则下实现隔离的约束;[0016]步骤4:当该用户再次创建虚拟机时,虚拟机的IP地址设置成同个集群内的同个子网,同时也将虚拟机的虚拟网络接口加入到默认的防火墙规则下;[0017]步骤5:当已有子网资源使用完后、再次创建虚拟机时,云平台为该用户新增子网,同时以旧的防火墙规则为基础新建一组防火墙规则,允许旧的子网与新的子网之间进行通信;[0018]步骤6:将创建虚拟机的MAC地址与IP地址之间的绑定,防止用户修改IP。[0019]所述的步骤2中子网默认隔离是指不同的子网不在同一个冲突域,相互是不能通讯。[0020]当用户创建虚拟机,平台给虚拟机自动选择用户所属的子网的IP,并且设置IP自动获取。[0021]如果用户在虚拟机里重新设置其他IP,该IP不能通讯,以确保不会对网络有任何的影响。[0022]本发明方案的有益效果如下:[0023]1、本发明的方法的子网在用户创建虚拟机时才创建,并且子网的范围可以通过修改掩码的方式进行调整,云平台可根据用户创建虚拟机的量随时进行调整,避免内网IP地址的浪费。[0024]2、本发明的方法可结合MAC地址与IP地址的绑定避免用户修改IP地址后造成的网络混乱,即便用户成功修改其他IP地址,也能阻断其通信,防止IP地址冲突。【专利附图】【附图说明】[0025]下面结合附图对本发明进一步说明:[0026]图1为本发明的流程图;[0027]图2为本发明的模型架构图;【具体实施方式】[0028]见图1、2所示,本发明具体实施过程如下:[0029]1、宿主机划分集群,并且集群分配一个大的子网。[0030]比如划分给集群A—个大的子网10.0.0.0/16,通常给在云平台给集群分配大的子网采用配置文件的方式。[0031]VNET_SUBNET=10.0.0.0[0032]VNET_NETMASK=255.255.0.0[0033]2、平台给用户分配一个大子网下的子网,并且不同子网默认是隔离的。[0034]通过配置的方式设置大子网下小子网的数量,方式如下:[0035]SUBNET_SIZES=255[0036]假如给集群分配的大子网为10.0.0.0/16,小子网的数量为255,那么为某个用户分配的子网可能为10.99.0.0/16[0037]宿主节点执行下面命令[0038]#brctladdbrbr99[0039]#iplinkaddlinkethlvlan99typevlanid99[0040]#iplinksetvlan99up[0041]#brctladdifbr99vlan99[0042]#ipaddradd10.99.0.1/32devbr99[0043]创建虚拟机后,为其加载默认的防火墙规则,这里以iptables的规则为例[0044]Chaini_5B9B3BCF—out(Ireferences)[0045]numtargetprotoptsourcedestinat1n[0046]IACCEPTall—0.0.0.0/00.0.0.0/0[0047]Chaini_5B9B3BCF—in(Ireferences)[0048]numtargetprotoptsourcedestinat1n[0049]IACCEPTall—10.251.255.176/280.0.0.0/0[0050]2ACCEPTtcp—0.0.0.0/00.0.0.0/0[0051]tcpspt:22[0052]3ACCEPTtcp—0.0.0.0/00.0.0.0/0[0053]tcpdpt:22[0054]4DROPall—0.0.0.0/00.0.0.0/0[0055]3、当该用户再次创建虚拟机时,虚拟机的IP地址设置成同个集群内的同个子网。设置ip采用dnsmasq来设置ip,设置方式如下,在宿主机执行下面命令:[0056]#/usr/sbin/dnsmasq—strict-order—bind-1nterfaces—conf-file=[0057]—domain=local—pid-file=/var/run/setip11,pid[0058]—listen-address=10.99.0.1—interfaceeucabrll—except-1nterface=1[0059]—dhcp-range=10.99.0.1,static,120s—dhcp-lease-max=256[0060]—dhcp-opt1n=10.99.0.1—dhcp-opt1n=6,8.8.8.8[0061]—dhcp-hostsgile=/etc/network,conf[0062]—dhcp-script=/usr/share/gTunnel/update2db.py—leasefile-ro[0063]在/etc/network,conf配置虚拟机的子网ip,例如下面:[0064]#cat/etc/network,conf[0065]52:54:0:25:8c:16,tesr.rt,10.99.3.44[0066]4、当已有子网资源使用完后,再次创建时,云平台为该用户新增子网,同时以旧的防火墙规则为基础新建一组防火墙规则,允许旧的子网与新的子网之间进行通信:[0067]Chaini_5B9B3BCF—out(Ireferences)[0068]numtargetprotoptsourcedestinat1n[0069]IACCEPTall—0.0.0.0/00.0.0.0/0[0070]Chaini_5B9B3BCF—in(Ireferences)[0071]numtargetprotoptsourcedestinat1n[0072]IACCEPTall—10.251.255.176/280.0.0.0/0[0073]2ACCEPTtcp—0.0.0.0/00.0.0.0/0[0074]tcpspt:22[0075]3ACCEPTtcp—0.0.0.0/00.0.0.0/0[0076]tcpdpt:22[0077]4ACCEPTall—10.251.255.240/280.0.0.0/0[0078]5DROPall—0.0.0.0/00.0.0.0/0[0079]5、创建虚拟机的MAC地址与IP地址之间的绑定,防止用户修改IP。具体实现方式在宿主机上执行以下命令:[0080]#ebtables-tnat_Nlibvirt-1-vnet9[0081]#ebtables-tnat_N1-vnet9_mac[0082]#ebtables-tnat_N1-vnet9_ipv4_ip[0083]#ebtables-tnat_APREROUTIN出_ivnet9_jlibvirt-1-vnet9[0084]#ebtables-tnat_Alibvirt-1-vnet9-j1-vnet9_mac[0085]#ebtables-tnat_A1-vnet9-mac_s52:54:0:25:8c:16_jRETURN[0086]#ebtables-tnat_A1-vnet9_mac-jDROP[0087]#ebtables-tnat_Alibvirt-1-vnet9-pIPv4-j1-vnet9_ipv4_ip[0088]#ebtables-tnat_A1-vnet9-1pv4-1p-pIPv4—ip-src0.0.0.0—ip-protoudp-jRETURN[0089]#ebtables-tnat_A1-vnet9-1pv4-1p-pIPv4—ip-src10.99.3.44-jRETURN[0090]#ebtables-tnat_A1-vnet9-1pv4-1p-jDROP。【权利要求】1.一种虚拟机安全隔离方法,其特征在于:所述的方法包括如下步骤:步骤1:将云平台的宿主物理机根据逻辑上的需求,把一台或多台划分到一个集群上,整个平台被划分成一个或多个集群,每个集群分配一个大的子网;步骤2:在所有宿主机上建立一组默认的防火墙规则,默认隔离与其他子网之间的通Is;步骤3:当用户向云平台提交创建虚拟机请求时,云平台自动给用户分配到某个集群,并在此集群所属的大子网下给该用户建立一个子网;同时,将虚拟机的虚拟网络接口加入到默认的防火墙规则下实现隔离的约束;步骤4:当该用户再次创建虚拟机时,虚拟机的IP地址设置成同个集群内的同个子网,同时也将虚拟机的虚拟网络接口加入到默认的防火墙规则下;步骤5:当已有子网资源使用完后、再次创建虚拟机时,云平台为该用户新增子网,同时以旧的防火墙规则为基础新建一组防火墙规则,允许旧的子网与新的子网之间进行通Is;步骤6:将创建虚拟机的MAC地址与IP地址之间的绑定,防止用户修改IP。2.根据权利要求1所述的虚拟机安全隔离方法,其特征在于:所述的步骤2中子网默认隔离是指不同的子网不在同一个冲突域,相互是不能通讯。3.根据权利要求1所述的虚拟机安全隔离方法,其特征在于:当用户创建虚拟机,平台给虚拟机自动选择用户所属的子网的IP,并且设置IP自动获取。4.根据权利要求2所述的虚拟机安全隔离方法,其特征在于:当用户创建虚拟机,平台给虚拟机自动选择用户所属的子网的IP,并且设置IP自动获取。5.根据权利要求1至4任一项所述的虚拟机安全隔离方法,其特征在于:如果用户在虚拟机里重新设置其他IP,该IP不能通讯,以确保不会对网络有任何的影响。【文档编号】H04L29/06GK104468568SQ201410737305【公开日】2015年3月25日申请日期:2014年12月5日优先权日:2014年12月5日【发明者】张瑜科,杨松,莫展鹏,季统凯申请人:国云科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1