Centos 6 Linux 和 nss-pam-ldapd

Centos 6 Linux 和 nss-pam-ldapd

我正在尝试让 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

虽然这个问题已经得到解答,但仍有几点需要注意:

因此,要连接到 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 之前告诉它要使用什么密码。

无论如何,我希望这能帮助其他人解决这个问题。谢谢

相关内容