GSSAPI 错误:KDC 不支持加入多域 AD 林的 RHEL 8 上的加密类型

GSSAPI 错误:KDC 不支持加入多域 AD 林的 RHEL 8 上的加密类型

我有一个简单的 MS ADDS 多域林设置,其中包含一个父域和一个子域。我使用以下命令成功将 RHEL 8 服务器加入子域这个官方文档。所有操作系统都尽可能使用默认设置。我可以使用子域的 AD 帐户成功通过 SSH 进入 RHEL 服务器。但是当我尝试使用父域的帐户时,登录失败。一旦我提交父域的用户名,journalctl就会报告以下错误:

sssd_be[...]: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (KDC has no support for encryption type)

我检查了每个域的 DC,并可以确认所有 DC 都支持相同的三种默认加密类型(存储在msDS-SupportedEncryptionTypes每个 DC 计算机帐户的属性中):

  • RC4_HMAC_MD5
  • AES128_CTS_HMAC_SHA1_96
  • AES256_CTS_HMAC_SHA1_96

我还确认 RHEL 8 提供了合适的加密类型(/etc/crypto-policies/back-ends/krb5.config):

[libdefaults]
permitted_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 camellia256-cts-cmac aes128-cts-hmac-sha1-96 aes128-cts-hmac-sha256-128 camellia128-cts-cmac

因此,应该有两个匹配项:aes128-cts-hmac-sha1-96aes256-cts-hmac-sha1-96。正如我已经指出的那样,它对于子域运行良好。那么,为什么没有适合父域的加密类型呢?

答案1

AD 信任的属性包括一个名为“其他域支持 Kerberos AES 加密”的属性。默认情况下,不选中此选项。在这种情况下,这导致父域无法为 Kerberos 提供 AES 加密类型。因此,唯一的选择是RC4_HMAC_MD5。在 RHEL 8 上,RC4 加密已被弃用并默认禁用。因此,RHEL 和父域之间确实没有可用的加密类型可供商定。

勾选“其他域支持Kerberos AES加密”选项后,父域的身份验证也有效。

如果你想以编程方式设置此设置,这里你去。

答案2

对于自 CentOS 8 流最近发生更改以来正在寻找此问题的其他解决方法的人来说,以下是 RedHat 提供的官方解决方案:

https://access.redhat.com/solutions/5728591

本质上,你运行:

update-crypto-policies --set DEFAULT:AD-SUPPORT

...这样就可以RC4_HMAC_MD5正确支持,并且它有效。显然,如果您能找到方法,在您的域上启用 AES 可能是一个更好的主意。

相关内容