Ubuntu 12.04 LDAP 客户端问题

Ubuntu 12.04 LDAP 客户端问题

我遵循了此处描述的指南配置 LDAP,但是运行“getent passwd”时我一直出现以下错误,这有什么原因吗?

错误:

Jul 16 15:58:33 wso2-VirtualBox getent: nss_ldap: could not search LDAP server - Server is unavailable
^[[AJul 16 15:59:34 wso2-VirtualBox getent: nss_ldap: failed to bind to LDAP server ldapi:///192.168.4.152/: Invalid credentials
Jul 16 15:59:34 wso2-VirtualBox getent: nss_ldap: could not search LDAP server - Server is unavailable

配置文件:

vi /etc/ldap.conf

base dc=example,dc=com

uri  ldapi:///192.168.4.152/

ldap_version 3

timelimit 4

bind_timelimit 4

bind_policy soft

pam_password md5

nss_initgroups_ignoreusers avahi,avahi-
autoipd,backup,bin,colord,daemon,games,gnats,hplip,irc,kernoops,libuuid,lightdm,list,lp,mail,man,messagebus,news,nslcd,openldap,proxy,pulse,root,rtkit,saned,speech-dispatcher,sshd,sync,sys,syslog,usbmux,uucp,whoopsie,www-data

答案1

使用ldapsearch命令行工具验证服务器是否正在运行以及您使用的凭据是否正确:

ldapsearch -D the-dn-you-use -w -the-password-you-use \
    -H 192.168.4.152:389 -s base -b dc=example,dc=com '(&)' 1.1

如果ldapsearch成功,则表示服务器正在监听,LDAP 客户端具有足够的权限执行此搜索,并且身份验证正确。

答案2

我认为问题在于:

uri  ldapi:///192.168.4.152/

应该:

uri  ldap://192.168.4.152/

答案3

我猜你需要做的是首先确定你的 LDAP 服务器是否接受连接... 在你的客户端上安装 ldap-utils,这样你就有了 ldapsearch 工具。然后尝试ldapsearch -x。这使用简单的身份验证,如果你得到结果,那么你可以确定你的 ldap 服务器可以从客户端查询。

接下来,查看 slapd.conf 文件。仔细查看字段绑定绑定。如果您不记得 bindpw,可以更改它。生成编码 bindpw 的命令将用于slappasswd您的简单文本密码。之后,您可以使用上面 Terry Gardner 提到的命令。如果连接成功,那么您可以放心,ldap 身份验证工作正常。如果它不起作用,请发布错误消息,描述您遇到的问题,并发布您的 slapd.conf,希望我们能够为您提供解决方案。:)

答案4

我用的是官方文档getent passwd尽管在输出中确实显示了 LDAP 条目,但最终还是得到了类似的消息。甚至 bash 的用户名补全功能也能使用 LDAP 值。当我尝试id username使用 LDAP 用户名时,它失败了,并记录了与您相同的错误消息。

几分钟后,我记起 LDAP 数据中包含一个管理员名称,cn=admin,dn=.../etc/ldap.conf设置rootbinddncn=mananger,dn=...
我将其更改/etc/ldap.conf为匹配 LDAP 数据,问题就解决了。后来我找到了您提到的博客,上面写着:

注释掉“rootbinddn”行[不确定为什么我们需要这样做]

这可能是同一件事。

相关内容