我有一個簡單的 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-96
和aes256-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 可能是一個更好的主意。