我在FreeBSD 8.x上安装了一个OpenLDAP服务器.我收到此错误:
3月25日16:11:45 ldap2 slapd [1268]:nss_ldap:无法搜索LDAP服务器 – 服务器不可用
3月25日16:11:45 ldap2 slapd [1268]:nss_ldap:无法搜索LDAP服务器 – 服务器不可用
我在下面提供了我的LDAP配置信息.此外,为sshd和系统服务启用了pam_ldap PAM模块.
ldap.conf的:
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example,dc=com #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never base dc=albiruni,dc=com uri ldap://localhost/ rootbinddn cn=admin,dc=albiruni,dc=com #bind_policy soft ssl start_tls TLS_REQCERT allow pam_login_attribute uid
的nsswitch.conf
# nsswitch.conf(5) - name service switch configuration file # $FreeBSD: src/etc/nsswitch.conf,v 1.1.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $ # group: files cache ldap passwd: files cache ldap sudoers: files cache ldap #group: compat #group_compat: nis hosts: files dns networks: files #passwd: compat #passwd_compat: nis shells: files services: compat services_compat: nis protocols: files rpc: files
正如@ChrisS所说,这似乎是您的LDAP服务器在启动之前尝试查询自己的情况.
一些解决方案
>在ldap1中指向ldap2,在/etc/ldap.conf中指向反之亦然你系统的主机名是ldap2,所以我假设还有一个ldap1.如果您将系统配置为相互查询,那么只要您一次只重新启动一个系统,您将始终至少有一台服务器可以引导另一台服务器.>确保在/etc/ldap.conf中正确设置了nss_initgroups_ignoreusers无论如何,这是一个很好的通用实践 – 启动期间引用的用户(例如LDAP服务器用户)不应该启动并运行LDAP,也不应该启动LDAP查询来查找组成员身份. nss_initgroups_ignoreusers选项禁止指定用户(通常是系统/服务帐户)的LDAP组成员资格查询.这通常会消除“服务器不可用”的情况,因为LDAP服务器(和其他核心系统服务)可以启动而无需查询LDAP服务器.当需要LDAP服务器的东西查询它时,LDAP服务器应该已经启动并运行.