具有两个 AD 域的 Linux SSSD

具有两个 AD 域的 Linux SSSD

我将 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

相关内容