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

Конфигурация наложения цепочки OpenLDAP

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

Я использую пакеты OpenLDAP версии 2.4.39, которые поставляются с RHEL 6, а ведущее и ведомое устройства LDAP используют TLS для связи. Сертификаты и ключи TLS хранятся в Mozilla NSS, поэтому tls_certdir и tls_cert приведенные ниже утверждения должны быть правильными (они определенно работают в этой форме для воспроизведения).

Моя конфигурация (в slapd.conf форма, которую я конвертирую в нотацию OLC перед использованием):

overlay chain
chain-uri              ldap://my.ldap.master.example.com
chain-rebind-as-user   FALSE
chain-idassert-bind    bindmethod="simple"
                       binddn="cn=Manager,dc=example,dc=com"
                       credentials="xxxxxxxxxxxxxxxx"
                       mode="self"
                       starttls=yes
                       tls_reqcert=demand
                       tls_cacertdir=/etc/openldap/certs
                       tls_cert=my.ldap.slave.example.com
chain-tls              start tls_reqcert=demand tls_cacertdir=/etc/openldap/certs tls_cert=my.ldap.slave.example.com
chain-return-error     TRUE

[...syncrepl...]

updateref       ldap://my.ldap.master.example.com

Я хочу, чтобы это работало, чтобы обновления политики пересылались на мастер (например, когда кто-то ошибается пять раз или больше, подчиненное устройство отправит pwdAccountLockedTime мастеру, а не хранит его локально). Для этой цели у меня в конфигурационном файле установлен ppolicy_forward_updates.

Я проверил это и не вижу трафика, идущего к ведущему устройству LDAP, когда я вношу изменения на ведомом устройстве.

Кто-нибудь знает, что я здесь делаю не так?

Вам нужно убедиться, что chain наложение настроено на frontend база данных, а не hdb/mdb/bdb база данных. Итак, в вашем cn=config В базе данных вы должны получить следующие записи:

  • olcDatabase={-1}frontend,cn=config
  • olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
  • olcDatabase={0}ldap,olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config

У меня была такая же проблема, когда я настроил оверлей на основном hdb база данных и имела те же симптомы, когда не было трафика от ведомого устройства к ведущему. Как только я заново связал оверлей и его базу данных с frontend база данных начала работать.

Вам также может потребоваться настроить olcAuthzPolicy атрибут на главном сервере.