我将 Centos Box 加入到 Windows Active Directory 域中,使用
realm join --user=DomUser dom2.local
没有任何问题。域与 Dom1 具有单向信任关系。我们的 Windows 用户可以:
- 使用 Dom1/User 登录到 Dom1/Host
- 使用 Dom1/User 登录到 Dom2/Host
- 使用 Dom2/User 登录到 Dom2/Host
在我们的 Linux Boxes(在 Dom2 中)上,只有 Dom2/Users 可以登录。我在网上找到了一些证据,表明 sssd 可以配置两个域,因此我在 sssd 配置中添加了一个块:
# cat /etc/sssd/sssd.conf
[sssd]
domains = dom1.local, dom2.local
config_file_version = 2
services = nss, pam
[domain/dom1.local]
ad_domain = dom1.local
krb5_realm = DOM1.LOCAL
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
enumerate = True
[domain/dom2.local]
ad_domain = dom2.local
krb5_realm = DOM2.LOCAL
realmd_tags = manages-system joined-with-samba
#cache_credentials = True
cache_credentials = False
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
enumerate = True
现在如果我尝试使用 Dom2 用户登录,我会得到以下信息:
pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=host.dom1.local [email protected]
pam_sss(sshd:auth): received for user [email protected]: 6 (Permission denied)
Failed password for [email protected] from 10.10.0.10 port 34442 ssh2
有人用 sssd 成功配置了两个 AD 域吗?或者有没有什么办法可以做到这一点?
编辑1:
使用 getent passwd 我可以看到来自两个域的所有用户,以及:
id [email protected]
id [email protected]
也可以工作。
答案1
好的,这是一个老话题,但我认为它对我们中的一些人来说是有用的。
如果您想在多个域中使用 sssd,您必须执行以下操作:
从https://access.redhat.com/solutions/4035171:
在 realm join 命令之后,将来自不同林的第二个域添加到 /etc/krb5.conf 的 [domain_realm] 部分:
.dom1.local = DOM1.LOCAL
dom1.local = DOM1.LOCAL
然后加入域 dom1.local:
adcli join --host-keytab=/etc/krb5.keytab.dom1.local dom1.local
更改 sssd.conf 如下:
[sssd]
domains = dom2.local,dom1.local
...
[domain/testing.com]
ad_domain = dom1.local
krb5_realm = DOM1.LOCAL
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u@%d
access_provider = ad
timeout = 3600
krb5_keytab = /etc/krb5.keytab.dom1.local
ldap_krb5_keytab = /etc/krb5.keytab.dom1.local
并重新启动 sssd:systemctl restart sssd
答案2
你确实需要启用 sssd 日志并查看那里,见https://docs.pagure.org/SSSD.sssd/users/troubleshooting.html
通常,当 sssd 由于其中一个服务器无法访问而切换到离线模式时,PAM 会在身份验证期间返回错误 6