我目前正在从使用 pam_krb5 转向 pam_sss,因为 pam_krb5 在 CentOS/RHEL 8 上不再可用
我们目前使用两个 AD 域,每个域都有唯一的用户名。在旧的 pam 配置中,我们有以下几行。
auth sufficient pam_krb5.so realm=DOM1.LOCAL try_first_pass
auth sufficient pam_krb5.so realm=DOM2.LOCAL use_first_pass
account sufficient pam_krb5.so realm=DOM1.LOCAL
account sufficient pam_krb5.so realm=DOM2.LOCAL
password sufficient pam_krb5.so realm=DOM1.LOCAL try_first_pass banner=Windows
password sufficient pam_krb5.so realm=DOM2.LOCAL use_first_pass banner=Windows
session optional pam_krb5.so realm=DOM1.LOCAL
session optional pam_krb5.so realm=DOM2.LOCAL
这样我们就可以使用来自任一域的 AD 中的密码(域之间的帐户名都是唯一的),并且可以使用同名的 Unix 帐户登录(存储在 NIS 中)
我尝试通过在 /etc/sssd/sssd.conf 中放置多个域配置来实现 sssd 中的此功能
像这样
[sssd]
services = nss, pam
domains = DOM1.LOCAL,DOM2.LOCAL
re_expression = (((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
debug_level = 7
[domain/DOM1.LOCAL]
id_provider = proxy
proxy_lib_name = nis
auth_provider = krb5
krb5_server = dc1.dom1.local,dc2.dom1.local
krb5_realm = DOM1.LOCAL
krb5_ccachedir = /tmp
krb5_ccname_template = FILE:%d/krb5cc_%U
debug_level = 7
[domain/DOM2.LOCAL]
id_provider = proxy
proxy_lib_name = nis
auth_provider = krb5
krb5_server = dc1.dom2.local,dc2.dom2.local
krb5_realm = DOM2.LOCAL
krb5_ccachedir = /tmp
krb5_ccname_template = FILE:%d/krb5cc_%U
debug_level = 7
[nss]
debug_level = 7
[pam]
debug_level = 7
通过上述设置,如果我指定 username@domainname@linux_server,我就可以成功 ssh 到服务器
例如 ssh[电子邮件保护]@我的服务器
但是如果我错过了域名,那么只会查找“sssd”域列表中的第一个域。
如果 user1 在 dom1.local 中,而 user2 在 dom2.local 中
ssh user1@linux_server - Works
ssh user2@linux_server - Fails
如果我切换 sssd 中域参数中的域顺序,那么
ssh user1@linux_server - Fails
ssh user2@linux_server - Works
日志文件显示,只使用一个域,取决于列表中哪个域是第一个。
有人可以给我一些指点吗?
谢谢
答案1
所以我遇到了同样的问题,并在试图弄清楚如何重新添加 pam_krb.so 时偶然找到了答案。
我知道你需要的是:
auth sufficient pam_sss.so domains=DOM1.LOCAL
auth sufficient pam_sss.so domains=DOM2.LOCAL
account sufficient pam_sss.so domains=DOM1.LOCAL
account sufficient pam_sss.so domains=DOM2.LOCAL
但是我不知道如何设置password
和session
部分,并且我有一个奇怪的设置,其中单个 LDAP 源具有多个 Kerberos 域。
Src 来自这里的一些 SSSD 错误说明:https://pagure.io/SSSD/sssd/issue/3668 编辑:由于我未能校对预览,因此添加了空格以便更清晰。