安全性

通过组策略管理硬件限制

Jeremy Moskowitz

 

概览:

  • 限制硬件安装
  • 限制特定设备
  • 限制各类设备

事实的确如此:这些拇指 U 盘和各种可爱的可移动媒体能为您的个人生活带来方便,但会给工作环境带来隐患。您需要一种方式来控制

哪些硬件设备可以安装,哪些不可以安装。幸运的是,使用 Windows Vista™ 以及下一版 Windows Server®(代号为“Longhorn”)中的组策略,您可以选择允许安装 USB 鼠标,但不允许安装 U 盘;允许安装 CD-ROM 读取器,但不允许安装 DVD 写入器,或者允许安装蓝牙,但不允许安装 PCMCIA 卡。

组策略中有两个部分可帮助您保护硬件安全:“计算机配置”|“管理模板”|“系统”|“可移动存储访问”(请参阅图 1)和“计算机配置”|“管理模板”|“系统”|“设备安装”|“设备安装限制”(请参阅图 2)。

图 1 组策略中的预定义硬件限制

图 1** 组策略中的预定义硬件限制 **(单击该图像获得较大视图)

图 2 自定义要限制的硬件种类

图 2** 自定义要限制的硬件种类 **(单击该图像获得较大视图)

第一组(可移动存储访问)很容易理解:如果为该类可移动存储设备(CD/DVD、软盘等)启用某一策略设置,则可以在需要时限制对所有这种类型设备的读取和/或写入。但是,它的限制功能没有“设备安装限制”强大。

在“可移动存储访问”中,包含名为“自定义类别:拒绝读取权限”和“自定义类别:拒绝写入权限”的策略设置组。这听起来不错,但可移动存储访问策略实际上并不禁止安装驱动程序 — 当检测到硬件时,表示已经安装了该类硬件的驱动程序。该策略只能禁止对设备的读取或写入。在下一部分中说明“设备安装限制”策略设置时,我将彻底禁止驱动程序本身的使用。

掌握类别和 ID

我们首先要明确的是:希望进行哪些限制。您可以考虑得较为宽泛,也可以较为具体。也就是说,可以限制特定的某“类”设备,也可以具体到单一硬件类型。或者,您还可以反过来,只允许使用特定设备类别,如 USB 鼠标。不过,棘手的是以下部分:要切实起到限制作用,您需要圈定要限制的硬件。

因此,如果希望“不允许安装游戏杆驱动程序”而“只允许安装 USB 鼠标”,则需要获取游戏杆和鼠标的信息。有一种方法是使用 Internet 搜寻硬件 ID、兼容 ID 或设备类别。不过,如果手头有这样一件设备,则会更简单。这时,可以将该设备接入计算机并查看其硬件 ID、兼容 ID 或设备类别。了解这些信息后,也就清楚该如何禁用它(或使之可用)。

在下面的示例中,我将禁用特定的声卡系列:Creative AutoPCI ES1371/ES1373。如果您希望禁用其他设备(如特定 USB 设备、USB 端口等),只需遵循下面的步骤并替换为相应设备。

在已经安装相应硬件项的计算机上启动“设备管理器”。找到设备后,右键单击并选择“属性”,然后选择“详细信息”选项卡。默认情况下,您会看到一个“设备描述”。尽管这会令人感兴趣,却没有多大用处。选择“属性”下拉列表,并选择“硬件 ID”,如图 3 所示。

图 3 设备的“详细信息”选项卡

图 3** 设备的“详细信息”选项卡 **(单击该图像获得较大视图)

“硬件 ID”页从上到下显示了从最特定到最宽泛的设备 ID。如果仔细查看“硬件 ID”值列表中的第一项,您会发现此声卡为第 2 版的 ES1371 声卡。这是一个非常具体的 ID。沿列表向下,设备描述逐渐变得宽泛,一直到包含整个系列。

此外,您还可以将“属性”更改为“兼容 ID”。它们同样描述了硬件,但没有“硬件 ID”描述那样具体。您可以选择使用“兼容 ID”中的信息,尝试将更多类似硬件圈入您的禁用列表 — 因为它的定义更为宽泛,可网罗更多结果。当然,不利的一面是可能会限制某些不希望限制的项。

最后,从“属性”下拉列表中选择“设备类别”可获得最宽泛的设备类别。在我的举例中,声卡仅显示为“媒体”。但是,许多东西都可以视为媒体,因此,描述越宽泛,越应当谨慎。

确定要使用的值后,右键单击它并选择“复制”,然后将其粘贴到记事本中妥善保管。直接原样复制是很重要的,因为在接下来的步骤中,必须精确输入该值。值中所有大小写字母必须精确保留。

如果您热衷于使用命令行而不是设备管理器来捕获硬件 ID 或设备类别,请查看 support.microsoft.com/kb/311272 上有关 Devcon 命令行实用工具的论述。另外请注意,Microsoft 为常用类别提供了许多标识符,这在您不能实际获得设备时很有帮助;请参阅 go.microsoft.com/fwlink/?LinkId=52665 上的信息。

通过组策略实现硬件访问控制

虽然我们将说明“计算机配置”|“管理模板”|“系统”|“设备安装”|“设备安装限制”(如图 2 所示)中的所有策略设置,但实际只需要其中一项来完成本例。

首先创建一个组策略对象 (GPO) 并将其链接至一个包含运行要控制的 Windows Vista 的计算机的 OU(或域,等等)。现在编辑该 GPO 并深入到“计算机配置”|“管理模板”|“系统”|“设备安装”|“设备安装限制”|“禁止安装与下列任何设备 ID 相匹配的设备”。在策略设置中选择“启用”,单击“显示”(也在策略设置中),并在“显示内容”对话框中选择“添加”。然后在“添加项目”对话框中,粘贴您之前保存的设备信息,如图 4 所示。

图 4 粘贴设备 ID 以精确捕获描述

图 4** 粘贴设备 ID 以精确捕获描述 **(单击该图像获得较大视图)

现在有个问题要注意。如果计算机已经安装了设备,它不会魔术般地自行卸载它和限制对它的访问。因此,如果您要限制硬件,应在开始部署 Windows Vista 时即执行此操作。不过,需要注意的是,任何时候删除已安装的设备然后重新安装它,Windows Vista 都将再次进行检查。因此,像拇指 U 盘那样的设备(删除后又重新安装)最符合这种情况。由于 Windows Vista 仅在重新接入设备时才进行重新检查,因此那时会对设备实施限制(即使计算机上最初已经加载了设备驱动程序)。更大的难题来自计算机附带的设备,它们没有删除后再重新接入的过程。对于这些设备,目前还没有明显有效的解决方案。

当您打开之前从未识别到硬件设备的计算机时,Windows 将尝试安装驱动程序,并在安装过程中提供状态信息。如果已经为这类设备设置限制策略,将会看到如图 5 所示的结果。

图 5 禁止安装设备

图 5** 禁止安装设备 **(单击该图像获得较大视图)

更多硬件限制

在上例中,我们只限制了一个设备。如果您希望可以走一条相反的路径,即默认限制所有硬件,然后设定允许的设备,又该怎么做呢?同样,您可以在图 2 中看到这些策略设置的列表,图中显示了组策略的“计算机配置”|“管理模板”|“设备安装”|“设备安装限制”分支部分。您可以从多个可用设置中选择。

第一项是“允许管理员忽略设备安装限制”。默认情况下,Windows Vista 上的本地管理员必须接受已设置的限制。如果您启用此设置,本地管理员可以忽略该限制并安装任意硬件。

下一项是“允许使用与下列设备安装程序类相匹配的驱动程序安装设备”。通过在此策略设置中输入设备描述,您可以明确允许在系统上安装哪些硬件设备。请注意,此策略设置仅支持安装程序类,不支持设备 ID(如示例中使用的那些项)。

要取得相反效果,您可以设置“阻止使用与下列设备安装程序类相匹配的驱动程序安装设备”。

另外两项设置“当策略阻止安装时显示自定义信息 [气球文本]”和“当策略阻止安装时显示自定义信息 [气球标题]”,可帮助您自定义该信息,如图 5 所示。

如前面所述,基于硬件类别可以指定较为宽泛的硬件描述。应当注意的是,策略设置“允许安装与下列设备 ID 相匹配的设备”不支持类别 ID 描述。若要使用类别 ID 描述,请使用“允许使用与下列设备安装程序类相匹配的驱动程序安装设备”或“阻止使用与下列设备安装程序类相匹配的驱动程序安装设备”。后者最适合与设置“禁止安装未由其他策略设置描述的设备”一起使用。通过禁止安装任何设备(默认情况),然后使用此设置,您可以精确指定要允许安装的设备。

在本例中,我使用了策略“阻止安装与下列任何设备 ID 相匹配的设备”,以基于设备 ID 来限制特定硬件类型。如果您希望使用设备类别来实施限制,必须利用其他特定策略设置,如“允许使用与下列设备安装程序类相匹配的驱动程序安装设备”或“阻止使用与下列设备安装程序类相匹配的驱动程序安装设备”。

“禁止安装可移动设备”是一种快捷的通用限制方式,可限制任何将自身描述为可移动设备的硬件设备,包括 USB 设备。此设置非常宽泛,因此最好不要频繁使用它,而应使用前面所述技术获取要限制的适当设备 ID,并具体锁定。

最后,“禁止安装未由其他策略设置描述的设备”是一项包罗甚广的策略设置,基本上限制了所有硬件,除非明确指明可以安装的设备。此策略与各种“允许”策略(如“允许安装与下列设备 ID 相匹配的设备”配合使用可生成强大的工具,只允许在您的环境中安装所希望的设备。

结束语

Windows Vista 中的组策略新增了许多强大功能,非常适于只允许在您环境中安装所希望设备的情形。您只需在部署的早期阶段实施相应策略设置,即可在网络中将不希望接入的设备永远拒之门外。

与 Microsoft 组策略首席项目经理 Michael Dennis 先生的访谈

我最近有幸拜访了 Microsoft 组策略项目的缔造者和领航员 Michael Dennis 先生。Michael 正准备离开组策略团队,在 Microsoft 内寻求其他发展机遇。我与 Michael 就过去九年内组策略的发展、现状及其未来方向进行了回顾与反思。

Jeremy Moskowitz Michael,我想许多人都想知道,您认为您在领导 Microsoft 组策略团队这段时间内所取得的最大成就是什么。

Michael Dennis 最大的成就应追溯到很久以前,那时我们正全力开发后来称为组策略的项目。我们已经在 Windows NT® 4.0 上有了系统策略,因此我们开始对这方面以及所存在的问题予以关注。因为当时正处于 Active Directory® 开发期间,所以我们着眼于需要更好地解决客户端和服务器的可管理性方面。

当时即构想以层次结构来构建组策略,这种构想之前从未实施过,这对我们是一个巨大挑战。因此,我们开始专注于核心基础结构、客户端进程以及与 Active Directory 的集成。

我们所取得的最大成就的副产物同时也是我们的最大失误所在。那是因为我们在 Windows 2000 中提供的 GUI 出现了许多问题。人们需要一个组策略专家才能有效使用它,因为管理员需要了解所有的一切是如何运作的。真希望当时就能够创建并提供组策略管理控制台 (GPMC) 和策略的结果集 (RSoP)(尽管当时的设计规范包含了这些内容)。

JM 您希望能在组策略中包含哪些内容?

MD 值得高兴的是,我希望在 Windows 2000 版本后能够包含的内容如今都已在 Windows Vista 中实现 — 例如 RSoP、GPMC,以及增加的各种设置等。真希望我们能够早些完成所有这一切。

此外,我还希望合作伙伴们能够更方便地对组策略基础结构进行扩展。我们的服务器端/客户端扩展模型要求开发人员进行大量工作。不过,也许有人会说我们的 ADM/ADMX 模板结构已经能够提供一个方便的可扩展框架。但是,如果该系统部分能够允许人们扩展更多类型的设置,那再好不过了。

我还希望 GPMC 报告功能对于合作伙伴和第三方开发人员具有更好的可扩展性。这是第三方工具供应商一直迫切希望的。

JM 人们对于组策略团队尚有哪些不了解的方面?

MD 有时人们并不清楚组策略团队在整个体系中所处的位置。人们普遍认为我们负责构建基础结构、传输以及服务器端和客户端部分。但是仅在 Windows Vista 中,我们就与 Microsoft 的 120 个不同团队展开合作,以使各项新设置在此版本中准备就绪。

读者应当清楚,组策略不应为启动或登录时的系统运行缓慢问题负责。如果出现运行缓慢的情况,应当是组策略负载的原因。如果您让组策略执行某个重量级任务,它只是按照指示执行。例如,如果让它在每台计算机上安装 Microsoft Office,那就等着吧。但是要清楚它只是在执行您的指示,它将安装所有 Office,之后才会给出登录提示。这属于运行缓慢吗?您当然会如此认为,但是作为部署它的管理员,这只是您希望系统做的。

JM 您一般喜欢使用组策略展示哪些得意之处?

MD 最近,我一直喜欢展示 Windows Vista 中所含的某些新设置。可移动设备设置(用于限制诸如 USB 记忆棒等)是人们一直以来所期盼的。Windows Vista 提供了大约 2,400 项设置,这大大提升了管理员的控制能力。我喜欢询问客户需要进行哪些控制,然后为他们展示如何实现。

JM 您为什么从 ADM 转为使用 ADMX 文件?

MD 从技术角度讲,我们不需要那样做也能在 Windows Vista 中实现新的中心存储功能。转为 ADMX 的一个重要推动因素是这使我们能够相应支持多语言。

过去,在多语言环境中,您经常会遇到无法用另一种语言充分写出 GPO 中的 ADM 文件内容的情况。由于历史原因,我们借用了 Windows NT 4.0 的 ADM 格式,它又是借用自 Windows 98,而后者又借用自 Windows 95。如果那时就有了 XML,我们的文件格式会有一个更好的选择。

但是现在,因为有了 XML,多语言支持变得更简单,并且将来还有机会针对我们目前架构化的语言进行注册表和设置增强。

JM 在 GP 团队的工作过程中,您必须克服的最大内部困难是什么?

MD 团队所面临的最大也是一直存在的问题是试图使 Windows 的其他组件能够通过策略启用其功能。

某个团队可能会说“我们刚刚构建了这一伟大的新功能。怎么会有人想要关闭它呢?”。对此我们可以理解。但是我们确实经历了许多这类问题。

此外还有与通过策略启用某些功能相关的技术难题,新推出的高级安全 Windows 防火墙 (Windows Firewall with Advanced Security, WFAS) 就是一例。WFAS 是一块难啃的骨头,很难直接通过策略正确启用它。WFAS 团队为 Windows Vista 创建的接口很好,但正确处理它却是难上加难。

在 Windows Vista 之前的 Windows 版本中,产品团队自身并不总是考虑通过策略启用他们的组件。但是,在 Windows Vista 的开发过程中,许多团队都来询问我们如何这样做。那真的令人望而生畏!

JM 您下一步准备做些什么?

MD 我正准备调到“移动信息工作者”团队,该团队负责 Smartphone、Pocket PC 等项目。我的任务会是将 Windows Server System 中的管理技术扩展到 Windows Mobile® 设备中。

我会将我对可管理性的憧憬和热情倾注到这一新领域。与此同时,我已经将组策略团队提升到一个重要地位,即使我不在,他们也能够不断向前发展。

JM 您还想对我们的读者说些什么?

MD 在组策略的整个发展过程中,一项重要措施就是面对客户,切实了解他们要做些什么。如果客户已经有了一个良好的方案结构构思,他们会希望组策略能够包容他们的想法;如果他们有了一个执行某项任务的业务案例,他们需要将情况反馈给我们。

我们有一套良好的信息反馈机制,任何人都可以通过 WindowsServerFeedback.com 向我们反馈信息。找到其中的“组策略”按钮即可。

如果大家能够明确说明“这是我的问题,这是我的业务案例,我需要系统能够完成这项任务,这是原因所在”,那么这类信息对我们来说是非常非常有价值的。那些决定实施组策略的人们应认真阅读其中提供的每个条目。

同样,如果您希望通过实施组策略获得实效,也请告诉我们您的需要。但是,请不要只是告诉我们说“我们需要一个完成某任务的策略设置”,而不告诉我们原因。“如何实现”是我们的工作要解决的,但组策略团队真正需要了解的是“为什么”。

JM 非常感谢您抽出时间和我们分享您在 Microsoft 组策略团队的经历。祝您一切都好!

MD 谢谢您,Jeremy。

Jeremy Moskowitz是 MCSE 和组策略方面的 MVP,他管理着 GPanswers.com,这是一个关于组策略的社区论坛。他负责一系列有关组策略的深入培训研讨会。他的最新著作是“Group Policy:Management, Troubleshooting and Security”(组策略:管理、疑难解答与安全性)(Sybex, 2007)。您可通过 www.GPanswers.com 与 Jeremy 联系。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.