смена пароля ldap_bind: Недействительные учетные данные (49)

Вопрос или проблема

Информация:
Я установил ldap-utils и slapd, во время установки slapd, с помощью диалога ncurses я ввел пароль администратора.
Затем я изменил его с помощью

ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}qUoTRPwppaedqHQTgYOPYWokr3SiXjbK
E0F

Но с ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f ./users.ldif я получаю следующие сообщения:

Enter LDAP Password: 
ldap_bind: Invalid credentials (49)

Кстати, у меня нет slapd.conf.
Как можно аутентифицироваться через программы LDAP?

ОБНОВЛЕНИЕ:

root@debian:~# cat /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{1\}mdb.ldif 
# АВТОГЕНЕРИРУЕМЫЙ ФАЙЛ - НЕ РЕДАКТИРУЙТЕ!! Используйте ldapmodify.
# CRC32 73bfb3a8
dn: olcDatabase={1}mdb
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=nodomain
olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to * by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=nodomain
olcDbCheckpoint: 512 30
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
olcDbMaxSize: 1073741824
structuralObjectClass: olcMdbConfig
entryUUID: 10bd0d0a-82d1-103f-92a4-058be6d2a441
creatorsName: cn=admin,cn=config
createTimestamp: 20250219054944Z
olcRootPW:: MTIzMTIzMTIz
entryCSN: 20250219060430.002303Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20250219060430Z

.

Ответ или решение

Ошибка "ldap_bind: Invalid credentials (49)" предполагает, что предоставленные учетные данные для авторизации в LDAP неверны. Это может быть связано с некорректным именем пользователя или паролем, недостаточными правами доступа либо несоответствующим DN (Distinguished Name). Давайте рассмотрим возможные причины и пути их решения.

Теоретическая часть

В LDAP (Lightweight Directory Access Protocol) различие между успешным и неуспешным подключением часто связано с учетными данными, такими как имя пользователя и пароль. Ошибка 49 говорит о том, что связка этих данных не подтверждена сервером. Причины могут включать в себя неправильный пароль после его изменения, неверную строку Distinguished Name (DN), или же изменения на сервере, которые сделали учетные данные устаревшими или некорректными.

Пример

В предоставленной информации несколько ключевых моментов:

  1. Изменение пароля администратора происходит с использованием команды ldapmodify, где применяется новый пароль, хешированный алгоритмом SSHA. Однако из-за отсутствия slapd.conf, используется подход на основе конфигураций LDIF.

  2. Проблемы с аутентификацией возникают при попытке добавить записи через ldapadd, что намекает на разницу в настройках, определяемых в olcDatabase.

  3. DN и пароль. Используемый DN в команде ldapadd не соответствует DN в конфигурации базы данных LDAP. olcRootDN указан как cn=admin,dc=nodomain, в то время как в команде используется cn=admin,dc=example,dc=com.

Применение

Чтобы исправить данное несоответствие и разрешить ошибку с аутентификацией, необходимо выполнить следующие шаги:

  1. Проверка DN (Distinguished Name):

    • Убедитесь, что DN в команде соответствует DN, указанному в базе данных. Из предоставленного примера, замените dc=example,dc=com на dc=nodomain в команде ldapadd:
      ldapadd -x -D "cn=admin,dc=nodomain" -W -f ./users.ldif
  2. Проверка пароля:

    • Перепроверьте, что вы вводите правильный пароль. Он должен совпадать с паролем, который вы установили с помощью команды ldapmodify.
    • Если вы не уверены, попробуйте изменить его снова, проверив, что команда прошла успешно и без ошибок. Пример изменения:
      ldapmodify -Q -Y EXTERNAL -H ldapi:/// <<EOF
      dn: olcDatabase={1}mdb,cn=config
      changetype: modify
      replace: olcRootPW
      olcRootPW: {SSHA}новый_хешированный_пароль
      EOF
  3. Обновление конфигурации:

    • Убедитесь, что все изменения в конфигурации применены правильно и что структура файла или базы данных не повреждена. Для этого можно использовать команду проверки конфигурации.
  4. Проверка прав доступа:

    • Убедитесь, что у DN, который вы используете для привязки, есть необходимые права для выполнения операций, которые вы планируете (например, доступ к добавлению или модификации записей).

После выполнения указанных шагов, пробуйте снова выполнить команду ldapadd. Если ошибка все еще присутствует, следует внимательно посмотреть журналы slapd для получения дополнительной информации, которая может указать на более специфические проблемы.

Кроме того, убедитесь, что сервер slapd работает корректно и что соединение с ним не блокируется файерволом или другими сетевыми настройками. Это также может повлиять на процесс аутентификации и обмена данными.

Эти шаги должны помочь в устранении проблемы с ошибкой "ldap_bind: Invalid credentials (49)" при работе с LDAP.

Оцените материал
Добавить комментарий

Капча загружается...