在现有堡垒林中安装 HGS

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

将 HGS 服务器加入根域

在现有的堡垒林中,必须将 HGS 添加到根域。 使用服务器管理器或 添加计算机 将 HGS 服务器加入到根域。

添加 HGS 服务器角色

在已提升权限的 PowerShell 会话中运行本主题中的所有命令。

通过运行以下命令来添加主机保护者服务角色:

Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart

如果你的数据中心有要加入 HGS 节点的安全堡垒林,请执行以下步骤。 你还可以使用这些步骤配置2个或更多个连接到同一域的独立 HGS 群集。

将 HGS 服务器联接到所需域

使用服务器管理器或 添加计算机 将 HGS 服务器联接到所需的域。

准备 Active Directory 对象

创建组托管服务帐户和2个安全组。 如果用来初始化 HGS 的帐户不具有在域中创建计算机对象的权限,则还可以预暂存群集对象。

组托管服务帐户

组托管服务帐户 (gMSA) 是 HGS 用来检索和使用其证书的标识。 使用 uninstall-adserviceaccount 创建 gMSA。 如果这是域中的第一个 gMSA,则需要添加密钥分发服务根密钥。

需要允许每个 HGS 节点访问 gMSA 密码。 配置此配置的最简单方法是创建一个安全组,其中包含所有 HGS 节点并授予该安全组对检索 gMSA 密码的访问权限。

将 HGS 服务器添加到安全组后,必须重新启动它,以确保其获得新的组成员身份。

# Check if the KDS root key has been set up
if (-not (Get-KdsRootKey)) {
    # Adds a KDS root key effective immediately (ignores normal 10 hour waiting period)
    Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))
}

# Create a security group for HGS nodes
$hgsNodes = New-ADGroup -Name 'HgsServers' -GroupScope DomainLocal -PassThru

# Add your HGS nodes to this group
# If your HGS server object is under an organizational unit, provide the full distinguished name instead of "HGS01"
Add-ADGroupMember -Identity $hgsNodes -Members "HGS01"

# Create the gMSA
New-ADServiceAccount -Name 'HGSgMSA' -DnsHostName 'HGSgMSA.yourdomain.com' -PrincipalsAllowedToRetrieveManagedPassword $hgsNodes

GMSA 将需要在每个 HGS 服务器上的安全日志中生成事件的权限。 如果使用组策略来配置用户权限分配,请确保在你的 HGS 服务器上为 gMSA 帐户授予 " 生成审核事件" 特权

备注

组托管服务帐户从 Windows Server 2012 Active Directory 架构开始可用。 有关详细信息,请参阅 组托管服务帐户要求

JEA 安全组

设置 HGS 时,可以将 足够的管理 (JEA) PowerShell 终结点配置为允许管理员管理 HGS,无需具有完全的本地管理员权限。 不需要使用 JEA 来管理 HGS,但必须在运行 HgsServer 时进行配置。 JEA 终结点的配置包括指定包含 HGS 管理员和 HGS 审阅者的2个安全组。 属于管理员组的用户可以在 HGS 上添加、更改或删除策略;审阅者只能查看当前配置。

使用 Active Directory 管理工具或 new-adgroup为这些 JEA 组创建2个安全组。

New-ADGroup -Name 'HgsJeaReviewers' -GroupScope DomainLocal
New-ADGroup -Name 'HgsJeaAdmins' -GroupScope DomainLocal

群集对象

如果用于设置 HGS 的帐户不具有在域中创建新计算机对象的权限,则需要预先暂存群集对象。 在 Active Directory 域服务中预留群集计算机对象中介绍了这些步骤。

若要设置第一个 HGS 节点,你将需要创建一个 (CNO) 的群集名称对象和一个 (VCO) 的虚拟计算机对象。 CNO 表示群集的名称,主要由故障转移群集内部使用。 VCO 表示位于群集顶层的 HGS 服务,它将是注册到 DNS 服务器的名称。

重要

要运行 Initialize-HgsServer 的用户需要 Initialize-HgsServer ACTIVE DIRECTORY 中的 CNO 和 VCO 对象。

若要快速预留 CNO 和 VCO,请 Active Directory 管理员运行以下 PowerShell 命令:

# Create the CNO
$cno = New-ADComputer -Name 'HgsCluster' -Description 'HGS CNO' -Enabled $false -Passthru

# Create the VCO
$vco = New-ADComputer -Name 'HgsService' -Description 'HGS VCO' -Passthru

# Give the CNO full control over the VCO
$vcoPath = Join-Path "AD:\" $vco.DistinguishedName
$acl = Get-Acl $vcoPath
$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $cno.SID, "GenericAll", "Allow"
$acl.AddAccessRule($ace)
Set-Acl -Path $vcoPath -AclObject $acl

# Allow time for your new CNO and VCO to replicate to your other Domain Controllers before continuing

安全基线异常

如果要将 HGS 部署到高度锁定的环境中,某些组策略设置可能会阻止 HGS 正常运行。 检查组策略对象中是否有以下设置,如果受到影响,请遵循指导:

网络登录

策略路径:计算机配置 \ Windows 设置 \Security 设置 \Local 策略 \ 特权分配

策略名称: 拒绝从网络访问此计算机

必需的值: 确保该值不会阻止所有本地帐户的网络登录。 不过,你可以安全地阻止本地管理员帐户。

原因: 故障转移群集依赖于名为 CLIUSR 的非管理员本地帐户来管理群集节点。 阻止此用户的网络登录将阻止群集正常运行。

Kerberos 加密

策略路径:计算机配置 \ Windows 设置 \Security 设置 \Local

策略名称: 网络安全:配置 Kerberos 允许的加密类型

操作:如果配置了此策略,则必须使用 uninstall-adserviceaccount 将 gMSA 帐户更新为仅在此策略中使用受支持的加密类型。 例如,如果你的策略只允许 AES128_HMAC_SHA1 和 AES256_HMAC_SHA1,则应该运行 Set-ADServiceAccount -Identity HGSgMSA -KerberosEncryptionType AES128,AES256

后续步骤