宿主机与虚拟机文件系统隔离方法和装置制造方法及图纸

技术编号:9694953 阅读:158 留言:0更新日期:2014-02-21 01:32
本发明专利技术提供了一种宿主机与虚拟机文件系统隔离方法和装置,宿主机采用fuse机制虚拟一个虚拟proc文件系统,将所述虚拟proc文件系统挂载到临时目录中;宿主机在所述虚拟proc文件系统注册目标指定文件的回调函数;宿主机将proc文件系统挂载到虚拟机的rootfs中;宿主机将所述虚拟proc文件系统中的目标指定文件与所述proc文件系统中的源指定文件绑定;宿主机调用open指令打开所述源指定文件,Linux系统中,宿主机所打开使用的源指定文件,虚拟机不能进行删除和卸载,虚拟机无法执行umount解除所述目标指定文件与的源指定文件的绑定,实现了对宿主机的proc系统文件的有效隔离。

【技术实现步骤摘要】
宿主机与虚拟机文件系统隔离方法和装置
本专利技术涉及计算机
,特别是涉及宿主机与虚拟机文件系统隔离方法和装置。
技术介绍
Linux container (lxc)中运行虚拟机时,将宿主机的proc文件系统直接挂载到虚拟机的根文件系统中。虚拟机与宿主机使用同一个proc文件系统,proc文件系统中与宿主机与虚拟机对应的文件,除进程文件外,其他的文件都完全相同,并且,虚拟机与宿主机对proc文件系统中的所有文件的权限相同。因此,虚拟机可以对proc文件系统进行读写操作,会造成宿主机信息泄露或内核崩溃等问题。例如,在虚拟机中使用top命令查看/proc/stat文件时,不仅可以查看虚拟机CPU的使用情况,也可以查看到宿主机的CPU使用情况;在虚拟机中向/proc/sysrq-1rq文件中写入字符c时,会使导致宿主机的内核崩溃,整个系统无法运行。为了解决宿主机中信息泄露的问题,虚拟机将宿主机的proc文件系统挂载到临时目录下,例如:tmp/proc,再由虚拟机使用fuse机制虚拟一个虚拟proc文件系统,执行mount-bind/tmp/proc/proc,使用虚拟proc文件系统替换宿主机proc文件系统。当虚拟机执行top命令时,读取proc文件中的tmp/proc/stat文件时,由于proc文件与虚拟proc文件绑定,因此,读取的是fuse机制虚拟出的proc文件系统。但是,采用fuse机制虚拟一个虚拟proc文件,以及用虚拟proc文件系统替换宿主机proc文件系统的命令需要在虚拟机的启动脚本中执行,而虚拟机的启动脚本可以被虚拟机的用户查看,用户可以对虚拟文件系统实行反向操作(例如:mount-bind的反向操作为umount),即可解除宿主机proc文件系统与虚拟proc文件系统的绑定,解除后再使用top命令仍可以获取宿主机的信息,安全性差。为了解决宿主机内核崩溃的问题,采用Linux系统中的Application Armor模块,Application Armor模块是Linux系统内核中的一个安全模块,可以将每个程序与一个安全配置文件关联,从而限制程序的功能。可以通过Application Armor模块限制虚拟机对/proc/sysrq-1rq文件的操作权限,使得虚拟机无法对/proc/sysrq-1rq文件进行写操作。但是,Application Armor模块只能在Linux2.6.36以后的版本中才能使用,现有主流的Linux2.6.32版本中无法使用。可见,上述两种方式都不能很好的实现宿主机与虚拟机之间的有效隔离。
技术实现思路
有鉴于此,本专利技术提供了一种宿主机与虚拟机文件系统隔离方法和装置,宿主机虚拟一个虚拟proc文件系统,将虚拟proc文件系统中的目标指定文件与虚拟机中挂载的proc文件系统的源指定文件绑定,打开源指定文件,防止对绑定的反向操作,并可以应用于所有版本的Iinux系统中。—种宿主机与虚拟机文件系统隔离方法,所述方法包括:宿主机采用fuse机制虚拟一个虚拟proc文件系统,将所述虚拟proc文件系统挂载到临时目录中;宿主机在所述虚拟proc文件系统注册目标指定文件的回调函数,所述回调函数用于处理虚拟机的数据信息;宿主机将proc文件系统挂载到虚拟机的rootfs中;宿主机将所述虚拟proc文件系统中的目标指定文件与所述proc文件系统中的源指定文件绑定,所述绑定的目标指定文件与源指定文件的文件名相同;宿主机调用open指令打开所述源指定文件。可选的,所述目标指定文件包括:目标stat文件、目标meminfo文件和目标sysrq-1rq文件。可选的,所述宿主机在所述虚拟proc文件系统注册目标指定文件的回调函数包括:所述宿主机在所述虚拟proc文件系统中注册目标stat文件的open、read和write函数,所述open、read和write函数用于打开、读取和写入虚拟机的CPU使用数据;所述宿主机在所述虚拟proc文件系统中注册目标meminfo文件的open、read和write函数,所述open、read和write函数用于打开、读取和写入虚拟机内存以及交换分区的使用数据;所述宿主机在所述虚拟proc文件系统中注册目标sysrq-1rq文件的open、read和write函数,所述open、read和write函数用于打开、读取和写入目标sysrq-1rq文件的数据。可选的,宿主机将所述虚拟proc文件系统中的目标指定文件与所述proc文件系统中的源指定文件绑定包括:宿主机将所述虚拟proc文件系统中的目标stat文件与所述proc文件系统中的源Stat文件绑定;宿主机将所述虚拟proc文件系统中的目标meminfo文件与所述proc文件系统中的源meminfo文件绑定;宿主机将所述虚拟proc文件系统中的目标sysrq-1rq文件与所述proc文件系统中的源sysrq-1rq文件绑定。可选的,所述方法还包括:当访问虚拟机的roofs中挂载的proc文件系统中的源指定文件时,宿主机接收访问与源指定文件绑定的目标指定文件的请求;宿主机调用所述目标指定文件注册的回调函数;宿主机利用所述回调函数返回访问结果。可选的,所述源指定文件为源stat文件或源meminfo文件时:当读取虚拟机的roofs中挂载的proc文件系统中的源stat文件或源meminfo文件时,宿主机接收读取与源stat文件绑定的目标stat文件或与源meminfo文件绑定的目标meminfo文件的请求;宿主机调用所述目标stat文件或目标meminfo文件注册的read回调函数;宿主机利用所述read回调函数返回读取目标stat文件或目标meminfo文件的结果O可选的,所述源指定文件为源sysrq-1rq文件时;当向虚拟机roofs中挂载的proc文件系统中的源sysrq-1rq文件写入时,宿主机接收写入与源sysrq-1rq文件绑定的目标sysrq-1rq文件的请求,宿主机调用所述目标sysrq-1rq文件注册的write回调函数;宿主机利用所述write回调函数向目标sysrq-1rq文件写入数据。一种宿主机与虚拟机文件系统隔离装置,所述装置包括:虚拟模块,用于宿主机采用fuse机制虚拟一个虚拟proc文件系统,将所述虚拟proc文件系统挂载到临时目录中;注册模块,用于宿主机在所述虚拟proc文件系统注册目标指定文件的回调函数,所述回调函数用于处理虚拟机的数据信息;挂载模块,用于宿主机将proc文件系统挂载到虚拟机的rootfs中;绑定模块,用于宿主机将所述虚拟proc文件系统中的目标指定文件与所述proc文件系统中的源指定文件绑定,所述绑定的目标指定文件与源指定文件的文件名相同;打开模块,用于宿主机调用open指令打开所述源指定文件。可选的,所述目标指定文件包括目标Stat文件、目标meminfo文件和目标sysrq-1rq文件,所述注册模块包括:第一注册单元,用于所述宿主机在所述虚拟proc文件系统中注册目标stat文件的open、read和write函数,所述open、read和write函数用于打开、读取和写入虚拟机的(PU使用数据;第二注册单元,用于所本文档来自技高网
...

【技术保护点】
一种宿主机与虚拟机文件系统隔离方法,其特征在于,所述方法包括:宿主机采用fuse机制虚拟一个虚拟proc文件系统,将所述虚拟proc文件系统挂载到临时目录中;宿主机在所述虚拟proc文件系统注册目标指定文件的回调函数,所述回调函数用于处理虚拟机的数据信息;宿主机将proc文件系统挂载到虚拟机的rootfs中;宿主机将所述虚拟proc文件系统中的目标指定文件与所述proc文件系统中的源指定文件绑定,所述绑定的目标指定文件与源指定文件的文件名相同;宿主机调用open指令打开所述源指定文件。

【技术特征摘要】
1.一种宿主机与虚拟机文件系统隔离方法,其特征在于,所述方法包括: 宿主机采用fuse机制虚拟一个虚拟proc文件系统,将所述虚拟proc文件系统挂载到临时目录中; 宿主机在所述虚拟proc文件系统注册目标指定文件的回调函数,所述回调函数用于处理虚拟机的数据信息; 宿主机将proc文件系统挂载到虚拟机的rootfs中; 宿主机将所述虚拟proc文件系统中的目标指定文件与所述proc文件系统中的源指定文件绑定,所述绑定的目标指定文件与源指定文件的文件名相同; 宿主机调用open指令打开所述源指定文件。2.根据权利要求1所述的方法,其特征在于,所述目标指定文件包括: 目标stat文件、目标meminfo文件和目标sysrq-1rq文件。3.根据权利要求2所述的方法,其特征在于,所述宿主机在所述虚拟proc文件系统注册目标指定文件的回调函数包括: 所述宿主机在所述虚拟proc文件系统中注册目标stat文件的open、read和write函数,所述open、read和write函数用于打开、读取和写入虚拟机的CPU使用数据; 所述宿主机在所述虚拟proc文件系统中注册目标meminfo文件的open、read和write函数,所述open、read和write函数用于打开、读取和写入虚拟机内存以及交换分区的使用数据; 所述宿主机在所述虚拟proc文 件系统中注册目标sysrq-1rq文件的open、read和write函数,所述open、read和write函数用于打开、读取和写入目标sysrq-1rq文件的数据。4.根据权利要求2所述的方法,其特征在于,宿主机将所述虚拟proc文件系统中的目标指定文件与所述proc文件系统中的源指定文件绑定包括: 宿主机将所述虚拟proc文件系统中的目标stat文件与所述proc文件系统中的源Stat文件绑定; 宿主机将所述虚拟proc文件系统中的目标meminfo文件与所述proc文件系统中的源meminfo文件绑定; 宿主机将所述虚拟proc文件系统中的目标sysrq-1rq文件与所述proc文件系统中的源sysrq-1rq文件绑定。5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括: 当访问虚拟机的roofs中挂载的proc文件系统中的源指定文件时,宿主机接收访问与源指定文件绑定的目标指定文件的请求; 宿主机调用所述目标指定文件注册的回调函数; 宿主机利用所述回调函数返回访问结果。6.根据权利要求5所述的方法,其特征在于,所述源指定文件为源stat文件或源meminfo文件时: 当读取虚拟机的roofs中挂载的proc文件系统中的源stat文件或源meminfo文件时,宿主机接收读取与源stat文件绑定的目标stat文件或与源meminfo文件绑定的目标meminfo文件的请求;宿主机调用所述目标stat文件或目标meminfo文件注册的read回调函数; 宿主机利用所述read回调函数返回读取目标stat文件或目标meminfo文件的结果。7.根据权利要求5所述的方法...

【专利技术属性】
技术研发人员:魏子然
申请(专利权)人:北京搜狐新媒体信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1