我在 ubuntu 22.04 上尝试使用已设置“此帐户支持 Kerberos AES 256 位加密”复选标记的用户执行 kinit 时遇到问题。
对于没有设置此复选标记的用户,我可以毫无问题地进行 kinit,但奇怪的是,即使对于此用户,klist 也显示 AES256 作为加密类型:
~ % klist -e
Ticketzwischenspeicher: FILE:/...
Standard-Principal: user1@REALM...
Valid starting Expires Service principal
11.01.2023 12:13:58 11.01.2023 16:13:58 krbtgt/REALM@REALM
erneuern bis 11.01.2023 16:13:58, Etype (Skey, TKT): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
但是,一旦我在 AD 中为用户设置复选标记以强制使用 AES265 位加密,kinit 就会失败并显示“KDC 不支持加密类型”
使用 ktutil 手动操作也无法工作:
ktutil: addent -password -p user2@REALM -k 1 -e aes256-cts-hmac-sha1-96 -f
Passwort für user2@REALM:
addent: KDC has no support for encryption type beim Hinzufügen eines neuen Eintrags
我尝试将默认加密添加到 /etc/krb5.conf:
[libdefaults]
default_realm = REALM
default_keytab_name = /etc/krb5.keytab
forwardable = true
proxiable = true
default_tkt_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc
default_tgs_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc
permitted_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc
但没有变化。
将“不需要 Kerberos 预身份验证”复选标记设置为帐户不会改变任何内容
手动强制用户使用 AES256 而不勾选也是可以的:
ktutil: addent -password -p user1@REALM -k 1 -e aes256-cts-hmac-sha1-96 -f
Passwort für user1@REALM:
ktutil:
但是,一旦我将复选标记设置为该用户,它就会再次损坏。
答案1
该问题似乎源于 11 月 22 日的微软更新(https://learn.microsoft.com/en-us/answers/questions/1085603/krbtgt-did-not-have-a-suitable-key)
“微软程序员已确认 11 月的 CU 补丁错误地比较和协商了客户端/服务器电子类型。 https://twitter.com/SteveSyfuhs/status/1590722790663278599 https://i.stack.imgur.com/YlHFO.jpg 建议的解决方法是允许 RC4(或取消设置 GPO 设置以使用默认值也会允许 RC4...)对于 msds-SupportedEncryptionTypes HKLM\System\currentcontrolset\services\kdc\DefaultDomainSupportedEncTypes”
将所有 DC 更新到最新版本并添加注册表项
reg add "HKLM\SYSTEM\CurrentControlSet\services\kdc" /v ApplyDefaultDomainPolicy /t REG_DWORD /d 0 /f
到 DC 解决了这个问题。安装 OOB 更新 KB5021655 应该也能解决这个问题,但对我来说似乎没有用(https://support.microsoft.com/help/5021655)