过去,我在 Windows Server 2008 Web 服务器上检查了服务器强化检查表,以确保符合 PCI 标准。基本上,有很多组策略、注册表和其他设置需要符合行业安全、加密等方面的最佳实践。在查看一个特定部分时,它指出以下内容:
系统应配置为禁止 IP 源路由、ICMP 重定向和 Internet 路由器发现协议。此外,将系统配置为在检测到 SYN 泛洪时允许连接更快地超时。
过去,我能够使用以“MSS:”开头的组策略设置来设置这些限制,在本地计算机策略 -> 计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 安全选项下
回顾我的笔记后,%SystemRoot%\inf 中有一个名为 sceregvl.inf 的文件需要编辑,但我没有采取足够的细节来重现该方法。
如何在 Windows Server 2012 R2 上查看和编辑这些 MSS 组策略设置?
正式来说,你不能。(截至撰写本文时,在 Server 2012 R2 上。)
非官方的?也许...
“MSS”组策略设置未包含在 Active Directory 的默认开箱即用安装中。它们是由该领域的一个咨询小组开发的附加组件,这些设置被认为非常有用,以至于它们包含在称为安全合规管理器的“解决方案加速器”中。(它以前以各种类似的名称而闻名,例如“Windows 7 安全合规性管理工具包”。)
问题是,安全合规管理器带有一大堆您不想要的垃圾,例如 SQL Express 实例。您真的不想在域控制器上安装的垃圾。您只想从中提取您想要的部分,即“LocalGPO.msi”包。
下一个问题是 Security Compliance Manager 从未针对 2012 R2 进行更新。2012 年,是的。2012 R2,没有。
话虽如此,您仍然可以让它在 2012 R2 上运行,但请注意 - 这样做可能会使您的服务器处于无法支持的状态。
下载安全合规管理器安装。在您的服务器上运行它。
运行 .exe,但不要继续安装。安装程序会将一些文件压缩到硬盘驱动器上的临时目录中,例如
C:\a1b2c3d4e5f6a0b1c2
或D:\a1b2c3d4e5f6a0b1c2
. 在该目录中,您将找到一个data.cab
文件。打开该文件,然后提取名为的文件GPOMSI
并将该文件重命名为LocalGPO.msi
. 现在取消 SCM 安装程序,它将删除临时文件。在您的服务器上安装 LocalGPO.msi。然后启动您将在“开始”屏幕中找到的新“LocalGPO 命令行”快捷方式。以管理员身份运行它。键入
cscript LocalGPO.wsf /ConfigSCE
。您将收到一条错误消息,表明您没有运行受支持的操作系统。
在记事本中打开 LocalGPO.wsf 并在脚本中注释掉 ChkOSVer 过程,这样它就不会检查您的版本。现在再次运行上述命令。
我已经看到多份关于这对其他人有用的报告,但它对我不起作用。在脚本的第 2245 行,在 WriteLine 语句中,我仍然遇到 VBscript 错误。我没有费心进行更深入的调试,让自己接受它根本没有为 2012 R2 更新的事实。
2016 年 4 月 11 日编辑:由 Aaron Margosis 撰写的Microsoft 博客上托管的版本包含一个 MSS 扩展版本的下载链接,该版本适用于我的 2012 R2,无需“黑客”。这是一个 zip 文件的链接。在 zip 文件中,您将看到一个名为“Local_Script”的目录。在该文件夹中,您会找到一个名为“MSS_Extension”的子文件夹。只需将该 MSS_Extension 目录传输到您的 2012 R2 域控制器。然后打开命令提示符并浏览到该目录。然后运行:
Cscript LocalGPO.wsf /ConfigSCE
可以使用Microsoft Security Compliance Manager 3恢复 MSS 安全设置。
这实际上将安装在 Server 2012 上,但您需要安装 MS SQL Express 和 Visual C++ 2010 运行时库。它还会抱怨程序兼容性,您可能必须再次重新运行安装程序。
安装后,您将在C:\Program Files (x86)\Microsoft Security Compliance Manager\LGPO(或安装Security Compliance Manager的任何位置)中找到名为LocalGPO.msi的文件。
在您的服务器上运行此 MSI 文件。这将安装到C:\Program Files (x86)\LocalGPO(或您选择安装它的任何其他位置)。
运行:cscript LocalGPO.wsf /? 将向您展示此脚本可用的各种选项,特别是包括:
所以,运行这个命令:
现在,当您在 Server 2012 机器上运行gpedit.msc时,您应该会发现所有 MSS 设置都再次可用。
要对所有机器执行此操作,只需获取LocalGPO.MSI文件并将其安装在它们上,然后在每台机器上运行LocalGPO.wsf脚本以使设置可见。
所有解决方案都与 RyanRes 相同,但是:
要使用 2012R2 运行,我们不能注释 ChkOSVer 过程,但要对其进行编辑:
搜索名为“ChkOSVersion”的例程,向下滚动你会发现一堆 if 语句。您将希望它如下所示:
注意第一个语句。确保您使用 UTF-8 编码保存文件,并且它仍然驻留在与其他文件的依赖项相同的文件夹中。
接下来右键单击“LocalGPO 命令行”图标并选择“以管理员身份运行”
在命令提示符下键入“cscript LocalGPO.wsf /ConfigSCE”并按 Enter。
就这样。我们的 GPMC 中有 MSS GP 设置
有一个更新,其中包括 2012 R2 政策,如下图所示:
确保您获得了 SCM 版本 4。
我对 Win10 和 Server2K12R2 的发现是需要修改 LocalGPO.WSF,以便它打开以更新条目的 INF 文件在 UpdateSCEwithMSSValues 子中打开并保存为 Unicode。这似乎至少让脚本很开心,而且 INF 文件确实在 Windows/Inf 中更新了。但是,在计算机/Windows 设置/安全设置/本地策略/安全选项下运行 GPEDIT.MSC 时,我还没有真正看到 MSS 隐藏条目,就像在 Win7 中看到的那样。要实际访问这些条目,您需要将 ADMX 和 ADML 模板复制到 Windows/PolicyDefinitions,MSS 条目显示在计算机/管理模板下。我的 $.02