Eli*_*son 5 active-directory kerberos nfs4 pam-krb
我目前正在设置一个环境,其中我有一组 Solaris 和 Linux 机器,使用专用的 Krberos 5 领域(MIT,在 Solaris 11 上,krb5-config --version
返回:)Solaris Kerberos (based on MIT Kerberos 5 release 1.6.3)
。我们还有一个用于单独领域的 Active Directory (Windows 2003) 服务器。
我的目标是让 AD 服务器中的所有用户,以及基于 MIT 的领域中的 host/nnn、nfs/nnn 和 cifs/nnn 主体。我正在尝试在这两个领域之间建立跨域信任。
假设如下:
我已经根据Microsoft 文档设置了 AD 跨领域信任,具有双向信任。
发生的情况是跨领域身份验证仅在一个方向上起作用。从 AD 到 Unix 的工作原理:
# kinit adtest@AD.EXAMPLE.COM
Password for adtest@AD.EXAMPLE.COM:
root@clienttest2:~# kvno ltest@EXAMPLE.COM
ltest@EXAMPLE.COM: kvno = 1
Run Code Online (Sandbox Code Playgroud)
但是,相反的情况并没有,并给我一条错误消息:KDC 在获取 adtest@AD.EXAMPLE.COM 的凭据时不支持加密类型
# kinit ltest@EXAMPLE.COM
Password for ltest@EXAMPLE.COM:
root@clienttest2:~# kvno adtest@AD.EXAMPLE.COM
kvno: KDC has no support for encryption type while getting credentials for adtest@AD.EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)
请注意,我尝试了各种不同的东西。其中一些是:
rc4-hmac
仅使用,导致调用kvno
甚至无法在 Microsoft 端找到 KDC。default_tkt_enctypes
和default_tgs_enctypes
条目以强制使用rc4-hmac
. 这对于获得针对 AD 的登录身份验证是必要的。造成这种情况的原因是什么,我怎样才能弄清楚实际发生了什么?特别是,准确了解 KDC 不支持的加密类型将非常有帮助。了解发送错误的 KDC 也很有用。
为了完整起见,这里是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
}
Run Code Online (Sandbox Code Playgroud)
我已经解决了这个问题。我在这里发布回复,以防其他人遇到同样的问题。
解决方案非常简单。我需要确保跨领域身份验证主体是使用单一编码类型创建的,类型为rc4-hmac
:
addprinc -e rc4-hmac krbtgt/AD.EXAMPLE.COM@EXAMPLE.COM
addprinc -e rc4-hmac krbtgt/EXAMPLE.COM@AD.EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)
据我所知,MIT KDC 在将票证发送到 AD 服务器时使用最安全的编码类型。AD 服务器无法处理该编码,因此回复错误,表示不支持该加密类型。由于主体只有单一编码类型,MIT 服务器在与 AD 服务器通信时将使用该类型。
归档时间: |
|
查看次数: |
29845 次 |
最近记录: |