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

openldap: клиенты phpldapadmin и ldapadmin gui не могут получить доступ к cn = config / blank page

Мне стыдно, и здесь нужна небольшая помощь:

Я установил сервер openldap более 3 лет назад. Недавно я попытался получить доступ к cn = config base-dn (где я могу редактировать схему и прочее) с помощью моего веб-клиента phpldapadmin, чтобы изменить некоторые записи olcaccess (которые работали раньше, насколько я помню) для одного из bdb и мог не авторизуйтесь. или, лучше сказать: я могу войти в систему, но вижу только «пустую» страницу. Если "пусто" означает, что phpldap говорит: "вошел в систему как cn = admin, cn = config" под этой строкой я вижу свой basedn "dc = domain, dc = tld" с примечанием: "this bas не может быть создан с помощью PLA"

Я использовал cn = admin, cn = config для входа в систему.

чтобы быть более конкретным:

нормальный вход как «cn = user, dc = domain, dc = tld» на сервер openldap работает нормально. что изменилось с момента моего последнего входа в cn = config: обновление с debian jessie до debian buster. С учетом сказанного, я обновил nginx, phpldapadmin, php5-fpm до php7.3-fpm openldap и другие (не связанные?) Вещи на сервере.

Я никогда не замечал проблем после этого обновления (несколько недель назад) с настоящего момента. Я знаю, что могу изменить нужные записи с помощью ldapmodify, но мне было интересно, почему вход в систему с помощью phpldapadmin, а также мой клиент Windows «ldapadmin» не работает (больше?).

что я уже проверил:

ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config"

дай мне:

# {0}bdb, config
dn: olcBackend={0}bdb,cn=config
objectClass: olcBackendConfig
olcBackend: {0}bdb

# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth manage by * break
olcAccess: {1}to dn.exact="" by * read
olcAccess: {2}to dn.base="cn=Subschema" by * read
olcSizeLimit: 500

# {0}config, config
dn: olcDatabase={0}config,cn=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
olcRootPW: "HASH"

# {1}bdb, config
dn: olcDatabase={1}bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {1}bdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=domain,dc=tld
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
 s auth by * none
olcAccess: {1}to dn.subtree=ou=users,dc=domain,dc=tld by dn=cn=anothermanager,dc
 =domain,dc=tld read by * none
olcLastMod: TRUE
olcRootDN: cn=admin,dc=domain,dc=tld
olcRootPW: "HASH"
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq

Я также заметил запись в вики в phpldapadmin:

There is a known problem with PHP, that when we attempt to get the schema with a blank dn, php-ldap replaces the blank dn with the BASE entry in /etc/openldap/ldap.conf

Edit /etc/openldap/ldap.conf and comment out the BASE entry, then restart your webserver. 

Я бы сказал, что мой /etc/phpldapadmin/config.php не изменился.

он содержит необходимую запись в своем массиве "base dn":

$servers->setValue('server','base',array('cn=config','dc=domain,dc=tld'));