在我的客户端上进行 pam 身份验证(libnss-ldap 和 libpam-ldap 包和配置)有一个配置引导我
nss_ldap: failed to bind to LDAP server ldapi://172.16.10.174/: Can't contact LDAP server
我的服务器启动如下(似乎目录服务可用):
● slapd.service - LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)
Loaded: loaded (/etc/init.d/slapd; generated; vendor preset: enabled)
Active: active (running) since Thu 2018-10-04 09:40:14 -03; 8min ago
Docs: man:systemd-sysv-generator(8)
Process: 1026 ExecStart=/etc/init.d/slapd start (code=exited, status=0/SUCCESS)
Tasks: 3 (limit: 4915)
CGroup: /system.slice/slapd.service
└─1180 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d
使用 ldap有用
ldapsearch -H ldap://172.16.10.174/ -b dc=myDomain,dc=local -x
但ldapi 号在本地主机或者 LAN 内的机器上:
ldapsearch -H ldapi://localhost:389 -b dc=solarity,dc=local -x
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)`
我是否应该更改服务器的配置以便能够与客户端连接,ldapi://
或者更改客户端以进行身份验证ldap://
?
- 客户:Debian 9 中的配置文件在哪里nssd,以便我可以将协议更改为 ldap 而不是 ldapi?
- 服务器:如果使用 ldapi 协议有任何意义,我该如何测试它并配置服务器来执行我的客户端所期望的操作(这似乎是
ldapsearch -H ldapi://172.16.10.174/ -b dc=solarity,dc=local -x
行不通的)
答案1
该ldapi://
协议用于通过文件系统套接字访问 LDAP 服务器,例如/var/run/ldapi
(对于 Debian 来说这可能有所不同,这是 CentOS 上的默认位置)。因此,只有当您与 LDAP 服务器本身位于同一主机上时,它才有效。
如果需要从其他机器访问 LDAP 服务器,最好使用ldap://
或ldaps://
。
根据wiki.debian.org/LDAP/NSS&wiki.debian.org/LDAP/PAM应该分别/etc/libnss-ldap.conf
是/etc/pam_ldap.conf