AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

[Вопрос] Настройка Open LDAP с нуля

Unix Way 2 сообщений -
#1

Всем привет

Пытаюсь настроить OpenLDAP с нуля, сразу же начал с динамической конфигурации, создал файл ldif в него все по инструкции записал, пример конфигурации: my.ldif

# Глобальные настройки
dn: cn=config
objectClass: olcGlobal
cn: config
olcPidFile: /var/run/openldap/slapd.pid
olcArgsFile: /var/run/openldap/slapd.args
olcLogLevel: -1

# Определения для схем
dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema

# подгружаем нужные схемы
include: file:///etc/openldap/schema/core.ldif
include: file:///etc/openldap/schema/cosine.ldif
include: file:///etc/openldap/schema/nis.ldif
include: file:///etc/openldap/schema/inetorgperson.ldif
include: file:///etc/openldap/schema/openldap.ldif

# глобальные параметры баз данных
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {-1}frontend
olcAccess: to * by * write

# подгружаем модули
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/openldap
olcModuleLoad: accesslog.la

# Изменяем доступ к глобальной базе cn=config
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcRootPW: secret
olcAccess: to * by * none

# добавляем бэкенд BDB и добавляем новый суффикс
dn: olcDatabase=bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: bdb
olcSuffix: dc=test,dc=ru
olcRootDN: cn=admin,dc=test,dc=ru
olcRootPW: admin
olcDbDirectory: /var/lib/ldap/test.ru
olcAccess: to attrs=userPassword
by self write
by anonymous auth
by dn.base="cn=admin,dc=test,dc=ru" write
by * none
olcAccess: to *
by self write
by dn.base="cn=admin,dc=test,dc=ru" write
by * read

создаем динамическую конфигурацию с помощью команды:
Код:
slapadd -n 0 -F /etc/openldap/slapd.d -l /etc/openldap/my.ldif

запускаем сервак, все проходит отлично, сервак запущен

Создаем LDIF с данными data.ldif

dn: dc=ru
objectClass: dcObject
objectClass: organization
o: ru Domain
dc: ru

dn: dc=test,dc=ru
objectclass: dcObject
objectclass: organization
o: Test
dc: test

dn: cn=admin,dc=test,dc=ru
objectclass: organizationalRole
cn: admin

dn: ou=users,dc=test,dc=ru
ou: users
objectclass: top
objectclass: organizationalUnit

добавляем командой:
Код:
ldapadd -x -D"cn=config" -W -f add.ldif
adding new entry "dc=ru"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge

выдает ошибку.

поступаем подругому, изменяем немного data.ldif (комментируем dc=ru)

#dn: dc=ru
#objectClass: dcObject
#objectClass: organization
#o: ru Domain
#dc: ru
#
dn: dc=test,dc=ru
objectclass: dcObject
objectclass: organization
o: Test
dc: test

dn: cn=admin,dc=test,dc=ru
objectclass: organizationalRole
cn: admin

dn: ou=users,dc=test,dc=ru
ou: users
objectclass: top
objectclass: organizationalUnit

и выполняем командой
Код:
ldapadd -x -D"cn=admin,dc=test,dc=ru" -W -f add.ldif

данные добавились.

Вопрос, почему у меня cn=config не работает (с ldap неделю назад начал разбираться), во frontend добавил же правило что каждый может изменять все что ему заблагорассудится, объясните на пальцах как это работает

Еще почему у меня не получатся создать отдельный домен например dc=net, на соседнем серваке стоит Zimbra на их ldap все создается и удаляется

Added after 7 minutes:

поиск тоже не так как хотелось бы работает

пытаемся искать все начиная от dc=ru
Код:
ldapsearch -LL -x -W -D 'cn=admin,dc=test,dc=ru' -s sub -b 'dc=ru' '(objectClass=*)'
version: 1

No such object (32)


пытаемся искать от dc=test,dc=ru
Код:
ldapsearch -LL -x -W -D 'cn=admin,dc=test,dc=ru' -s sub -b 'dc=test,dc=ru' '(objectClass=*)'
version: 1

dn: dc=test,dc=ru
objectClass: dcObject
objectClass: organization
o: Test
dc: test

dn: cn=admin,dc=test,dc=ru
objectClass: organizationalRole
cn: admin

dn: ou=users,dc=test,dc=ru
ou: users
objectClass: top
objectClass: organizationalUnit


Поиск одинаково работает с DN = cn=confing и cn=admin,dc=test,dc=ru
#2

может кто знает как правильно настроить cn=config?