Мы запускаем OpenLDAP в Ubuntu 10.04. Я могу получить доступ и использовать интерфейс с cn=admin,dc=ourcompany,dc=com
и мой пароль.
Но я не могу изменить конфигурацию сервера (например, уровень журнала), хранящуюся в cn=config
потому что у меня нет действующего пользователя / пароля для бэкэнда?
Некоторые примеры:
# ldapsearch
SASL/DIGEST-MD5 authentication started
Please enter your password:
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database
или
# ldapadd -x -D "cn=admin,cn=config" -W -f "my.ldif""
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
Как мне создать пользователя для cn=config backend
?
Конфигурация Ubuntu по умолчанию устанавливает cn = admin, dn = example, dn = com как root dn для серверной части, но требует аутентификации SASL как root для изменения онлайн-конфигурации. Ты можешь использовать:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcAccess
чтобы перечислить ACL для вашей конфигурации
чтобы добавить файл ldif, попробуйте:
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f "my.ldif"
предполагая, что сервер LDAP находится на локальном компьютере. Если вы хотите, чтобы ваша исходная команда работала, вам нужно будет добавить пользователя cn = admin, cn = config и либо указать его как rootdn базы данных cn = config, либо настроить ACL для предоставления ей доступа.
Мне не удалось добавить rootdn с помощью инструментов ldap, даже как root, мне также не удалось добавить / изменить ACL для cn = config DIT. Я предполагаю, что, хотя root имеет доступ менеджера, недостаточно добавить rootDN. Следовательно, чтобы добавить rootDN для онлайн-конфигурации, вам необходимо отредактировать конфигурацию вручную. Это не рекомендуется, потому что это может нарушить работу slapd.
Вам нужно сгенерировать хэш пароля с помощью slappasswd, например, "somesecret" slappasswd может генерировать {SSHA} Hg / mI0rBWab3HCysr55B4Ew7 / QmK0LBa
Теперь вы можете добавить RootDN. Первая остановка slapd
sudo service slapd stop
затем отредактируйте /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif с помощью редактора по вашему выбору (например, nano)
sudo nano /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
затем добавьте следующие строки перед строкой «structureObjectClass: olcDatabaseConfig»
olcRootDN: cn=admin,cn=config
olcRootPW: {SSHA}Hg/mI0rBWab3HCysr55B4Ew7/QmK0LBa
затем перезапустите slapd
sudo service slapd start
Теперь вы можете изменить DIT cn = config с помощью простого связывания, используя cn = admin, cn = config; однако я не уверен, что это хорошая идея. Я предпочитаю подключаться к серверу по ssh и получать доступ к конфигурации как root. Некоторые, однако, утверждают, что это сводит на нет все преимущества онлайн-конфигурации, когда вы можете изменять конфигурацию, не останавливая slapd, с помощью любого браузера LDAP, если у вас есть необходимые учетные данные.