本文介绍如何阻止在 Windows 中远程使用本地帐户。
原始产品版本: SQL Server 2016 Developer、SQL Server 2016 Enterprise、SQL Server 2016 Enterprise Core
原始 KB 数: 4488256
总结
在 Active Directory 环境中使用本地帐户进行远程访问时,可能会遇到多种不同的问题。 如果管理本地帐户在多个设备上具有相同的用户名和密码,则会发生最重要的问题。 在该组中的一台设备上具有管理权限的攻击者可以使用本地安全帐户管理器(SAM)数据库中的帐户密码哈希来获得对组中使用“传递哈希”技术的其他设备的管理权限。
详细信息
我们最新的安全指南利用新的 Windows 功能阻止本地帐户的远程登录来响应这些问题。 Windows 8.1 和 Windows Server 2012 R2 引入了以下安全标识符(SID):
S-1-5-113:NT AUTHORITY\本地帐户
S-1-5-114:NT AUTHORITY\本地帐户和管理员组的成员
安装更新 Microsoft安全公告:更新以改进凭据保护和管理后,Windows 7、Windows 8、Windows Server 2008 R2 和 Windows Server 2012 上也定义了这些 SID:更新以改进凭据保护和管理:2014 年 5 月 13 日。
如果正在进行身份验证的用户帐户是本地帐户,则会在登录时将第一个 SID 添加到用户访问令牌。 如果本地帐户是内置 Administrators 组的成员,则第二个 SID 也会添加到令牌中。
这些 SID 可以授予对所有本地帐户或所有管理本地帐户的访问权限或拒绝访问权限。 例如,可以在组策略中的用户权限分配中使用这些 SID“拒绝从网络访问此计算机”和“拒绝通过远程桌面服务登录”。这是我们最新安全指南中建议的做法。 若要在定义这些新 SID 之前达到相同的效果,必须显式命名要限制的每个本地帐户。
在 Windows 8.1 和 Windows Server 2012 R2 指南的初始版本中,我们拒绝所有 Windows 客户端和服务器配置的网络和远程桌面登录到本地帐户(S-1-5-113)。 这会阻止所有本地帐户的所有远程访问。
我们再次发现,故障转移群集依赖于非管理本地帐户(CLIUSR)进行群集节点管理,阻止其网络登录访问会导致群集服务失败。 由于 CLIUSR 帐户不是管理员组的成员,因此在“拒绝从网络访问此计算机”设置中将 S-1-5-113 替换为 S-1-5-114,使群集服务能够正常工作。 这样做,同时仍然通过拒绝网络登录到管理本地帐户来防止“传递哈希”类型的攻击。
尽管我们可以保持指导不变,并为故障转移群集方案添加“特殊情况”脚注,但我们改为选择简化部署并更改 Windows Server 2012 R2 成员服务器基线,如下表所述。
策略路径 | Computer Configuration\Windows Settings\Local Policies\User Rights Assignment |
---|---|
策略名称 | 拒绝通过网络访问该计算机 |
原始值 | 来宾、本地帐户* |
新值 | 管理员组的来宾、本地帐户和成员* |
- 本指南还建议将域管理员(DA)和企业管理员(EA)添加到这些限制。 例外情况在域控制器和专用管理工作站上。 DA 和 EA 特定于域,不能在通用组策略对象 (GPO) 基线中指定。
注意
此更改仅适用于成员服务器基线。 远程桌面登录限制未更改。 组织仍可以决定拒绝对非聚集服务器的本地帐户的网络访问。
本地帐户的限制适用于已加入 Active Directory 域的系统。 未加入的工作组 Windows 设备无法对域帐户进行身份验证。 因此,如果对这些设备上的本地帐户的远程使用应用限制,则只能在控制台上登录。
有关 CLIUSR 帐户的详细信息
CLIUSR 帐户是故障转移群集功能创建的本地用户帐户(如果该功能安装在 Windows Server 2012 或更高版本上)。
在 Windows Server 2003 和群集服务的早期版本中,使用域用户帐户启动服务。 此群集服务帐户(CSA)用于形成群集、加入节点、执行注册表复制等。 基本上,在节点之间完成的任何类型的身份验证都使用此用户帐户作为通用标识。
由于域管理员正在设置从域用户帐户中剥离权限的组策略策略,因此遇到了多个支持问题。 管理员不认为其中一些用户帐户用于运行服务。
例如,使用登录即服务权限时遇到此问题。 如果群集服务帐户没有此权限,则无法启动群集服务。 如果对多个群集使用相同的帐户,则可能会遇到多个重要系统中的生产停机时间。 还必须处理 Active Directory 中的密码更改。 如果在 Active Directory 中更改了用户帐户密码,则还必须更改使用该帐户的所有群集和节点的密码。
在 Windows Server 2008 中,我们重新设计了启动服务的方式,使服务更具弹性、容易出错且更易于管理。 我们开始使用内置网络服务来启动群集服务。 请记住,这不是完整帐户,只是一个减少的特权集。 通过减少此帐户的范围,我们发现组策略问题的解决方案。
对于身份验证,该帐户已切换到使用与群集名称关联的计算机对象(称为群集名称对象(CNO)作为通用标识。 由于此 CNO 是域中的计算机帐户,因此它会自动轮换由域策略定义的密码。 (默认情况下,这是每 30 天一次。
从 Windows Server 2008 R2 开始,管理员开始虚拟化其数据中心的所有内容。 这包括域控制器。 群集共享卷(CSV)功能也引入并成为私有云存储的标准。 一些管理员接受了虚拟化并虚拟化了数据中心中的每个服务器。 这包括将域控制器作为虚拟机添加到群集,并使用 CSV 驱动器来保存 VM 的 VHD/VHDX。
这为许多公司创建了一个“Catch 22”方案。 若要装载 CSV 驱动器以访问 VM,必须联系域控制器来检索 CNO。 但是,无法启动域控制器,因为它正在 CSV 上运行。
与域控制器建立缓慢或不可靠的连接也会影响到 CSV 驱动器的 I/O。 CSV 通过 SMB 执行群集内通信,类似于连接到文件共享。 若要连接到 SMB,连接必须进行身份验证。 在 Windows Server 2008 R2 中,涉及使用远程域控制器对 CNO 进行身份验证。
对于 Windows Server 2012,我们必须考虑如何充分利用这两个世界,并避免我们看到的一些问题。 我们仍在使用缩减的网络服务用户权限来启动群集服务。 但是,为了删除所有外部依赖项,我们现在使用本地(非域)用户帐户在节点之间进行身份验证。
此本地“用户”帐户不是管理帐户或域帐户。 创建群集或添加到现有群集的新节点上时,系统会自动为每个节点上创建此帐户。 此帐户由群集服务自行管理。 它会自动轮换帐户的密码,并同步所有节点。 CLIUSR 密码的轮换频率与 CNO 相同,由域策略定义。 (默认情况下,这是每 30 天一次。由于帐户是本地帐户,因此它可以对 CSV 进行身份验证并装载 CSV,以便虚拟化域控制器可以成功启动。 现在可以虚拟化所有域控制器,而无需担心。 因此,我们通过减少外部依赖项来提高群集的复原能力和可用性。
此帐户是 CLIUSR 帐户。 它通过计算机管理管理管理单元中的说明进行标识。
常见问题是是否可以删除 CLIUSR 帐户。 从安全角度来看,审核期间可能会标记其他本地帐户(非默认帐户)。 如果网络管理员不确定此帐户的用途(即,他们不会阅读“故障转移群集本地标识”的说明),则他们可能会删除它,而无需了解其影响。 若要使故障转移群集正常运行,需要使用此帐户进行身份验证。
加入节点启动群集服务,并传递 CLIUSR 凭据。
为了达到相同的效果,将传递所有凭据,以便节点可以加入。
我们又提供了一个保障,以确保持续成功。 如果意外删除 CLIUSR 帐户,则当节点尝试加入群集时,系统会自动重新创建它。
总结:CLIUSR 帐户是群集服务的内部组件。 它是自我管理,因此无需配置或管理它。
在 Windows Server 2016 中,我们进一步利用证书,使群集能够在没有任何外部依赖项的情况下运行。 这样,便可以使用位于不同域或所有域外部的服务器来创建群集。