Я пытался установить OpenLDAP, установленный по умолчанию в Fedora 12, но безуспешно. Моя конечная цель - использовать аутентификацию LDAP для входа пользователя и Apache, используя сервер OpenLDAP, работающий на одном компьютере.
Сервер работает, но я всегда получаю ошибку, когда пытаюсь использовать ldapsearch или ldapadd: ldap_bind: неверные учетные данные (49)
Я слежу за этими руководствами, но ни один из них мне не помог:
Во-первых, некоторые компоненты уже были установлены, и я установил их с помощью yum:
yum install openldap-servers openldap-devel
Затем я создал базовый файл slapd.conf в / etc / openldap:
database bdb
suffix "dc=sniejana-sandbox,dc=com"
rootdn "cn=root,dc=sniejana-sandbox,dc=com"
rootpw {SSHA}cxdz55ygPu4T3ykg7dgu+L0VRvsFSeom
directory /var/lib/ldap/sniejana-sandbox.com
Я получил rootpw с помощью этой команды:
slappasswd -s changeme
Я также создал /var/lib/ldap/sniejana-sandbox.com
каталог и убедился, что все содержимое /var/lib/ldap
принадлежали пользователю ldap.
Я нашел два файла ldap.conf, один в / etc и один в / etc / openldap. Я не знаю, какой из них правильный. Если я правильно понял, это файл для настройки клиента. Я вставил это в оба:
HOST localhost
BASE dc=sniejana-sandbox,dc=com
Затем я запустил сервер с:
service slapd start
Он сказал ОК.
В большинстве приведенных выше руководств говорится об использовании команды ldapsearch -D "cn=Manager,dc=my-domain,dc=com" -W
чтобы убедиться, что все работает. Когда я выполняю эту команду, появляется запрос пароля, и после ввода пароля я получаю сообщение об ошибке.
ldapsearch -D "cn=root,dc=sniejana-sandbox,dc=com" -W
Enter LDAP password:
ldap_bind: Invalid credentials (49)
То же самое происходит при попытке использовать ldapadd. Я пробовал использовать зашифрованный и незашифрованный пароль в slapd.conf, ничего не меняет. Добавление -x для простой аутентификации тоже ничего не меняет.
netstat -ap подтверждает, что сервер прослушивает:
tcp 0 0 *:ldap *:* LISTEN 4148/slapd
tcp 0 0 *:ldap *:* LISTEN 4148/slapd
ps -ef | grep slapd подтверждает, что процесс запущен:
ldap 4148 1 0 15:22 ? 00:00:00 /usr/sbin/slapd -h ldap:/// -u ldap
Запуск Slaptest Procudes тестирование файла конфигурации прошло успешно.
Я где-то читал, что команда ldapsearch -x -b '' -s base '(objectclass=*)' namingContext
может подтвердить, что сервер работает. Кажется, работает:
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContext
#
#
dn:
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
У меня заканчиваются идеи. Я упускаю что-то очевидное?
Ага! Моя проблема решена! Мне просто нужно удалить каталог, используя rm -rf /etc/openldap/slapd.d
. Это заставит OpenLDAP искать мои slapd.conf
файл при запуске службы.
Я также столкнулся с той же проблемой, когда попробовал в первый раз.
После анализа я просто удалил /etc/openldap/slapd.d/
каталог, а также удалил содержимое /var/lib/ldap/
каталог (содержащий базу данных). После этого все работает нормально.
Примечание : var/lib/ldap
каталог должен существовать, иначе slapd
служба никогда не запустится.
Я понял это, прочитав /etc/init.d/slapd
сценарий. В этом сценарии они слепо проверяют, /etc/openldap/slapd.d
каталог существует или нет. Если да, значит, они просто проигнорировали slapd.conf
файл. Этот сценарий также проверяет, существует ли база данных в /var/lib/ldap/
каталог. Если да, значит, они используют эту базу данных, иначе они создают новую пустую базу данных.
/etc/openldap/slapd.d
каталог точно содержит информацию о конфигурации в структуре данных каталога, которая используется вместо slapd.conf
файл. Думаю, Fedora по умолчанию использует этот каталог.
У меня тоже есть проблема с openldap в Fedora 12! Но если вы попытаетесь запустить openldap вручную, используя следующую команду, его поведение станет нормальным. / usr / sbin / slapd -f /etc/openldap/slapd.conf
Я подозреваю, что команда по умолчанию (я имею в виду «запуск службы slapd») не загружает файл конфигурации openldap (я имею в виду /etc/openldap/slapd.conf), который я создаю вручную после установки yum.