我们在 Windows 2003 域中运行终端服务器场,我发现应用于 TS 服务器的软件限制 GPO 设置存在问题。以下是我们的配置和问题的详细信息:
我们的所有服务器(域控制器和终端服务器)都运行 Windows Server 2003 SP2,域和林都处于 Windows 2003 级别。我们的 TS 服务器位于一个 OU 中,我们在该 OU 中链接了特定的 GPO 并阻止了继承,因此只有 TS 特定的 GPO 应用于这些 TS 服务器。我们的用户都是远程用户,没有工作站加入我们的域,因此我们不使用环回策略处理。我们采用“白名单”方法来允许用户运行应用程序,因此只有我们批准并添加为路径或哈希规则的应用程序才能运行。我们将软件限制中的安全级别设置为不允许,并将强制设置为“除库之外的所有软件文件”。
我发现,如果我为用户提供某个应用程序的快捷方式,即使该应用程序不在“白名单”应用程序的附加规则列表中,他们也可以启动该应用程序。如果我为用户提供该应用程序的主可执行文件的副本,而他们尝试启动它,则会收到预期的“此程序已被限制...”消息。看来软件限制确实有效,但用户使用快捷方式启动应用程序而不是从主可执行文件本身启动应用程序的情况除外,这似乎与使用软件限制的目的相矛盾。
我的问题是:有其他人见过这种行为吗?有其他人可以重现这种行为吗?我对软件限制的理解是否遗漏了什么?我在软件限制中配置错误了吗?
编辑
稍微澄清一下问题:
没有强制执行更高级别的 GPO。运行 gpresults 显示,实际上,只应用了 TS 级别的 GPO,我确实可以看到我的软件限制正在应用。没有使用路径通配符。我正在使用位于“C:\Program Files\Application\executable.exe”的应用程序进行测试,并且应用程序可执行文件不在任何路径或哈希规则中。如果用户直接从应用程序的文件夹启动主应用程序可执行文件,则会强制执行软件限制。如果我为用户提供指向位于“C:\Program Files\Application\executable.exe”的应用程序可执行文件的快捷方式,那么他们就可以启动该程序。
编辑
此外,LNK 文件在指定文件类型中列出,因此它们应该被视为可执行文件,这意味着它们受相同的软件限制设置和规则的约束。
答案1
所以我终于找到了答案。在我们的软件限制规则中,有一条路径规则如下:
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%
这允许 Program Files 目录及其子目录中的任何可执行文件不受阻碍地运行。配置软件限制时,此路径是默认添加的。删除此路径规则会导致所有程序被拒绝,即使它们的可执行文件被明确添加为不受限制的路径。
这就引出了一个问题:如果 99% 的程序都安装到 Program Files 目录,但我想限制某些程序,如何通过软件限制来实现这一点?
同样重要的问题是,除了那些不在 Program Files 中的程序或可执行文件之外,软件限制到底有什么用处?
答案2
我会检查您为用户创建的快捷方式的 ACL。根据软件限制策略最佳实践:安全策略;安全服务,
用户可能会尝试通过重命名或移动不允许的文件或覆盖不受限制的文件来规避软件限制策略。因此,建议您使用访问控制列表 (ACL) 来拒绝用户执行这些任务所需的访问权限
答案3
您可能想尝试删除 LNK 作为指定文件类型。即使它们被视为可执行文件,也不应该如此。这样,软件限制应该应用于 LNK 文件所针对的可执行文件,而不是 LNK 文件本身。
答案4
我经历过你说的情况——这很烦人。我确信默认情况下你的用户可以运行安装在 Program Files 中的应用程序。
您是否尝试过用 NTFS 权限和白名单来限制对应用程序的访问?
然后,用户可以通过快捷方式访问他们想要的任何内容,但这对他们没有帮助,因为他们无法访问该程序。