Kerberos 身份验证

Tenable Identity Exposure 使用您提供的凭据向配置的域控制器进行身份验证。这些 DC 接受 NTLM 或 Kerberos 身份验证。NTLM 是一种存在已记录的安全问题的旧协议,Microsoft 和所有网络安全标准现在不鼓励使用。而 Kerberos 则是您应考虑的更可靠的协议。Windows 始终优先尝试 Kerberos,且仅在 Kerberos 不可用的情况下采用 NTLM。

在少数例外情况下,Tenable Identity Exposure 与 NTLM 和 Kerberos 兼容。当 Kerberos 满足所有必要条件时,Tenable Identity Exposure 将其作为首选协议。此部分内容会介绍要求并演示如何配置 Tenable Identity Exposure 以确保使用 Kerberos。

使用 NTLM 而不是 Kerberos 也是 SYSVOL 强化干扰 Tenable Identity Exposure 的原因。有关更多信息,请参阅“SYSVOL 强化干扰 Tenable Identity Exposure”。

Tenable Identity Exposure 部署模式的兼容性

部署模式 Kerberos 支持
本地
SaaS-TLS(旧版)
适用于 Tenable Identity Exposure 的安全中继 的 SaaS
带 VPN 的 SaaS 否 - 必须将安装切换到 适用于 Tenable Identity Exposure 的安全中继 部署模式。

技术要求

  • Tenable Identity Exposure 中配置的 AD 服务帐户必须具有 UserPrincipalName (UPN)。请参阅 服务帐户和域配置 获取相关说明。

  • DNS 配置和 DNS 服务器必须允许解析所有必要的 DNS 条目 — 您必须将目录侦听器或中继计算机配置为使用知道域控制器的 DNS 服务器。如果目录侦听器或中继计算机已加入域(Tenable Identity Exposure 不建议这样做),则您应已满足此要求。最简单的方法是将域控制器本身用作首选 DNS 服务器,因为它通常也运行 DNS。例如:

    注意:如果目录侦听器或中继计算机连接到多个域,并且可能位于多个林中,请确保配置的 DNS 服务器可以解析所有域的所有必需 DNS 条目。否则,您需要设置多个目录侦听器或中继计算机。
  • Kerberos“服务器”的可访问性 (KDC) — 这需要通过端口 TCP/88 从目录侦听器或中继到域控制器的网络连接。如果目录侦听器或中继已加入域(Tenable 不建议这样做),则您应已满足此要求。每个配置的 Tenable Identity Exposure 林都要求 Kerberos 网络与包含服务帐户的相应域中的至少一个域控制器建立连接,并且每个连接的域中都至少有一个域控制器。

    有关要求的更多信息,请参阅“网络流矩阵”。

    注意:目录侦听器或中继计算机无需加入域即可使用 Kerberos。

服务帐户和域配置

要在 Tenable Identity Exposure 中配置 AD 服务帐户和 AD 域以使用 Kerberos,请执行以下操作:

  1. 使用 User PrincipalName (UPN) 格式登录。在此示例中,UPN 属性为“[email protected]”。

    1. 在包含服务帐户的林的域中找到 UPN 属性,如下所示:

    注意:UPN 看起来像电子邮件地址,且经常(但不总是)与用户的电子邮件地址相同。
    1. Tenable Identity Exposure 的林配置部分中,设置此 UPN 而非设置短“用户名”格式或 NetBIOS“域/用户名”格式,如下所示:

  1. Tenable Identity Exposure 的域配置中使用完全限定域名 (FQDN),为主域控制器 (PDC) 设置 FQDN,而不是其 IP。

故障排除

Kerberos 需要执行多个配置步骤才能正常工作。否则,Windows 以及扩展程序 Tenable Identity Exposure 会静默转向使用 NTLM 身份验证。

DNS

确保目录侦听器或中继计算机上使用的 DNS 服务器可以解析提供的 PDC FQDN,例如:

Kerberos

如要验证 Kerberos 是否使用您在目录侦听器或中继计算机上运行的命令,请执行以下操作:

  1. 验证 Tenable Identity Exposure 中配置的 AD 服务帐户是否可获得 TGT:

  1. 在命令行或 PowerShell 中,运行“runas /netonly /user:<UPN> cmd ”,然后输入密码。输入或粘贴密码时要格外小心,因为“/netonly”标记可导致无法验证。

  2. 在第二个命令提示中,运行“klist get krbtgt”以请求 TGT 票证。

    以下示例显示成功结果:

    以下是可能的错误代码:

    • 0xc0000064:“用户使用拼写错误或错误的用户帐户登录” -> 检查登录信息(即UPN 中“@”以前的部分)。

    • 0xc000006a:“用户使用拼写错误或错误的密码登录” -> 检查密码。

    • 0xc000005e:“目前没有可用于登录请求服务的登录服务器。”-> 检查 DNS 解析是否运作,以及服务器是否可以联系返回的 KDC 等。

    • 其他错误代码:请参阅与 4625 事件相关的 Microsoft 文档

  1. 验证在 Tenable Identity Exposure 中配置的域控制器是否可以获得服务票证。在相同的第二个命令提示符中,运行“klist get host/<DC_FQDN> ”(替换“<DC_FQDN>”)。

    以下示例显示成功结果: