(Это продолжение ldap_modify : Недостаточный доступ (50) при смене пароля , поскольку мы выявили отдельную проблему во время диагностики.)
Перед изменением базы данных cn = config LDAP я пытаюсь получить к ней доступ. Однако я получаю сообщение об ошибке ldap_sasl_interactive_bind_s: Невозможно связаться с сервером LDAP (-1)
.
# ldapsearch -H ldapi:/// -Y EXTERNAL -b 'cn=config' -d1
ldap_url_parse_ext(ldapi:///)
ldap_create
ldap_url_parse_ext(ldapi:///??base)
ldap_sasl_interactive_bind: user selected: EXTERNAL
ldap_int_sasl_bind: EXTERNAL
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_path
ldap_new_socket: 3
ldap_connect_to_path: Trying /var/run/ldapi
ldap_connect_timeout: fd: 3 tm: -1 async: 0
ldap_ndelay_on: 3
ldap_close_socket: 3
ldap_msgfree
ldap_err2string
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
ldapi: //
(но не ldapi: ///
?) выглядит определенным в /etc/openldap/ldap.conf
:
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE dc=my_domain,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
URI ldap:// ldapi:// ldaps://
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS_CACERTDIR /etc/openldap/certs
Я получаю то же ldap_sasl_interactive_bind_s: не удается связаться с ошибкой сервера LDAP (-1) после остановки брандмауэра (служба iptables stop
), поэтому проблема не в брандмауэре.
Файл сокета для ldapi не выглядит определенным:
ls: нет доступа к / var / run / ldapi: нет такого файла или каталога
Вот другие файлы в / var / run:
[root@my_hostname ~]# ls -la /var/run/
total 128
drwxr-xr-x. 19 root root 4096 Oct 30 13:13 .
drwxr-xr-x. 20 root root 4096 Oct 20 09:23 ..
drwxr-xr-x. 2 root root 4096 Oct 23 23:11 abrt
-rw-r--r-- 1 root root 5 Oct 23 23:11 abrtd.pid
-rw-r--r-- 1 root root 5 Oct 23 23:11 atd.pid
-rw-r--r-- 1 root root 4 Oct 23 23:11 auditd.pid
drwxr-xr-x. 2 root root 4096 Aug 18 09:26 console
drwxr-xr-x. 2 root root 4096 Nov 10 2010 ConsoleKit
-rw-r--r-- 1 root root 5 Oct 23 23:11 crond.pid
---------- 1 root root 0 Oct 23 23:11 cron.reboot
drwxr-xr-x. 2 root root 4096 Oct 23 23:11 dbus
drwxr-xr-x 2 root root 4096 Oct 23 23:11 fail2ban
drwxr-xr-x. 2 root root 4096 Aug 18 09:26 faillock
drwx------. 2 haldaemon haldaemon 4096 Oct 15 2014 hald
-rw-r--r-- 1 root root 5 Oct 23 23:11 haldaemon.pid
-rw-r--r-- 1 root root 5 Oct 23 23:11 irqbalance.pid
drwx------. 2 root root 4096 Sep 22 09:15 lvm
drwx------. 2 root root 4096 Jul 24 03:23 mdadm
-rw-r--r-- 1 root root 5 Oct 23 23:11 messagebus.pid
drwxrwxr-x. 2 root root 4096 Sep 22 11:47 netreport
drwxr-xr-x 2 ldap ldap 4096 Oct 30 13:13 openldap
drwxr-xr-x. 2 root root 4096 Aug 11 2014 plymouth
drwxr-xr-x. 4 root root 4096 Oct 15 2014 pm-utils
drwxr-xr-x 2 root root 4096 Oct 23 23:11 portreserve
drwxr-xr-x. 2 root root 4096 Mar 25 2015 saslauthd
drwxr-xr-x. 2 root root 4096 Aug 18 09:26 sepermit
drwxr-xr-x. 2 root root 4096 Oct 15 2014 setrans
-rw-r--r-- 2 ldap ldap 6 Oct 30 13:13 slapd.pid
-rw-r--r-- 1 root root 5 Oct 23 23:11 sshd.pid
-rw------- 1 root root 5 Oct 23 23:11 syslogd.pid
-rw-rw-r-- 1 root utmp 5376 Nov 3 11:16 utmp
-rw-r--r-- 1 root root 5 Oct 23 23:11 xe-daemon.pid
[root@my_hostname ~]# ls -la /var/run/openldap/
total 16
drwxr-xr-x 2 ldap ldap 4096 Oct 30 13:13 .
drwxr-xr-x. 19 root root 4096 Oct 30 13:13 ..
-rw-r--r-- 1 ldap ldap 39 Oct 30 13:13 slapd.args
-rw-r--r-- 2 ldap ldap 6 Oct 30 13:13 slapd.pid
slapd
похоже, что он запускается с ldaps, но не с ldapi:
# ps auxf | grep slapd
root 28776 0.0 0.0 103308 836 pts/0 S+ 11:23 0:00 \_ grep slapd
ldap 29398 0.0 1.0 370152 20348 ? Ssl Oct30 0:00 /usr/sbin/slapd -h ldaps:/// -u ldap
Единственное упоминание ldaps: в / etc / openldap также упоминает ldapi:
# grep -R 'ldaps:' /etc/openldap/
/etc/openldap/ldap.conf:URI ldap:// ldapi:// ldaps://
Как мне сделать конечно ldapi: ///
доступен?
Согласно комментарию @ 84104, /etc/openldap/ldap.conf
- это конфигурация клиента.
Конфигурация сервера на CentOS6 находится в / etc / sysconfig / ldap
(не slapd
). Я убедился, что он включает следующую строку:
# Run slapd with -h "... ldapi:/// ..."
# yes/no, default: yes
SLAPD_LDAPI=yes
И перезапустил сервер LDAP:
service slapd restart
После этого ldapi: ///
доступен и ldapsearch -H ldapi: /// - Y EXTERNAL -b 'cn = config'
успешно.