我正在尝试让 centos 6 针对 ldap(具体来说是活动目录)进行身份验证,但我有点困惑,因为在安装 nss-pam-ldapd 后,我看到几个文件似乎具有相同的配置。例如,我有 /etc/pam_ldap.conf 和 /etc/nslcd.conf。这两个文件似乎具有相同的配置选项。似乎都不起作用。任何指导都将不胜感激。
答案1
确保你: 1. yum 删除 sssd 2. yum 安装 openldap-clients nss-pam-ldapd 3. 运行 Authconfig 4. 检查你的 /etc/openldap/ldap.conf - 检查您的有效证书文件是否指向 5. 检查你的 /etc/nslcd.conf - 确认 ssl start_tls - 确认 certfile 指向有效文件 以下是 authconfig 行的示例: 身份验证配置 --enableldap --enableldapauth \ --ldapserver=ldap://ldap.example.com/,ldap://ldap2.example.com/ \ --ldapbasedn=dc=示例,dc=com --update 然后确保: /etc/openldap/ldap.conf TLS_CACERT /etc/pki/tls/certs/ca-bundle.crt TLS_REQCERT 需求 在 /etc/nslcd.conf 中: ssl start_tls tls_cacert文件 /etc/pki/tls/certs/ca-bundle.crt tls_reqcert 永不 这样您就获得了一个证书而不是一个空目录。
答案2
虽然这个问题已经得到解答,但仍有几点需要注意:
- 需要注意的是,没有必要禁用 sssd,因为可以连接到活动目录的帽子。
- 您还可以使用 authconfig 一次性启用 TLS 和其他所有内容。
因此,要连接到 LDAP,您需要:
- 安装 pam_ldap、nss-pamd-ldapd 和 sssd(使用 yum 满足依赖关系)并启用 sssd
- 将证书文件复制到 /etc/openldap/cacerts
然后一次性运行以下命令:
authconfig --enablesssd --enableldap --enableldaptls --ldapserver=ldap.example.com --ldapbasedn=dc=example,dc=com --enableldapauth --update
(authconfig 将自动获取位于 /etc/openldap/cacerts 中的证书)
答案3
我可以确认这些步骤应该可行。
如果不使用 TLS,只需“ssl yes”就可以了
必须安装这些软件包,我花了很多时间才在 Redhat 6 上找到所有这些必要的软件包 nss-pam-ldapd pam_ldap openldap openldap-clients
山姆
答案4
我基本上让它工作了(除了它以明文发送密码,我打算解决这个问题)所以我想我会分享我所做的事情。
我使用 yum 安装了 nss-pam-ldap 包。我编辑了 pam_ldap.conf 和 nslcd.conf 以反映我的环境。然后我运行 authconfig-tui 并尽可能回答它的问题。我没有打开 tls 或 ssl,只是想看看一切是否正常。我运行了“/etc/init.d/nslcd restart”,然后我可以 su 进入 ldap 用户以及通过 ssh 登录他们。然后当我打开 ssl/tls 时它停止工作。因此我使用 TCP dump 和 grep-ed 查看,发现我的密码是以明文形式发送的。所以它有效,但我仍然需要让 ssl/tls 工作。我希望 ldap 客户端会发送已经散列的密码,但我猜不是。也许有一种方法可以在将密码发送到 ldap 之前告诉它要使用什么密码。
无论如何,我希望这能帮助其他人解决这个问题。谢谢