在现有堡垒森林中安装 HGS

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

将 HGS 服务器加入根域

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

添加 HGS 服务器角色

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

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

Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart

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

将 HGS 服务器加入所需的域

使用“服务器管理器”或 Add-Computer 将 HGS 服务器加入所需的域。

准备 Active Directory 对象

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

组托管服务帐户

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

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

必须在将 HGS 服务器添加到安全组后重新启动 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 服务器上的安全日志中生成事件的权限。 如果你使用组策略来配置用户权限分配,请确保 gMSA 帐户在你的 HGS 服务器上被授予“生成审核事件权限”。

注意

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

JEA 安全组

在你设置 HGS 时,系统会配置一个 Just Enough Administration (JEA) PowerShell 端点,以允许管理员管理 HGS,而不需要完全的本地管理员权限。 不需要使用 JEA 来管理 HGS,但在运行 Initialize-HgsServer 时仍必须对其进行配置。 JEA 终结点的配置包括指定 2 个安全组,其中包含你的 HGS 管理员和 HGS 审阅者。 属于 Admin 组的用户可以在 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 的用户需要完全控制 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 设置\安全设置\本地策略\用户权限分配

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

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

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

Kerberos 加密

策略路径:计算机配置\Windows 设置\安全设置\本地策略\安全选项

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

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

后续步骤