设置MIT Kerberos和Active Directory之间的跨领域信任时,“KDC不支持encryptiontypes”

我正在使用专用的Krberos 5领域(MIT,在Solaris 11上, krb5-config --version返回: Solaris Kerberos (based on MIT Kerberos 5 release 1.6.3)build立一个Solaris和Linux机器的环境Solaris Kerberos (based on MIT Kerberos 5 release 1.6.3) )。 我们还有一个独立领域的Active Directory(Windows 2003)服务器。

我的目标是让AD服务器中的所有用户以及基于MIT的主机/ nnn,nfs / nnn和cifs / nnn主体。 我正试图在这两个领域之间build立跨域信任。

假设如下:

  • Unix领域: EXAMPLE.COM
  • AD领域: AD.EXAMPLE.COM

我已经根据Microsoft文档build立了AD跨领域信任,具有双向信任。

会发生什么是跨领域authentication只能在一个方向上工作。 从AD到Unix的作品:

 # kinit [email protected] Password for [email protected]: root@clienttest2:~# kvno [email protected] [email protected]: kvno = 1 

但是,相反却没有,并给了我一个错误消息: KDC不支持encryptiontypes,同时获取[email protected]的凭证

 # kinit [email protected] Password for [email protected]: root@clienttest2:~# kvno [email protected] kvno: KDC has no support for encryption type while getting credentials for [email protected] 

请注意,我已经尝试了各种不同的东西。 其中一些是:

  • configurationUnix端的跨领域密钥只能使用rc4-hmac ,其结果是调用kvno甚至不能在Microsoft端findKDC。
  • 添加了default_tkt_enctypesdefault_tgs_enctypes条目来强制使用rc4-hmac 。 这是需要login身份validationAD工作。

这可能是什么原因,我怎么才能找出实际发生的事情呢? 特别是,确切知道KDC不支持哪种encryptiontypes是非常有用的。 知道发送错误的KDC也是有用的。

为了完整krb5.conf ,下面是krb5.conf文件的内容:

 [libdefaults] default_realm = EXAMPLE.COM allow_weak_crypto = true verify_ap_req_nofail = false default_tkt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac [realms] EXAMPLE.COM = { kdc = unix-server.example.com admin_server = unix-server.example.com } AD.EXAMPLE.COM = { kdc = ad-server.ad.example.com admin_server = ad-server.ad.example.com } [domain_realm] .example.com = EXAMPLE.COM .ad.example.com = AD.EXAMPLE.COM [capaths] EXAMPLE.COM = { AD.EXAMPLE.COM = . } AD.EXAMPLE.COM = { EXAMPLE.COM = . } [logging] default = FILE:/var/krb5/kdc.log kdc = FILE:/var/krb5/kdc.log kdc_rotate = { period = 1d versions = 10 } [appdefaults] kinit = { renewable = true forwardable = true } 

我已经解决了这个问题。 如果有其他人面临同样的问题,我会在这里发布回复。

解决scheme非常简单。 我需要确保跨域身份validation主体是使用rc4-hmactypes的单个编码types创build的:

 addprinc -e rc4-hmac krbtgt/[email protected] addprinc -e rc4-hmac krbtgt/[email protected] 

据我所知,发生什么事情是,当发送票证到AD服务器时,MIT KDC使用最安全的编码types。 AD服务器无法处理该编码,因此回复了encryptiontypes不受支持的错误。 通过只有主体的单一编码types,MIT服务器在与AD服务器交谈时将使用该types。