Назад | Перейти на главную страницу

OpenLDAP: попытка загрузить модуль ppolicy

У меня есть сервер OpenLDAP на CentOS 7.8, и я пытаюсь загрузить наложение ppolicy. Я пытаюсь загрузить модуль с помощью этой команды:

ldapmodify -Y EXTERNAL -H ldapi:/// -f ppolicy_load.ldif

и я получаю эту ошибку:

add olcModuleLoad:
        ppolicy
modifying entry "cn=module{0},cn=config"
ldap_modify: Type or value exists (20)
        additional info: modify/add: olcModuleLoad: value #0 already exists

Содержимое ppolicy.ldif:

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: ppolicy

cn = module {0}, cn = config.ldif содержимое:

dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov

Дополнительная информация:

ldapsearch из cn = module {0}, cn = config дает следующее:

# module{0}, config
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov
olcModuleLoad: {2}ppolicy 

Схема ppolicy загружена. Я также, к сожалению, применил наложение ppolicy

dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverLay: ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=mydomain,dc=com

и теперь slapcat -n 0 выдает следующую ошибку:

5ede54b5 UNKNOWN attributeDescription "OLCPPOLICYDEFAULT" inserted.
5ede54b5 config error processing olcOverlay={1}ppolicy,olcDatabase={2}hdb,cn=config:
slapcat: bad configuration file!

Я предполагаю, что это связано с тем, что модуль не загружается должным образом, и теперь возникла проблема.

Может ли кто-нибудь дать руководство о том, как заставить это работать? Я настроил это на тестовых серверах, которые я получил от моего основного сервера ldap без проблем.

Спасибо.

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

  • выключить slapd
  • переместить /etc/openldap/slapd.d в новый дом
  • slapadd -n 0 -F /etc/openldap/slapd.d -l config.ldif
  • chown -R ldap: ldap /etc/openldap/slapd.d
  • перезапустить slapd

Проблема здесь, похоже, заключалась в том, что запись:

cn=module{0},cn=config

не имели метаданных создания, которые есть у всех других записей. Вот соответствующий раздел из slapcat базы данных config до того, как я начал работать над применением ppolicy.

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov

вот та самая часть из дампа slapcat, которую я взял сразу после восстановления

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov
structuralObjectClass: olcModuleList
entryUUID: 1c4f8c4c-3eb1-103a-867c-85064373bd37
creatorsName: cn=config
createTimestamp: 20200609152452Z
entryCSN: 20200609153126.629105Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20200609153126Z

и поэтому после восстановления базы данных конфигурации я смог без проблем продолжить настройку ppolicy. Естественно, я тестировал это на клоне моего LDAP-сервера (yay ESX).

Я полагаю, я мог бы быть не в основе, но поскольку все проблемы, похоже, сосредоточены вокруг cn = module {0}, cn = config и теперь исправлены ... Я пойду с этим.