一种基于虚拟机的防火墙系统的制作方法

文档序号:7926524阅读:108来源:国知局

专利名称::一种基于虚拟机的防火墙系统的制作方法
技术领域
:本发明属于信息安全的网络访问控制领域。
背景技术
:防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它可通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。按防火墙的应用部署位置,可以分为边界防火墙、个人防火墙和混合防火墙三大类。边界防火墙位于内、外部网络的边界,所起的作用的对内、外部网络实施隔离,保护边界内部网络;个人防火墙安装于单台主机中,防护的也只是单台主机;混合式防火墙是一整套防火墙系统,由若干个软、硬件组件组成,分布于内、外部网络边界和内部各主机之间,既对内、外部网络之间通信进行过滤,又对网络内部各主机间的通信进行过滤。受到应用范围、部署难度和成本等因素的限制,在个人计算机中通常使用个人防火墙。这种防火墙通常是软件实现,与操作系统的内核协议栈相互配合完成网络访问的过滤。目前,由于个人防火墙安装在操作系统之中,它们主要有四大不足一、重装操作系统之后需要再次安装防火墙,期间存在一个防护真空;二、防火墙软件的实现依赖于特定操作系统,对于不同的操作系统需要实现多套防火墙;三、防火墙本身的安全性依赖于操作系统,一旦操作系统存在漏洞或后门,黑客可能绕过防火墙而访问私密数据;四、本地操作可以关闭防火墙,用户的误操作或执行了木马程序,都可能导致防火墙功能被屏蔽,从而显露在网络攻击之下。所以,传统的个人防火墙部署方式在灵活性和安全性方面都有隐患。
发明内容本发明的目的在于克服现有个人防火墙技术上的不足,设计了一种集成于个人计算机之中,不依赖于具体操作系统,并且支持多网隔离的个人防火墙设计方案。为了实现发明目的,采用的技术方案如下一种基于虚拟机的防火墙系统,包括内核系统,防火墙和客户操作系统,所述内核系统设置在磁盘的安全分区中,一般用户无法访问,客户操作系统为由用户直接使用的操作系统,内核系统和客户操作系统之间采用虚拟网络连接,使得客户操作系统的网络访问都经过内核系统转发,所述防火墙安装在内核系统上,用于过滤所有经过的网络数据,使得客户操作系统的网络访问经内核系统转发后受到防火墙的控制。上述技术方案中,所述内核系统采用在Linux上安装Xen补丁,使之成为一个Xen宿主系统,所述Xen宿主系统用于创建和管理虚拟机,所述客户操作系统安装在Xen宿主系统所创建的虚拟机中。所述防火墙安装在Xen宿主系统的内核协议栈里。本发明所述Xen宿主系统创建多个虚拟机,每个虚拟机安装和运行一个客户操作系统,所述Xen宿主系统能够支持同时安装和运行多个客户操作系统。所述Xen宿主系统为每一个客户操作系统创建了一块或多块虚拟网卡,所述虚拟网卡与连接不同类型网络的物理网卡相连接,客户操作系统的网络访问经过物理网卡的转发实现不同类型网络的连接访问。所述虚拟网卡与物理网卡的连接方式采用网桥或路由器实现。所述防火墙的规则库和日志信息记录在磁盘的保护分区中,使得一般的磁盘驱动程序无法访问到,Xen宿主系统通过调用UEFIBIOS中的RuntimeService能够访问保护分区,所述Xen宿主系统还增加一个Hypercall来封装并转发RuntimeService,使得防火墙通过调用Hypercall来实现调用Xen宿主系统。本发明设计了一种基于Xen宿主系统的防火墙方案,Xen是一个开源的虚拟机监视器,支持泛虚拟化(Para-virtualization),虚拟开销仅有3%5%,比V丽are高效,可以在一个普通的Linux上安装Xen补丁,使之成为一个Xen宿主系统,用于创建和管理虚拟机,容易实现。本发明将防火墙软件与被保护系统分离,而部署到被保护系统之外,即Xen宿主系统之中;再利用虚拟机技术,将客户操作系统安装在虚拟机中,从而将用户的可见范围限制在虚拟机之内。客户操作系统和宿主系统之间用虚拟网络连接,使得客户系统的网络访问需要经过Xen宿主系统转发,从而宿主系统中的防火墙可以对客户操作系统实施有效的网络访问控制,而不需要关心客户操作系统的具体类型,无论用户使用何种操作系统,不管操作系统本身是否有漏洞或后门,均能享受到同样的防火墙保护。上述防火墙的规则库和日志信息都是隐藏的,记录在磁盘的保护分区中,只能进入Xen宿主系统并通过特殊的BIOS调用来访问,所以除了管理员之外,用户不能进入Xen宿主系统或修改防火墙设置,即使本地的黑客也不能访问Xen宿主系统和防火墙。Xen宿主系统在计算机出厂之前已经安装在磁盘保护分区之中,用户无需自行安装防火墙软件。上述Xen宿主系统通过创建多个虚拟机,可以支持同时安装和运行多个客户操作系统;可以指定不同的客户系统的网络访问经过不同的物理网卡来转发,从而实现更加安全的基于虚拟机技术的多网隔离。本发明所述基于虚拟机技术的多网隔离,是通过将不同客户操作系统的网络访问请求转发到不同的网卡来实现的。Xen宿主系统为每一个客户系统创建了一块或多块虚拟网卡,这些网卡需要以某种方式和物理网卡连接才能访问到网络(这里可用的连接方式有路由器和网桥),由于不同物理网卡连接着不同的网络(例如,外网、内网和私密网),所以,将客户操作系统对应的虚拟网卡和某物理网卡连接,就相当于指定了客户系统所能访问的网络。以网桥为例,假设客户系统G1对应一块虚拟网卡V1,物理网卡P1连接着内网,若创建在Xen宿主系统中创建一个网桥,并将VI和Pl同时加入到网桥上,则客户系统Gl就只能访问内部网络了。综上,本发明的优点体现如下一、防火墙软件不依赖于客户操作系统的类型,客户操作系统可以是Windows、Linux或者其它操作系统;二、即使重新安装了客户操作系统,它仍然受到底层防火墙的保护;三、即使客户操作系统本身存在漏洞或后门,被意外地发出私密数据也会被底层的防火墙拦截。图1为本发明的实现的总体结构图。图2为本发明防火墙模块示意图。具体实施方式下面结合附图对本发明做进一步的说明。如图l所示,自下而上的各大模块是硬件设备、BI0S、Xen宿主系统和各客户系统。不同于传统的个人防火墙,本发明的防火墙部署在Xen宿主系统中。Xen宿主系统是系统中最重要的部分,由Xen和DomainO部分组成。Xen就是虚拟机监视器,它取代了操作系统的位置,直接与硬件设备交互,并且创建虚拟机环境供客户操作系统运行。DomainO是一个运行在Xen默认创建的虚拟机中的Linux系统,它负责协助Xen管理其它虚拟机。后端网卡就是前面提到的虚拟网卡,它与客户系统中的前端网卡一一对应。客户操作系统运行在Xen宿主系统创建的虚拟机中,其中的前端网卡就是Xen所虚拟的,是客户操作系统能够直接操作的唯一网络接口。UEFIBIOS中包含唯一能够直接访问磁盘保护分区的驱动程序,另外提供了一个可调用上述驱动程序的RuntimeService,使得Xen可以通过调用RuntimeService来访问保护分区;DomainO中的防火墙不能直接调用BIOS的RuntimeService,所以在Xen中增加一个Hypercall来封装并转发这种调用。Hypercall是一种类似Systemcall的调用,一般应用程序通过Systemcall来调用内核的功能,而DomainO通过Hypercall来调用Xen的功能。构建此系统的步骤如下(1)设计UEFIBIOS中的磁盘保护分区驱动程序,新增一类RuntimeService,用于调用驱动程序访问保护分区;(2)修改开源虚拟机Xen的源代码,新增一种可以调用上述RuntimeService的Hypercall供DomainO调用;(3)构建一个小型的Linux系统作为DomainO,使之支持Netfilter/Iptables,Python,以及Xwindow;(4)编译修改后的Xen,用新的内核和驱动程序替换原小型Linux的内核和驱动程序,从而构建出一个Xen宿主系统;(5)配置BI0S,使得系统启动时引导Xen宿主系统;(6)对应每一个物理网卡都创建一个网桥;(7)创建虚拟机,并为虚拟机中的前端网卡创建相应的后端网卡,根据客户系统网络访问的限制,将相应的后端网卡加入特定网桥(假设图l中的物理网卡1是连接内部网络的,若希望客户系统1和客户系统2只能访问内部网络,则将后端网卡1和后端网卡2加入到网桥1即可);(8)在DomainO中加载防火墙,进一步过滤客户系统的网络访问。上述步骤中的(8)的前提是开发一套运行在Domain0上的防火墙,此防火墙的结构如图2所示。其中Firewall-App是供管理员使用的防火墙管理程序,其余部分则是防火墙的实体。由于上述步骤(3)中构建的Linux系统是支持Netfilter/Iptables的,所以防火墙可以直接在Netfilter/Iptab]es上构建。Iptables是基于Linux内核的Netfilter过滤框架实现的,分为核心态模块Iptables-K和用户态模块Iptables-U。Iptables-U负责接收用户操作,包括规则的显示、添加、修改、删除、保存和恢复,将操作转发给Iptables-K,并将执行结果返回。由于原有的Iptables不能满足Xen宿主系统防火墙的需求,所以需要对Iptables进行扩展。每一个对Iptables的扩展模块也都包含核心态部分IptExt-K和用户态部分IptExt-U,分别实现了Iptables在其内核模块和用户态模块的接口函数。对于Iptables和Iptables扩展模块都无法实现的功能,则通过直接开发Netfilter扩展模块来实现,如图2中的NfExt。权利要求1、一种基于虚拟机的防火墙系统,其特征在于包括内核系统,防火墙和客户操作系统,所述内核系统设置在磁盘的安全分区中,客户操作系统为由用户直接使用的操作系统,内核系统和客户操作系统之间采用虚拟网络连接,使得客户操作系统的网络访问都经过内核系统转发,所述防火墙安装在内核系统上,使得客户操作系统的网络访问经内核系统转发后受到防火墙的控制。2、根据权利要求1所述的防火墙系统,其特征在于所述内核系统采用在Linux上安装Xen补丁,使之成为一个Xen宿主系统,所述Xen宿主系统用于创建和管理虚拟机,所述客户操作系统安装在Xen宿主系统所创建的虚拟机中。3、根据权利要求2所述的防火墙系统,其特征在于所述防火墙安装在Xen宿主系统的内核协议栈里。4、根据权利要求2或3所述的防火墙系统,其特征在于所述Xen宿主系统创建多个虚拟机,每个虚拟机安装和运行一个客户操作系统,所述Xen宿主系统能够支持同时安装和运行多个客户操作系统。5、根据权利要求4所述的防火墙系统,其特征在于所述Xen宿主系统为每一个客户操作系统创建了一块或多块虚拟网卡,所述虚拟网卡与连接不同类型网络的物理网卡相连接,客户操作系统的网络访问经过物理网卡的转发实现不同类型网络的连接访问。6、根据权利要求5所述的防火墙系统,其特征在于所述虚拟网卡与物理网卡的连接方式采用网桥或路由器实现。7、根据权利要求1或2或3所述的防火墙系统,其特征在于所述防火墙的规则库和日志信息记录在磁盘的保护分区中,使得一般的磁盘驱动程序无法访问到,Xen宿主系统通过调用UEFIBIOS中的RuntimeService能够访问保护分区,所述Xen宿主系统还增加一个Hypercall来封装并转发RuntimeService,使得防火墙通过调用Hypercall来实现调用Xen宿主系统。全文摘要本发明提供了一种基于虚拟机的防火墙系统,包括内核系统,防火墙和客户操作系统,所述内核系统设置在磁盘的安全分区中,客户操作系统为由用户直接使用的操作系统,内核系统和客户操作系统之间采用虚拟网络连接,使得客户操作系统的网络访问都经过内核系统转发,所述防火墙安装在内核系统上,使得客户操作系统的网络访问经内核系统转发后受到防火墙的控制。本发明的优点为一、防火墙软件不依赖于客户操作系统的类型,客户操作系统可以是Windows、Linux或者其它操作系统;二、即使重新安装了客户操作系统,它仍然受到底层防火墙的保护;三、即使客户操作系统本身存在漏洞或后门,被意外地发出私密数据也会被底层的防火墙拦截。文档编号H04L29/06GK101409714SQ20081021917公开日2009年4月15日申请日期2008年11月18日优先权日2008年11月18日发明者刘发贵,刘文谦,翔苏申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1