一种基于Openflow对用户访问虚拟机进行控制的方法

文档序号:9618727阅读:200来源:国知局
一种基于Openflow对用户访问虚拟机进行控制的方法【
技术领域
】[0001]本发明涉及云计算安全
技术领域
,特别是一种基于Openflow对用户访问虚拟机进行控制的方法。【
背景技术
】[0002]随着云计算模式的流行,许多机构希望建设私有云,私有云的建设无疑为IT部门带来了诸多好处,如可以实现信息资源的集中管理、IT基础设施能够得到更高效的利用等。但是在带来这些优点的同时,由于私有云会对网络架构进行一些调整,因此也会产生一些新的问题,主要体现在以下几点:[0003]1)多样化的接入设备(如BY0D)带来了私有云遭受攻击的可能性。在传统的内网环境中,终端可以通过一系列手段进行控制,以确保终端环境安全可靠。但是在切换成私有云之后,由于接入设备多种多样,传统的技术手段无法完全兼容,甚至有些BY0D设备会存在病毒、木马或已经被黑客渗透成为跳板,从而对私有云造成威胁。这类攻击在方法上与传统的网络入侵相类似,但是相对规模很小,如果使用独立的防御设备(如IDS/IPS/DDoS防范等),难以找到防御成本与效果的平衡。[0004]Openflow是一种将网络设备的数据平面(Data-Panel)和控制平面(ControlPanel)相分离的技术,使用逻辑上的控制器(Controller)对整个网络进行管理,提高了网络管理的灵活性,降低了网络维护的复杂度。Openflow是SDN(SoftwareDefinedNetwork,软件定义网络)的代表技术之一,甚至在一定程度上被认为与SDN技术等价,Openflow和SDN技术被建议在未来的企业私有云和云平台的建设中米用,来优化云内部的虚拟网络。【
发明内容】[0005]本发明解决的技术问题在于提供一种基于Openflow对用户访问虚拟机进行控制的方法;防御成本和效果比较均衡,解决传统攻击防御方案中在云计算环境中需要使用昂贵硬件、无法满足多样化接入设备攻击的问题。[0006]本发明解决上述技术问题的技术方案是:[0007]所述的方法包括以下步骤:[0008]步骤1:在每一台运行虚拟机的物理服务器上部署虚拟交换机Openvswitch(0VS);[0009]步骤2:用户从访问终端发出访问请求被提交到运行所访问的虚拟机的物理服务器中运行的0VS上;[0010]步骤3:0VS将无法找到从源地址(访问终端)到目的地址(虚拟服务机)的流,向控制器发出PACKET-1N事件信号;[0011]步骤4:控制器查询访问控制白名单,确认这次访问是否符合预设的规则;[0012]步骤5:如果访问合规,则生成相应的流,并下发到对应的0VS上;如果访问不合规,则直接丢弃这次访问请求。[0013]所述控制器用于对各虚拟交换机进行管理,可以在控制器上为其管理的0VS交换机远程添加/删除/修改流。[0014]所述流是0VS交换机上FlowTable流表中的一条转发规则,进入0VS交换机的数据包通过查询流表来获得转发的目的端口;流由头域、计数器和操作组成;其中头域是个十元组,是流的标识;计数器用来计算流的统计数据;操作标明了与该流匹配的数据包应该执行的操作。[0015]所述白名单是一个包含被允许转发的源地址/目的地址对的列表;源地址是访问终端的网卡的MAC地址,目的地址是被访问虚拟机的网卡的MAC地址;包含该源地址/目的地址对的数据包将被0VS交换机转发,源地址的访问终端就能访问到目的地址的虚拟机。[0016]本发明的方法能产生如下的有益效果:[0017]1、本发明的方法全部使用软件Openflow实现,避免传统防御方法使用昂贵的安全设备,是一种经济的访问控制方法;[0018]2、本发明的方法能对多种接入终端同时进行访问控制,是一种适应性较强的方法;[0019]3、本发明的方法实现具有白名单特征的方法,可以有效防止访问终端绕过访问规则对虚拟机进行访问。[0020]本发明针对私有云的网络特点,结合Openflow技术实现具有白名单特征的访问隔离,解决传统攻击防御方案中在云计算环境中需要使用昂贵硬件、无法满足多样化接入设备攻击的问题,是一种防御成本和效果比较均衡的方法。【附图说明】[0021]下面结合附图对本发明进一步说明:[0022]图1为本发明的网络部署结构图;[0023]图2为本发明的流程图。【具体实施方式】[0024]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0025]首先按照图1、2所示进行物理服务器、虚拟机和0VS交换机的部署。[0026]在控制器中植入如下的白名单:[0027]00:0c:29:a8:9c:6c#5e:8b:22:89:88:2a[0028]5e:8b:22:89:88:2a#00:0c:29:a8:9c:6c[0029]00:0e:c6:f0:06:51#00:0c:29:a8:9c:6c[0030]00:0c:29:a8:9c:6c#00:0e:c6:f0:06:51[0031]5e:8b:22:89:88:2a#00:0e:c6:f0:06:51[0032]00:0e:c6:f0:06:51#5e:8b:22:89:88:2a[0033]00:11:22:33:44:55#00:11:22:33:44:66[0034]00:11:22:33:44:55#00:0e:c6:f0:06:51[0035]上述白名单的源地址/目标地址对以#号隔开,同时相同源地址的访问终端可以访问多个目的地址的虚拟机,相同目的地址的虚拟机也可以被多个源地址的访问终端访问。[0036]在外部终端访问虚拟机时,首先匹配终端的MAC地址和虚拟机的MAC地址,如果在白名单中时,按照下述方法分发到虚拟机所在的物理服务器的0VS上[0037]$ovs-ofctladd-flowovs-switch"table=0,dl_src=00:0c:29:a8:9c:6c,dl—dst=5e:8b:22:89:88:2a,act1ns=accept"[0038]$ovs-ofctladd-flowovs-switch"table=0,dl_src=5e:8b:22:89:88:2a,dl—dst=00:0c:29:a8:9c:6c,act1ns=accept"[0039]$ovs-ofctladd-flowovs-switch"table=0,dl_src=00:0e:c6:f0:06:51,dl—dst=00:0c:29:a8:9c:6c,act1ns=accept"[0040]$ovs-ofctladd-flowovs-switch"table=0,dl_src=00:0c:29:a8:9c:6c,dl—dst=00:0e:c6:f0:06:51,act1ns=accept"[0041]$ovs-ofctladd-flowovs-switch"table=0,dl_src=5e:8b:22:89:88:2a,dl—dst=00:0e:c6:f0:06:51,act1ns=accept"[0042]$ovs-ofctladd-flowovs-switch"table=0,dl_src=00:0e:c6:f0:06:51,dl—dst=5e:8b:22:89:88:2a,act1ns=accept"[0043]$ovs-ofctladd-flowovs-switch"table=0,dl_src=00:11:22:33:44:55,dl—dst=00:11:22:33:44:66,act1ns=accept"[0044]$ovs-ofctladd-flowovs-switch"table=0,dl_src=00:11:22:33:44:55,dl—dst=00:0e:c6:f0:06:51,act1ns=accept"[0045]若不在则拒绝该次请求,并返回以下的提示[0046]INFO:of—sw—tutorial—00:—NO00:0e:c6:f0:06:51-------->00:11:22:33:44:66matched._[0047]INFO:of—sw—tutorial—00:—NO00:0e:c6:f0:06:51-------->00:11:22:33:44:66matched._[0048]root@ubuntu-ovs:?#ovs-ofctldump-flowsovsbrO[0049]NXST_FL0ffreply(xid=0x4):[0050]cookie=0x0,durat1n=19.905s,table=0,n—packets=2281,n—bytes=138518,idle—timeout=10,hard—timeout=30,dl—src=00:0e:c6:f0:06:51,dl—dst=8e:38:6d:53:99:40act1ns=output:2[0051]cookie=0x0,durat1n=19.905s,table=0,n—packets=727,n—bytes=5903946,idle—timeout=10,hard—timeout=30,dl—src=8e:38:6d:53:99:40,dl—dst=00:0e:c6:f0:06:51act1ns=output:10【主权项】1.一种基于Openflow对用户访问虚拟机进行控制的方法,其特征在于,所述的方法包括以下步骤:步骤1:在每一台运行虚拟机的物理服务器上部署虚拟交换机Openvswitch(OVS);步骤2:用户从访问终端发出访问请求被提交到运行所访问的虚拟机的物理服务器中运行的0VS上;步骤3:0VS将无法找到从源地址(访问终端)到目的地址(虚拟服务机)的流,向控制器发出PACKET-1N事件信号;步骤4:控制器查询访问控制白名单,确认这次访问是否符合预设的规则;步骤5:如果访问合规,则生成相应的流,并下发到对应的0VS上;如果访问不合规,则直接丢弃这次访问请求。2.根据权利要求1所述的方法,其特征在于:所述控制器用于对各虚拟交换机进行管理,可以在控制器上为其管理的0VS交换机远程添加/删除/修改流。3.根据权利要求1所述的方法,其特征在于,所述流是0VS交换机上FlowTable流表中的一条转发规则,进入0VS交换机的数据包通过查询流表来获得转发的目的端口;流由头域、计数器和操作组成;其中头域是个十元组,是流的标识;计数器用来计算流的统计数据;操作标明了与该流匹配的数据包应该执行的操作。4.根据权利要求2所述的方法,其特征在于,所述流是0VS交换机上FlowTable流表中的一条转发规则,进入0VS交换机的数据包通过查询流表来获得转发的目的端口;流由头域、计数器和操作组成;其中头域是个十元组,是流的标识;计数器用来计算流的统计数据;操作标明了与该流匹配的数据包应该执行的操作。5.根据权利要求1至4任一项所述的方法,其特征在于,所述白名单是一个包含被允许转发的源地址/目的地址对的列表;源地址是访问终端的网卡的MAC地址,目的地址是被访问虚拟机的网卡的MAC地址;包含该源地址/目的地址对的数据包将被0VS交换机转发,源地址的访问终端就能访问到目的地址的虚拟机。【专利摘要】本发明涉及云计算安全
技术领域
,特别是一种基于Openflow对用户访问虚拟机进行控制的方法。本发明首先在每一台运行虚拟机的物理服务器上部署虚拟交换机Openvswitch(OVS);然后用户从访问终端发出访问请求被提交到运行所访问的虚拟机的物理服务器中运行的OVS上;然后OVS将中无法找到从源地址(访问终端)到目的地址(虚拟服务机)的流,于是向控制器发出PACKET-IN事件信号;然后控制器查询访问控制白名单,确认这次访问是否符合预设的规则;最后如果访问合规,则生成相应的流,并下发到对应的OVS上;如果访问不合规,则直接丢弃这次访问请求。本发明解决;俄传统攻击防御方案中在云计算环境中需要使用昂贵硬件、无法满足多样化接入设备攻击的问题,可以用于虚拟机的访问控制。【IPC分类】H04L29/06,G06F9/455【公开号】CN105376256【申请号】CN201510901792【发明人】莫展鹏,杨松,季统凯【申请人】国云科技股份有限公司【公开日】2016年3月2日【申请日】2015年12月8日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1