Kerberos KDC 在获取凭证时不支持加密类型

Kerberos KDC 在获取凭证时不支持加密类型

我正在使用带有 Kerberos 的 AD 配置 apache/SSO 身份验证。我的 http 服务器是 Debian Wheezy,AD 是 Windows Server 2012。

kpass我使用命令在 WS2012 上为每种可用的加密类型生成了 keytabs 文件。

[email protected]当我尝试与的用户打开会话时kinit,它可以工作。

当我尝试使用 打开会话时,收到以下消息:HTTP/[email protected]

kvno HTTP/[email protected]
kvno: KDC has no support for encryption type while getting credentials for HTTP/[email protected]

此外,当我检查使用的加密时[email protected],我发现:

root@SERVER:~# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting       Expires              Service principal
03/04/2015 12:48:21  03/04/2015 22:48:17  krbtgt/[email protected]
        renew until 04/04/2015 12:48:21, Etype (skey, tkt): arcfour-hmac, arcfour-hmac

我尝试使用以下方式定制我的/etc/krb5.conf

  default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
  default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5

并且使用keytab文件加密但arcfour-hmac没有成功。

我不明白如何改变用于通信的加密类型,为什么它总是需要 arcfour-hmac 以及为什么当我给它 arcfour-hmac 加密时,什么都没有变化......

如何确保 /etc/krb5.conf 更改有效以及如何使 Kerberos 票证生成也能正常工作?

答案1

Active Directory 域控制器支持的加密类型列在msDS-SupportedEncryptionTypes域控制器的计算机对象的属性中。在默认安装中,它们通常如下所示:

RC4_HMAC_MD5
AES128_CTS_HMAC_SHA1_96
AES256_CTS_HMAC_SHA1_96

这是一个位掩码,其结果为十进制 28,因此它将类似于00011100

因此,当您问为什么域控制器“总是只想要 ARC4-HMAC”时,这是因为您的客户端没有与域控制器共同的另外两种加密类型,因此它们在协商过程中被淘汰。

(注意:RC4_HMAC_MD5 确实是所有可能的加密类型中最差、最弱的,但有时也需要支持传统场景和与非 Microsoft 产品的互操作性。)

我查阅了一些文档,找到了其他人的配置文件示例,并认为这可能会有用:

http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos

; for Windows 2008 with AES
   default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
   default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
   permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

请注意,除了支持更好的加密类型之外,它们还在rc4-hmac其配置中指定了与您的配置不同arcfour-hmac-md5。 (另外不要忘记那permitted_enctypes行,我在您的帖子中没有看到它。)

我不能 100% 确定这是否能解决您的问题,因为我现在无法测试它,但希望它能有所帮助。

答案2

这是配置 Kerberos 时最常见的问题,请通过执行以下操作解决此问题,

1)vi /var/kerberos/krb5kdc/kdc.conf

2)检查supported_enctypes,使用其中提到的任何加密技术。

希望这能解决问题。

相关内容