你打算投身虚拟化的潮流吗?在你这样做之前,需要了解该技术真正安全的相关事宜。以下是一些你可以用的实用解决方案。
虚拟化软件是技术市场的时尚。诸如微软和vMware等供应商提供服务器和客户端虚拟化产品,同时支持虚拟化的硬件也正在AMD和InteI处理器中出现。通过利用虚拟化技术,你最终可以得到目前的多处理器和多核服务器所能提供的最强的计算能力。在一台硬件服务器上,你可以运行多个操作系统实例,对网络上的用户而言每个实例显示为一个真正单独的服务器。
如果你决定在你的环境中使用虚拟化,需要了解一些与该技术相关的事宜。特别是虚拟化带来一些现实的安全问题。在冒险尝试之前,需要了解Virtual Server的概况以及它的常见安全缺陷,同时你还需要几乎适用于任何企业的实用的解决方案。让我们开始吧。
仔细地准备主机
Virtual Server的安装非常简单,但是你需要采取一些准备步骤确保安全。主操作系统是Virtual Server中最脆弱的环节。如果主操作系统受到安全威胁,在它上面运行的每一个虚拟机都会受到潜在的安全威胁。因此,你必须把物理服务器安置在一个安全的地方。
当Virtua Server运行时,它从主操作系统分配物理内存给每一个客户操作系统。虚拟机使用的虚拟磁盘专门存放在DAS或光纤存储设备上。如果恶意用户能够物理上连接到一台机器,他或她就可以附上一个物理调试器或者运行一个软件调试器,并在客户操作系统运行时监视它们,捕获诸如密码之类的秘密。恶意用户还能访问虚拟磁盘,就好像这些都是普通文件一样,并使用免费获得的诊断工具甚至一个简单的十六进制编辑器暗暗收集敏感信息。
你必须尽可能小心地保障主操作系统的安全。首先,采取标准的防范措施:删除不必要的本地账号,并确保保留下来的账号具有强密码。接下来,删除外来的服务和应用程序以减小攻击面。不要把虚拟服务器和其它服务器,如微软Exchange Server或SQL Server放在一台机器上。虽然你需要运行主操作系统上的微软llS管理Vinual Server,但是它不应该再作为另外的网站的主机。如果恶意用户成功地远程攻击安全漏洞,他或她将能够控制这个主操作系统并访问到虚拟机。减小攻击面可以使黑客发现远程的安全漏洞并进行攻击的可能性最小化。减小攻击面的另一个附加好处是随时间的流逝可能不必应用多少更新。这个好处很重要,因为应用更新会影响到客户操作系统的可用性。
如果你的主操作系统是域中的一个独立服务器,你应该确保防止没有合法理由的用户通过网络——网络共享或终端服务登录到主操作系统。也就是主操作系统不用于普通的文件和打印机共享。你可以使用微软管理控制台本地安全策略管理单元或组策略对象配置主操作系统的安全策略。启动管理单元,展开“本地策略”,并单击左边窗格中的“用户权限分配”。在右边的窗格中,双击“拒绝从网络访问这台计算机”,并确保不能合法地访问主操作系统的用户(或者他们作为成员的组)被包含在拒绝列表中。对“通过终端服务拒绝登录”重复这一过程。注意拒绝从网络和终端服务访问主操作系统不能阻止用户访问服务器上虚拟机所提供的服务。如果你想限制对那些系统的访问,就必须对它们也进行类似的配置。要进一步保障主机的安全,考虑使用Windows server 2003 SPl带的Wlndows防火墙和IPsec。但是,请记住只配置主操作系统的防火墙或IPsec不一定能防止用户访问客户操作系统中的服务。
你还应该仔细研究运行Virtual Server的主操作系统的更新管理策略。例如,你不应该将主操作系统配置为使用Microsoft update(或诸如sMs或wsus的内部更新机制)并在应用更新后自动重启。如果你的服务器在这种情况下重启,虚拟机中的所有数据都会丢失,除非你事先采取步骤温和地关闭客户操作系统或至少将它们的状态保存到磁盘上。实质上也就是你需要找到一种在不影响客户操作系统 可用性的情况下更新主操作系统的方法。
初始配置
要安装Virtual Server 2005 R2企业版,你必须先下载它。你还应该下载伴随的文档,其中包括有用的重要信息。记着在安装VirtuaI 5erver之前安装llS。
双击下载得到的文件(如:setup exe-)启动Virrtual Server安装向导,并经过直截了当的安装过程。向导会提示你选择管理网站将要侦听的端口,并将网站配置为“约束委派”(Constrained DeIeqatlon)。通常,管理网站会以连接到它的用户权限运行。在这种配置情况下,所有的资源文件(如 配置文件、虚拟磁盘)必须在DAS上。如果你计划通过网络访问资源文件一一例如,如果它们被存放在NAS设备上——你必须配置约束委派,网站将以本地系统账户(System)权限运行。由于安全的原因,要提高性能,我始终建议将资源文件存放在本地。另外不要启用约束委派。只在你有理由修改网站端口时才修改。
现在,你需要保证安装的安全。单击“开始”*“程序”‘“Microsoft Virtual Server”*“虚拟服务器管理网站”启动Virtual Server管理网站。如果系统提示你输入用户名口令,输入主操作系统上本地Administrators组中的一个成员用户,否则你将被拒绝访问(要防止每次访问管理网站时系统都提示你输入用户名口令,你可以将URL添加到IE中的本地内部站点)。
在网页的底部,你会注意到一条警告信息:站点未启用安全套接字层(Secu re Sockets Laver,SS L)。你首先要做的是获得SS L证书以保证进出管理网站的数据通讯安全。如果你正在运行Misrosofc Certificate Services,可以用它获得一个SSL证书,否则可以从第三方机构,如Verisian(虽然这种途径花费不少)获得SSL证书。打开MMC llS管理单元,展开We出服务器名称下的网站节点。你会发现名称为VirtuaI Server的Web站点,为了这个站点你需要申请一个SSL证书。不要忘了为SSL连接选择闲置的TCP端口,并将Web站点配置为使用该端口。我推荐你还要配置VirtuaI Server Web站点请求SSL连接。配置了SSL以后,你还需要记得使用新的URL连接到Web站点,指定“HTTPS”代替“HTTP”,并输入站点使用的SS L端口号。你或许还想创建一个URL快捷方式,并把它保存到桌面上。
下一步是配置谁可以访问管理网站。默认情况下本地Administrators组的所有成员都有权限管理Virtual Server。我推荐你手工添加需要管理访问的用户和用户组,而不是简单地把它们增加到本地Administrators组。要赋予用户权限,启动管理网站,选择Web站点左边窗格中的“服务器属性”,然后单击“虚拟服务器安全”。你可以使用如图1所示的“添加项”按钮添加用户和用户组。
如果你向列表中增加一个域用户或域组,应该在表单中指定项D0MAINNAME\username或DOMAlNNAME\aroupname。每一个用户或用户组都可以有几个权限。在Microsoft Virtual Server程序组中的“虚拟服务器管理员指南”中详细介绍了每一个权限。正如其名所暗示的,“完全”赋予用户或用户组所有权限。通常你应该只赋予用户他们执行指定任务所必需的权限。请注意不能删除本地Administrators组,该组始终被允许访问,即使你试图删除权限。实用的建议是任何域管理员都可以访问虚拟服务器管理网站。如果你不希望域管理员具有这种级别的访问权限,需要在主操作系统上从本地Administrators组中删除该组。
VMRC客户端和服务器之间,对用户透明。认证完成后,用户被连接到虚拟机的控制台,而不是自动登录到虚拟机。认证的选项是“自动”、NTLM或Kerberos。NTLM是安全的服务器认证方式,但是不提供验证服务器是否为假冒的方法。使用Kerberos允许相互认证。你应该选择“断开空闲连接”复选框。默认被启用,超时设置为1 5分钟。
你还应该启用SS L 3.O/TLS 1.0加密。默认情况下.VMRc客户机和服务器之间的通讯不加密i安装证书将保证通讯的安全。Virtual Server可以帮你创建一个证书申请。选择”请求”单选按钮,在单击“确定”之前填写表单中的相关信息(如图2)。单击-•确定时,生成了证书申请,如图3所示。你可以剪切粘贴申请并把它提交给CA。通过单击管理站点中的“虚拟机远程控制(VMRC)服务器”,并选择"上载”,你可以将下发的证书加载到VMRC服务器。
这样就启用了“浏览”按钮,使你可以浏览证书文件。再次单击‘‘确定”将证书加载到VMRC服务器中.
保证资源文件的安全
Virtual Server使用几个资源文件。常见的文件是虚拟机配置文件(Vmc)、虚拟硬盘文件(vhd)和保存的虚拟机状态文件(Vsv)。特别是vhd和vsv文件包含敏感信息,需要保护。访问这些文件的攻击者可能收集文档、口令、加密密钥和其它秘密。至少你应该保证只有在虚拟服务器上具有管理权限的用户才能访问这些文件——对于Virtual Server自身一一通过使用自由访问控制列表(DAC Ls),当你配置谁具有Virtual Server的管理权限,DACLs被自动设置,但是你可以手工修改。你可以通过从管理网站的“主状态”页选择虚拟机实现已指定的用户账号运行虚拟机,或者在管理网站左边窗格中选择“虚拟机”*“配置”,在“(虚拟机名)配置”窗格中选择“常规属性”,然后选择“以下列用户帐户运行虚拟机”复选框并输入有效用户的用户名和口令,如图4所示。通过编辑DACL你将需要保证指定的用户具有访问资源文件的权限。
使用指定的用户账号运行虚拟机还使你能够使用加密文件系统(EncrYPting File System,EFS)保护虚拟机使用的任何vnd文件。用运行虚拟机所使用的用户账号简单地登录
系统,找到vhd文件,并使用Windows资源管理器或cIpher exe加密每个文件。你可能需要允许用户交互或终端服务访问virtuaI Server并登录,但是在保障了vna文件的安全后你总是可以拒绝这种访问。(请注意不应该用EFS保护父文件夹中的vmc或vsv文件。如果那样的话,Vircual Server将无法启动虚拟机。)
Virtual Server允许你将主操作系统中的物理磁盘镜像到客户操作系统中的虚拟磁盘。我不推荐这种镜像,因为这样很难保证没有敏感信息在主操作系统和客户操作系统之间交换。文件损坏会很容易发生,这是恶意软件从主操作系统传播到客户操作系统很自然的方法,反之亦然。
保证虚拟机的安全
当VirtuaI Server运行虚拟机时,你需要像对待一个实际系统那样对待它。你需要考虑是否在每一个虚拟机上配置并使用Wlnd()ws防火墙,独立于主操作系统Wmdows防火墙配置,每一个虚拟机的更新策略,以及是否需要使用诸如Securiy Configuration Wizara(SCW)这样的工具锁定每一个虚拟机。一个被感染或受到安全威胁的虚拟机对于你的企业构成的危险和一台被感染的物理机是一样的。
价格合理
通过重新规划某些产品的协议条款,微软的虚拟化正变得更加吸引企业。对于得到许可的客户,VircuaI Server和Virtual PC 2007目前都是可以免费下载得到的。购买windows 2003 Release 2(R2)企业版的客户现在可以在一台物理服务器上最多运行4个虚拟的操作系统实例,无需购买额外的拷贝,wlndows 2003数据中心版用户可以运行不限制数量的虚拟实例。
Virtual Server是一个强大的工具。但是,它的使用也带来风险。恶意用户可以偷偷从虚拟硬盘上收集各种形式的机密信息,还可能窃听VMRC客户和虚拟机本身之间的通讯。本文的建议将帮助你保障Vlrtual Server安装的安全,并保护虚拟机中包含的重要数据。