本文介绍了在WindowsServer2008R2系统中使用事件查看器,启用审计功能来审计域管理员,查看系统记录的事件,判断如何赋予这个管理员的权限的内容。具体内容如下所述。
微软系统中任何关于如何限制或控制管理员权限的讨论通常都会得到这样的结果:你怎样才能不把管理权限送给那些你不信任的人?这有一定道理,但是在没有证据表明管理员做错了事情的情况下,如何才能正确判断一个管理员是否值得信任呢?再者,你如何证明你的判断呢?
你不能剥夺一个域管理员太多权限,尤其是在每个域都要管理的多网域环境下,所以说有时候限制管理员的权利和授权活动这项工作很难实现。辅助人员和供给人员通常也需要具有管理权利,而且有时政治需求还会需要更多的管理人员。所以,真正的问题是,你如何去审计一个管理员?
虽然答案是只要启用审计就行了,但是只是简单地启用审计功能并不能解决所有的问题。举例来说,我最近与许多管理员一起进行了一项大型的活动目录部署活动。他们有一个应用程序,使用特定的用户对象属性提供对该应用程序的连接。站在安全相关立场,他们发现管理员可以禁用审计功能,修改一些关键的属性,并且可以对该应用程序做坏事。然后该管理员可以重新启用审计功能而不会被觉察---甚至WindowsServer2008R2的属性审计功能也是如此。启用审计功能的时候,系统可以记录足够的事件,从中可以看出谁改变了对象,以及谁改变了属性。但是由于审计功能被禁用,所有这方面的证据都消失了。
事实证明,当非目录对象审计功能开启的时候,事件ID4907(图1)被记录了下来,然而目录对象的审计却没有记录这个事件。
图1.事件ID4907
虽然这个事件清楚地显示出了审计政策发生了变化以及谁进行的这项改变,但是我们不能在微软系统中用其它方法在事情被记录之前得到所需信息,我需要这方面的功能。这很重要,因为它允许我向大家示范事件查看器的强大功能,比如为WindowsServer2008R2准备的自定义查看以及排序分类/存储过滤器功能等。如果启用对象审计的话,详细的审计会在安全日志中添加数量巨大的事件。在旧版本的事件查看器中,从这些事件中选出你想要的分类非常困难。
为了审计目录对象,必须启用待审计的对象上面的组策略对象设置选项“审计目录服务访问”(图2)。
图2.审计目录服务访问GPO
另外,审计必须在对象本身执行。比如,要配置用户对象的审计设置,步骤如下:
(ADUC活动目录用户和电脑)的管理单元中找到想要设置的对象。
打开对象属性对话框并选择安全选项卡。一定要在查看菜单中启用高级功能。
在安全页选项卡中,点击高级按钮。
在高级属性对话框中,选择审计选项卡。选择添加按钮来添加用户或者组审计,如图3所示。你可以在接下来的窗口中指定安全选项。点击确定按钮退出所有打开的窗口。
用审计属性中指定的管理员身份登录,测试审计功能是否ok(在我的例子中指定的管理员是JrAdmin)。修改审计功能已经开启的对象并检查安全事件日志。举个例子,你可以删除用户对象或者修改其中的一个属性。
图3.ADUC中的高级安全设置
审计功能开启之后,会有大量的事件出现在安全日志中,常见的有以下几种:
事件ID4738---当对象被修改的时候系统就会记录该事件。
事件ID4662---许多这种事件带有各种各样的少量信息(图4)。在我的工程中,一个单一的对象改动就产生了25个这种事件。
图4.EventID4662的属性
事件ID5136---这个事件提供了更多改动的详细信息,请看下面的例子。请注意我们可以看到用户改变目录对象的DN,也能够看到对象的DN。我们还可以看到描述属性发生了改动,因为我们看到了原来的值以及被删除的值(请注意这里为了简短起见有些内容被删除了):
- LogName:Security
- EventID:5136
- TaskCategory:DirectoryServiceChanges
- Computer:w2k8r2-dc1.w2k8r2.Wtec.adapps.hp.com
- Description:Adirectoryserviceobjectwasmodified.
- Subject:
- SecurityID:W2K8R2\JrAdmin
- AccountName:JrAdmin
- AccountDomain:W2K8R2
- DirectoryService:
- Name:w2k8r2.Wtec.adapps.hp.com
- Object:
- DN:
- CN=AdmUser401,OU=Atlanta,DC=w2k8r2,DC=Wtec,DC=adapps,DC=hp,DC=com
- GUID:
- CN=AdmUser401,OU=Atlanta,DC=w2k8r2,DC=Wtec,DC=adapps,DC=hp,DC=com
- Class:user
- Attribute:
- LDAPDsplayName:description
- Syntax(OID):2.5.5.12
- Value:Thisisatest
- Operation:
- Type:ValueDeleted
- CorrelationID:{1e193e1d-537f-49c7-bb69-bb50aa4542c2}
- ApplicationCorrelationID:-
现在让我们来考虑几个选项以及结果。
启用GPO审计(目录访问),但是对象审计被禁用
结果:当用户从对象审计列表中移出的时候,系统记录了事件ID4662。
结果:当改变对象的时候,系统记录了事件ID4738。
禁用GPO审计(目录访问),启用对象审计。
-*#160结果:事件ID4662,4738和5136都被记录了下来。
我们可以很容易地看到开启完整审计功能与禁用GPO审计而启用对象审计时事件数量上的区别。请注意,即便是禁用了GPO审计,重要事件ID5136也会被记录,它会显示出属性改变的详细信息以及谁进行了这个改变。如果GPO审计和对象审计都被禁用,系统只会记录一种事件EventID4738,这个事件中没有任何有用信息:
- LogName:Security
- EventID:4738
- Computer:w2k8r2-dc1.w2k8r2.Wtec.adapps.hp.com
- Description:Auseraccountwaschanged.
- Subject:
- SecurityID:W2K8R2\JrAdmin
- AccountName:JrAdmin
- AccountDomain:W2K8R2
- TargetAccount:
- SecurityID:W2K8R2\AdmUser400
- AccountName:AdmUser400
- AccountDomain:W2K8R2
请注意,虽然各种审计功能的组合能够产生某些事件,但是对于目录对象来说,还是没有事件能够记录其审计策略的改变。非目录对象(文件、文件夹等等)会记录在事件ID4907中。
总结:
知道了上述的这些事件,那么解决方案是什么呢?下篇文章中,我们将详细为您提供相应的解决方案。
【编辑推荐】