В OpenLDAP 2.4 конфигурация была перенесена в серверную часть LDIF под названием cn=config
. В документации OpenLDAP говорится: «Никогда не следует редактировать файлы LDIF напрямую. Изменения конфигурации следует выполнять с помощью операций LDAP ...», но не дает никаких дополнительных подробностей.
Существует много противоречивой информации, и что еще хуже, дистрибутивы, такие как Redhat Linux и Ubuntu, имеют особую конфигурацию.
Есть два способа отредактировать cn=config
дата: прямо и косвенно. Indirect использует обычные инструменты ldap, такие как ldapmodify и ldapsearch, что обеспечивает самый простой и наиболее логичный подход. ОДНАКО, многие дистрибутивы используют SASL для ограничения доступа только пользователю root на локальном компьютере.. Предполагая, что у вас есть предварительно настроенный экземпляр, вы можете легко изменить это:
Включение внешнего доступа к cn = config
sudo -i
/ su -
Создайте новый пароль:
slappasswd
Подготовить auth.ldif
. Заменить olcRootPW
с хешем вашего пароля из последней команды
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,cn=config
-
replace: olcRootPW
olcRootPW: {SSHA}jCMTRlz/iT4cw3CZno5z2PtCkJQbKrqK
Импортировать LDIF:
ldapmodify -Y EXTERNAL -H ldapi:/// -f auth.ldif
Теперь вы можете подключиться извне (при условии, что у вас есть доступ к сети), используя любой клиент LDAP. Например.
ldapsearch -b cn=config -D cn=admin,cn=config -H ldap://myldapserver -W
Прямой режим
В прямом режиме вы можете редактировать базу данных cn = config (и любую другую базу данных), даже если slapd
не работает. Это за счет использования slapadd
и slapcat
инструменты. Вы должны передать суффикс базы данных. Например:
slapcat -b cn=config
IMHO, прямой режим лучше всего использовать, когда вы точно знаете, какой LDIF вам нужно применить. Я редко это делаю, поэтому предпочитаю использовать обычные инструменты LDAP для добавления, замены и удаления конфигурации на лету.