用户名:  密码:  验证码: 验证码  注册  找回
RSS
无双网
 2019年03月22日 星期五  您现在位于: 首页 → 技术文栏 → 如何确保VMware VCenter Se...

如何确保VMware VCenter Server的安全

2011年06月14日  无双网  出处:
确保VMware VCenter Server的安全是非常重要的,这是因为VMware VCenter Server(从前叫做Virtual Center)对其管理的所有虚拟机拥有完全的访问控制权限。你可能已经采取一定的手段防止非授权用户登录VCenter,但是有两个方面可能被许多系统管理员所忽略。VCenter有两个非常重要的集成组件:存储VCenter配置数据的数据库和认证用户身份的Active Directory。如果这两个组件没有得到很好保护的话,恶意用户就可以通过这两个组件取得对你工作平台环境的访问控制权限。

保护VCenter Server数据库

VCenter数据库是存放配置数据和其它数据的地方,其中包括角色、许可权、事件、任务、性能数据、数据中心信息、集群信息、资源池信息以及其它更多信息。

如果使用SQL 工具连接SQL服务器数据库,并且查看VCenter数据库的话,你就会看到许多VCenter使用的表。这些表中有许多都是以VPX开头的。VPX_ACCESS表用来存放对VCenter的访问控制信息,主要由以下几列组成:ID、PRINCIPAL、ROLE_ID、ENTITY_ID和FLAG。如果我们输入一个简单的SQL查询语句,就可以看到这个表中主要包含的信息:



Select * from vpx_access

结果类似于这样:

让我们看一下表中的各列数据以及这些数据所代表的含义:

ID是表中的唯一标识符,用来标识表中的每一条记录

Principal是本地或者域用户或用户组的名字,在域用户和群组的前面有一个“\”(如ACME\TJones)

ROLE_ID是VPC_ROLE表中定义的角色所对应的ID。VPC_ROLE表包括ID和与其对应的角色。-1表示是管理员身份,管理员角色不可能从VCenter中删除,否则就也就不会在数据库中。VCenter中的另外一些角色,如DataCenterAdministrator的ID是2、VirtualMachine用户的ID是5;

Entity_ID是VPX_ENTITY表中定义的客体所对应的ID。VPX_ENTITY表中包括实体和与其对应的ID。VCenter内的所有实体都有一个唯一的ID,这些实体对象包括虚拟机、主机、集群、资源池和数据中心。ID 1用来标识较高级别的实体,如主机、集群。

Flag用来标识Principal表示的是一个用户还是一个群组。Flag为3表示principal是一个群组,Flag为1表示principal是一个用户。

在我们知道这些数据代表的含义之后,就可以详细阐述VPX_ACCESS表中所返回的数据,如下:

本地Windows群组管理员是主机或者集群级别的管理员角色的一个成员

ACME Windows域的VCenter_Admins群组是主机或者集群级别管理员角色的一个成员

ACME Windows域的TJones用户是某个特定角色的成员,该角色对一个叫Win2000-5(在vpx_entity表中1422 = Win2000-5)的特定虚拟机来讲称之为vCenter Network (在vpx_entity表中120 = vCenterNetwork)

ACME Windows域的vCenter_Users群组是某个特定角色的成员,这个角色对Denver1数据中心(在vpx_entity表中21 = Denver1)来讲叫做vCenterOps(在vpx_entity表中140 = vCenterOps)

如果某用户拥有访问数据库的权限,并且拥有一个本地Windows账号或者域账号,就可以通过如下的SQL命令给自己赋予管理员的权限,获得对较高的主机和集群级的访问控制权限:

insert into vpx_access (ID, PRINCIPAL, ROLE_ID, ENTITY_ID, FLAG) values ('100', 'ACME\JSMITH', '-1', '1', '1');

commit;

这样做可以赋予一个名字叫JSmith(ACME\JSMITH)域用户账号(1)在高的主机和集群级别(1)上的管理员的角色(-1);输入ID 100表示当前在表中没有使用这个账号。如果SQL表更新,而VCenter没有立刻识别出更新信息的话,关闭、然后重新启动VCenter服务器就可以强制VCenter识别更新信息,并且用户此时也可以登录到VCenter服务器。

总之一句话:通过使用强密码机制和限制对数据库的访问来保护VCenter SQL数据库。并且对于其它任何可以访问表(如MS-SQL这种的“sa”账号)的账号也需要确保使用强密码机制。另外,如果可能的话在一个特定的SQL服务器上运行VCenter数据库,尽量不要和其它用户使用共享的SQL服务器。最后,及时给SQL服务器打补丁,防止恶意用户通过一些众所周知的漏洞取得对服务器的访问控制权限。

Active Directory和VCenter许可权

接下来我们讨论Active Directory。默认情况下,VCenter每天验证一次所有用户和群组对VCenter中实体对象的许可权限。这样做的目的是查看用户和群组,确保他们仍然在AD中,如果没有在AD中的话就自动删除许可权限。如果在删除一个AD账号之后又创建一个同名账号,并且VCenter还没有删除原来账号对应的权限,那么这个新的账号就可以使用这个许可权限访问VCenter。因此如果一个叫MJONES的AD账号早上被删除了,并且这个账号拥有VCenter的管理员权限,几个小时后又创建了一个叫MJONES的账号,那么这个账号就拥有同样的VCenter管理员权限,因为这个账号是在vCenter每日的例行验证之前重建的。

这种情况确实是有可能发生的,因为在VCenter中没有使用系统标识符(SIDS:System identifiers)、长字符串和或者长数字串,这些都是Windows用来唯一标识用户的。在Windows中,如果一个账号被从AD中删除了,然后重新创建了一个同名账号,那么这个账户将会有不同的SID,也就不可能拥有之前同名账户所拥有的同样的Windows许可权限。然而对于VCenter来讲,这两者就会被视为同一个账号,拥有同样的许可权限,这是因为VCenter只使用域和用户的用户名来做检查,而不使用SID。

在VCenter中,在“Top Menu”中选择“Administration”来完成控制这类行为的设置,然后选择“VCenter Management Server Configuration”选项。在左侧的方框中选择“Active Directory”,从右侧方框就可以看到“Enable Validation”的设置,下面是验证周期(精确到分钟)。可以完全关闭这个特性,默认的时间间隔是1440分钟(一天),当然这个可以修改。如果用户注重操作环境中的安全问题的话,可以把验证周期修改为一个较低的值(如120分钟)。由于这个特点可以通过自动删除不再有效的许可权限来保护VCenter,所以建议不要关闭这个属性特征。

如上所述,在VCent中还有需要格外注意的区域,用户确保已经了解这些区域并且恰当地保护这些区域。其中保护数据库是关键问题,另外保证及时阻止非法访问是保护VCenter服务器不受未授权入侵的关键。
 (本文已被浏览 347 次)
 发布人:[标签:发布人]
 → 推荐给我的好友
上篇文章:VMFS3 Heap size(...
下篇文章:VMware与Xen虚拟机灾难备份策略优劣比较
发表评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论 (点击发表)
热门文章
 保存webbrowser中的HTML内...
 全部DLL下载
 用VB6.0设计简易赛车游戏
 游戏对照表
 MSFlexGrid使用技巧一例
 添加红月装备的详细教程 (包括装备 武...
 Win2003+Discuz!5.5+II...
 用vb6的ActiveX控件实现异步下...
 PC经典RPG《仙剑奇侠传Ⅰ》for PP...
 能否判断动态数组有没有被分配过
最新文章
 [ODBC SQL Server Driv...
 评论:115网盘的何去何从
 我科学家实现百公里量级自由空间量子隐形...
 中国智能手机出货量占全球27%居世界之...
 Gartner:2012 第二季度西欧 P...
 [多图]华山论剑:当今在世的智商最高的...
 三星获出租车服务系统专利 可快速查看驾...
 [多图]15项可能延续到2030年的科...
 分析称苹果三星专利大战输赢已成定论
 Google终获云操作系统专利
 网站留言· 友情链接·与我在线·网站地图联系我们·管理·TOP 
 陕ICP备09004157号  
 Copyright © 2012 Asp126.com Inc. All Rights Reserved.Processed in 0.016s, 8 queries, 36 Cache,0 Online