Windows Server 2008用户权限管理简介

几十年来,大型机和服务器一直使用“超级用户”和“用户”这种用户控制方案。这种方案存在一个明显的安全问题:它需要防止普通用户获取非法访问权限。

在DOS电脑以及随后的Windows操作系统中,访问控制模式更加复杂。早期的Windows操作系统不能在同一台机器上设置不同的用户权限;所有的行动都需要超级用户执行。但是,Windows NT系统最终定义了管理员角色和用户角色,尽管在实际情况中大多数用户还是需要超级用户的访问权限来执行他们平时的操作。

今天,许多企业的业务模式都要求大范围(地理位置上的)的联合操作,Windows NT中简单的特权/非特权用户管理功能已经不够用了。意识到这一趋势之后,微软在2009年开发了Windows Server 2008,该系统具有以多级权限属性系统为基础的多层次管理模式。该模式可以限制标准用户,让他们只能用非特权的形式运行应用程序软件,只留给他们操作所需要的最小管理权限,从而改进了微软Windows的安全性。比如,服务台用户只能改变其他用户的密码。通过这种方式,大型企业中的用户管理权限可以受到限制,操作中的超级用户数量减少。在本文中,我们将讨论一下如何使用Windows Server 2008对权限分配进行控制。

域上的权限管理

在Windows Server 2008环境中,有两种政策:活动目录(AD)全局域政策以及本地服务器安全帐户管理器(SAM)注册表政策。AD利用它的目录架构来控制任何给定Windows服务器域(支持通用安全政策的一组服务器)的组权限。这使得AD可以对域中的所有用户帐户执行公共帐户权限管理。

当有新的Windows服务器添加进来时,他们会连接到活动目录,活动目录会检查所有的组政策对象(Group Policy Objects,GPO)——用户能够执行的应用程序和服务——并把这些权限链接到该目录下的Active Directory Users and Computers(活动目录用户和计算机)分支中的域根用户。然后AD把这些定义的、默认的权限传递到新服务器上,开始管理其用户。AD目录下的组织单元(Organization Unit,OU)分支也可以定义,人们可以用OU为计算机创建本地帐户政策。比如,服务台OU可以定义一系列全局政策,帮助服务台人员执行具有公共权限的活动。

Windows Server 2008的活动目录还引进了一个新的功能,叫做多元密码政策(Fine-Grained Password Policy),其中包括一个锁定政策。有了这个新功能后,公司可以在同一个域中对不同的用户使用不同的密码和锁定政策。这个功能出现之前,整个域中只有一个政策。为了充分利用这个功能,活动目录管理员必须创建一个新的对象,名为密码设置对象(Password Settings Object,PSO)。他或她可以在PSO中设定同样的密码最长期限、复杂度要求、锁定阈值,等等。然后,PSO会连接到一个活动目录组:组的范围为全局(Global)(不是本地(Local或者通用(Univeral)),组的类型为安全(Security)(不是分布(Distribution))。所有的组成员都会继承链接到该组的PSO中定义的密码和锁定政策。

本地多级控制

域上的全局政策配置完成以后,人们就可以在单独的Windows Server 2008系统中通过用户权利分配(User Rights Assignment,URA)功能定义本地权限。用户权利能够控制用户在计算机上执行哪些任务。这些权利包括登录权限和特权。登录权限控制哪些人有权登录到计算机上,以及他们如何登录:通过网络还是本地,作为批处理工作还是作为服务登录。特权则控制计算机和域资源的访问,并可以覆盖特定对象上设定的权限,比如备份文件和目录、创建全局对象、调试程序等等。这些特权由系统URA对象下的组政策(Group Policy)进行管理,而且两种用户权利都是由管理员分配到组或者单独用户,作为系统安全设置的一部分。请注意,管理员应该尽可能地通过分组来管理本地权利,确保与企业政策的一致性以及最小化单独系统中权限管理的困难程度。

为了访问本地URA对象,添加、删除或者修改权限,管理员必须在Windows Server 2008中用Windows控制面板打开本地安全设置(Local Security Settings)。他或她可以在左边看见一个树状目录。点击本地政策(Local Policies),然后选择用户权利分配(User Rights Assignment),就能够编辑所有的39个登录权利和权限了。

确保适当的权限

Windows Server 2008中有九个审计政策,分成两个子类,它们可以确保Windows管理员正确设置用户权限。安全团队可以在计算机中打开本地安全政策(Local Security Policy)控制台,进入Security SettingsLocal PoliciesAudit Policy目录,查看系统审计政策设置。下文简要地描述了每个政策,以及它们的用法:

  • 审计帐户登录事件——跟踪所有试图用域用户帐户登录的活动,不管这种尝试源自何处。开启这项政策以后,工作站或者成员服务器会记录所有使用计算机SAM中存储的本地帐户的登录尝试。
  • 审计帐户管理——用来监视用户帐户和组的变化,对管理员和服务台工作人员的审计活动有参考价值。该政策记录密码重置、新创建的帐户以及组成员和Active Directory控制器的变化。该政策还记录域用户、域分组以及计算机帐户的变化。
  • 审计目录服务访问——提供Active Directory中对象变化的低级别审计跟踪。该政策跟踪的活动与审计帐户管理事件中跟踪的相同,但是级别低很多。使用这个政策可以识别用户帐户的哪些领域或者任何其他Active Directory对象被访问过。审计帐户管理事件可以提供更好的用户帐户和组的监视维护信息,但是审计目录服务访问是跟踪OU和GPO变化的唯一途径,这对于变化控制来说很重要。
  • 审计登录事件——记录本地计算机上的登录尝试,无论使用域帐户还是本地帐户登录。在Active Directory域控制器中,该政策只记录访问域控制器的尝试。
  • 审计对象访问——处理Active Directory之外所有对象的访问审计。该政策可以用来审计任何类型的Windows对象访问,包括注册表键值、打印机、以及服务。(注意:如果服务器的对象太多,该政策可能会大大影响该服务器的性能。)
  • 审计政策变化——提供本地系统中重要安全政策的变化通知,比如系统审计政策的变化;当本地系统是一个Active Directory域控制器时,该政策会提供信任关系的变化。
  • 审计权限使用—跟踪Security SettingsLocal PoliciesUser Right Assignment目录下本地安全政策(Local Security Policy)的用户权利活动
  • 审计过程跟踪——跟踪每一个被执行的程序,不管该程序是由系统还是最终用户执行的。它还可以决定程序运行的时间。结合该政策,加上审计登录事件和审计对象访问事件,以及在这些不同的事件描述中使用Logon ID, Process ID 和Handle ID等,我们就可以详细地描绘出用户活动了。
  • 审计系统事件——与安全相关的系统事件综合,包括系统启动和关闭。Windows的安全基础设施是模块化设计,可以利用微软和第三方供应商提供的新型、插件安全功能。这些插件可以是认证软件包、合法登录进程或者通知软件包。因为这些插件是值得信赖的扩展操作系统的代码模块,Windows加载每个插件时都会做记录,使用从这个分类中的事件。(注意:不推荐在这个层面上管理审计政策,因为这样会产生很多噪声,应该使用子类型。)

即使有些用户偶尔得到了不必要的权限,这些政策也可以让公司的安全人员核实这些用户是否利用管理权限做伤害公司的事情,不管是有意的还是无意的。企业应该尽可能多的启用这些审计政策,但是请记住,加载所有的政策可能会影响Windows系统的性能。

当启用这些政策时,企业有多种选择:可以让它们产生成功事件,失败事件或者两者都产生,这取决于公司政策。所有九个审计政策都可以产生成功事件,某些政策可以产生失败事件,作为一种最佳实践,企业不该忽略成功事件(会产生大量的安全日志)而只开启失败事件。一个常见的误解是:只有失败事件审计政策才能警告安全团队注意所有的可疑活动。实际上,安全日志中许多最重要的事件是成功事件,比如关键用户帐户和组的变化、帐户锁定的变化,以及安全设置的变化等等。

总结

随着Windows Server 2008的发布,微软最终提供了权限管理功能,能够创建复杂的用户权限分组,却不需要复杂的管理技术。但是复杂的权限分组可能会引起权限的错误配置,不能识别某个人的错误。所以,了解与该功能相关的审计服务同样重要。

归功于适当的考虑和规划,Windows Server 2008最终赋予企业期待已久的功能:成功地匹配了用户的能力和权限。这不仅满足业务需求和信任要求,而且验证了他们的方法是正确的。