Конфигурация OpenLDAP TLS - невозможно установить TLS - недопустимые учетные данные

Привет, я искал в Google, почему моя попытка изменить конфигурацию open ldap для TLS не удалась при праве доступа:

root@labm:~/slapd# more /root/slapd/tls.ldif
dn: cn=config,dc=LDAPTEST,dc=NET
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/ssl/cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ldap/ssl/key.pem
-
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ldap/ssl/cert.pem


ldapmodify -x -D "cn=admin,dc=LDAPTEST,dc=NET" -W -f /root/slapd/tls.ldif
Enter LDAP Password:
modifying entry "cn=config"
ldap_modify: Insufficient access (50)

Неудачная, потому что, очевидно, я использовал администратора для изменения записи конфигурации. Я нашел статью об этой же проблеме, и решение было установить пароль root для базы данных конфигурации, а затем попытаться изменить его. Поэтому я создал хеш для своего пароля и сохранил его в changepwd.ldif:

slappasswd -h {SSHA} -s <mypassword>

vi /root/slapd/changepwd.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}av9lfvBlCwBBETzHxxxxxxxxxxxxxxxx

Успешно изменил конфигурацию olcRootPW (и я проверил ее в файлах /etc/ldap/slap.d/cn=config/)

ldapmodify -H ldapi:/// -Y EXTERNAL -D 'cn=config' -f /root/slapd/changepwd.ldif

Но снова когда я пытаюсь изменить настройки TLS с помощью cn = config и нового mypassword, попытка не удалась из-за неверных учетных данных:

ldapmodify -x -D "cn=config,dc=LDAPTEST,dc=NET" -W -f /root/slapd/tls.ldif
Enter LDAP Password: <mypassword>
ldap_bind: Invalid credentials (49)

Содержимое файла конфигурации:

 cat /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 175b5eb1
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth manage by * break
olcRootDN: cn=admin,cn=config
structuralObjectClass: olcDatabaseConfig
entryUUID: a965b54a-7586-1036-95d8-ad7092a067bf
creatorsName: cn=config
createTimestamp: 20170123070944Z
olcRootPW:: e1NTSxxxxxxxxxxxxxxxxxxx
entryCSN: 20170124144811.769576Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170124144811Z

Любые идеи, что я делаю неправильно ?

0
задан 25 January 2017 в 11:58
1 ответ

Вам необходимо:

sudo ldapmodify -H ldapi:/// -Y EXTERNAL -f /root/slapd/tls.ldif

(обратите внимание на sudo ).

Условие доступа в вашей config db:

olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth manage by * break

означает, что доступ к config db разрешен пользователям, аутентифицирующимся с помощью метода EXTERNAL , если uidNumber и gidNumber равны нулю (то есть: это root).

EXTERNAL auth в этом случае означает, что вы получаете доступ к каталогу через канал в файловой системе (схема ldapi: ///), а операционная система выполняет аутентификацию / авторизацию на основе ваш пользователь.

Вот почему вы должны быть root.

Обратите внимание, что dn файла tls.ldif необходимо изменить на:

dn: cn=config
changetype: modify
[...]
# same as before

The cn = config - это корневое пространство имен, а не листовое пространство имен вашего пространства имен данных.

0
ответ дан 5 December 2019 в 08:42

Теги

Похожие вопросы