5.3.9. 将 IdM 服务器配置为用于 Active Directory Kerberos 通讯的 Kerberos 分发中心代理
在某些情况下,网络限制或防火墙规则阻止身份管理(IdM)客户端将 Kerberos 流量发送到 Active Directory(AD)域控制器上的端口 88。解决方法是设置 Kerberos 代理,如身份管理服务器上,以将来自 IdM 客户端的流量中继到 AD。
- 在 IdM 客户端上,将 Active Directory 域添加到
/etc/krb5.conf
文件的 [realms] 部分。将kdc
和kpasswd_server
参数设置为指向 IdM 服务器的完全限定域名,后接/KdcProxy
':AD.EXAMPLE.COM = { kdc = https://server.idm.example.com/KdcProxy kpasswd_server = https://server.idm.example.com/KdcProxy }
- 在 IdM 客户端上,禁用创建
/var/lib/ss/pubconf/kdcinfo.*
文件,这些文件可覆盖上一步中的/etc/krb5.conf
规格。编辑/etc/sssd/sssd.conf
文件,将krb5_use_kdcinfo
设置为False
:[domain/example.com] krb5_use_kdcinfo = False
- 在 IdM 服务器中,将
/etc/ipa/kdcproxy/kdcproxy.conf
文件中的use_dns
选项设置为true
,以利用 DNS 服务(SRV)记录来查找 AD 服务器以便与之通信:use_dns = true
另外,如果您不想使用 DNS SRV 记录,在/etc/krb5.conf
文件的 [realms] 部分添加显式 AD 服务器:AD.EXAMPLE.COM = { kdc = ad-server.ad.example.com kpasswd_server = ad-server.ad.example.com }
注意您可以通过运行脚本来执行流程的第 2 和 3 步,例如 Ansible 脚本。这在多个系统上进行更改时特别有用。 - 在 IdM 服务器中,重启 IPA 服务:
# ipactl restart
- 要验证这个过程是否成功,请在 IdM 客户端中运行以下命令:
# rm /var/lib/sss/pubconf/kdcinfo* # kinit ad_user@AD.EXAMPLE.COM Password for ad_user@AD.EXAMPLE.COM: # klist Ticket cache: KEYRING:persistent:0:0 Default principal: ad_user@AD.EXAMPLE.COM Valid starting Expires Service principal [... output truncated ...]