LINUX.ORG.RU
ФорумAdmin

Правка cn=config через phpldapadmin

 ,


0

1

Debian, свежеустановленный openldap c OLC (cn=config). При установке задал имя для DIT, пароль менеджера базы.Теперь, хочу производить настройку базы через любой LDAP-браузер, скажем, phpldapadmin.

Пытаюсь зайти с логином cn=admin,cn=config, просто cn=config или cn=root,cn=config в ответ:

Invalid credentials (49) for user

Пробовал зайти как с удаленного хоста, так и с хоста с openldap (в случае для cn=root,cn=config)

Начитавшись документаций - пробовал и через команду:

ldapsearch -w <пароль> -x -D cn=admin,cn=config -b cn=config

Та же самая ошибка.

При этом можно, используя phpldapadmin, зайти и создавать/редактировать базу с учеткой cn=admin,dc=rfc,dc=local - никаких проблем. То-есть openldap работает нормально. Что я делаю не так, что упустил?


cn=config отдельная база. Ей так же надо прописывать

olcRootDn
olcRootPw
или дать права на базу другой учётке:
olcAccess: {0} to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by dn.base="cn=admin,dc=rfc,dc=local" manage
by * none

Ivan_qrt ★★★★★
()

Jessie:

# ldapmodify -Y EXTERNAL -H ldapi:/// << EOF
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth manage by dn.base=cn=admin,dc=rfc,dc=local manage by * break

EOF

$ ldapsearch -LLLxD cn=admin,dc=rfc,dc=local -w 'pass' -b cn=config

mos ★★☆☆☆
()
Ответ на: комментарий от Ivan_qrt

mos, Ivan_qrt
Спасибо за ответы

Ага, то-есть таки надо дополнительно прописать права для доступа. Правда, не совсем понятно, запись:

by dn.base=«gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth» manage

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

А команда

ldapmodify -Y EXTERNAL -H ldapi:/// ...

Выдает:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0
ldapmodify: invalid format (line 5) entry: «olcDatabase={0}config,cn=config»

D_Ima
() автор топика
Ответ на: комментарий от D_Ima

Попробуй dn: olcDatabase={0}config

Без cn=config. Я не совсем понимаю взаимоотношения cn=config и описаний БД, но у меня в cn=config/olcDatabase={0}config.ldif dn такой.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от Ivan_qrt

olcDatabase={0}config.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 0043065d
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al,cn=auth manage by * break
olcRootDN: cn=admin,cn=config
structuralObjectClass: olcDatabaseConfig
entryUUID: 201ab204-7632-1034-9f56-0d12560d915e
creatorsName: cn=config
createTimestamp: 20150413140712Z
entryCSN: 20150413140712.301684Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20150413140712Z

D_Ima
() автор топика
Ответ на: комментарий от D_Ima

У меня работает так:

dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
 by dn.base="cn=admin,dc=rfc,dc=local" manage by * none
Ivan_qrt ★★★★★
()
Ответ на: комментарий от Ivan_qrt

Ерунда какая-то:

ldapmodify -Y EXTERNAL -H ldapi:/// << EOF
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
 by dn.base="cn=admin,dc=rfc,dc=local" manage by * none
EOF
в ответ:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
	additional info: <olcAccess> handler exited with 1
и вылетает slapd.

Что-то криво установилось, похоже. Завтра на чистой сборке попробую.

Спасибо за помощь.

D_Ima
() автор топика
Ответ на: комментарий от D_Ima

http://serverfault.com/questions/490638/ldap-modify-other-e-g-implementation-...

У меня чуть другая строка olcAccess, я её копипастил. Не учёл пробелы, а они важны.

ldapmodify -Y EXTERNAL -H ldapi:/// << EOF
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
  by dn.base="cn=admin,dc=rfc,dc=local" manage by * none
EOF
Ivan_qrt ★★★★★
()
Ответ на: комментарий от D_Ima

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

это у тебя и так есть. к ACL *добавляется* указание разрешить управление базой cn=config «манагеру» собственно дерева.

Выдает:

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

короче тут как обычно рашн-бистро-админ. в аглицкий не умеем, доки читаем иногда, если что-то не фурычит. и то не те и не так.

mos ★★☆☆☆
()
Ответ на: комментарий от mos

mos

[off-topic]

Спасибо за помощь, но вот «наезжать», пожалуй, не стоит. Я просто пытаюсь полноценно разобраться и свои мозаичные знания как-то упорядочить, свести воедино ну в очень сжатые сроки. И о своих непонятках спрашиваю знающих людей.

Если я что-то упустил, не заметил, не дочитал, ступил - наверное не стоит пинать и диагнозы ставить, а лучше подскажите, натолкните, исправьте. Мануальным терапевтом быть несложно...

[/off-topic]

Ivan_qrt

Спасибо, увидел, где была ошибка.

Установил openldap на новой машине, выполнил

ldapmodify -Y EXTERNAL -H ldapi:/// << EOF
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
  by dn.base="cn=admin,dc=rfc,dc=local" manage by * none
EOF
успешно выполнилось. Затем

ldapsearch -LLLxD cn=admin,dc=rfc,dc=local -w 'password'-b cn=config

тоже все норм: выдал «внутренности» cn=config, там прописало как положено olcRootDN, olcRootPW, olcAccess.

Но тем не менее, логин через phpldapadmin c cn=admin,cn=config не пускает. Пробовал и cn=admin,dc=rfc,dc=local,cn=config , и cn=admin,cn=config,dc=rfc,dc=local - в ответ лишь

Invalid credentials (49) for user

D_Ima
() автор топика
Ответ на: комментарий от D_Ima

olcDatabase={0}config.ldif

dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcRootDN: cn=admin,cn=config
structuralObjectClass: olcDatabaseConfig
entryUUID: 70a86242-76e2-1034-8f7c-59dc562dbfdc
creatorsName: cn=config
createTimestamp: 20150414110918Z
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" manage by dn.base="cn=admin,dc=rfc,dc=local" manage by * none
entryCSN: 20150414111018.765423Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20150414111018Z

D_Ima
() автор топика
Ответ на: комментарий от D_Ima

Так, здесь написано, что phpldapadmin не поддерживает cn=configи cn=monitor. Виндовый LdapAdmin тоже не хочет коннкетиться. Попробуем что другое...

D_Ima
() автор топика
Ответ на: комментарий от D_Ima

Установил ldap account manager - успешно зашло с cn=admin,cn=config

Еще раз спасибо за помощь.

D_Ima
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.