The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"OpenLDAP - страшные тормоза"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"OpenLDAP - страшные тормоза"
Сообщение от Bushi emailИскать по авторуВ закладки on 30-Сен-03, 20:06  (MSK)
Сделал службу авторизации на базе FreeBSD 5.1 + OpenLDAP 2.1 + nss_ldap + pam_ldap  + samba3.0.0 для взаимодействия с windows + php для управления учетными записями. Прикрутил еще несколько служб (почта, базы данных, веб-прокси, ftp) с авторизацией через LDAP. Чуство эйфории прошло, когда добавил 50-го пользователя. Страшные тормоза при поиске в базе, приходится ждать по несколько секунд, особенно при запросе имен через nss_ldap. Уже думаю обратно на MS AD переходить. Как нибудь можно ускорить поиск? Может изменить базу данных? Используется Berkeley DB.
Кусок конфига slapd.conf

database        bdb
suffix          "dc=chirt,dc=ru"
rootdn          "cn=root,dc=chirt,dc=ru"
password-hash {SMD5}
rootpw {SMD5}XXXXXXXXXXXXXXXXXXXXX
directory       /var/db/openldap-data
index   objectClass     eq
allow   bind_v2

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "OpenLDAP - страшные тормоза"
Сообщение от Silent emailИскать по авторуВ закладки on 30-Сен-03, 20:17  (MSK)
>Сделал службу авторизации на базе FreeBSD 5.1 + OpenLDAP 2.1 + nss_ldap
>+ pam_ldap  + samba3.0.0 для взаимодействия с windows + php
>для управления учетными записями. Прикрутил еще несколько служб (почта, базы данных,
>веб-прокси, ftp) с авторизацией через LDAP. Чуство эйфории прошло, когда добавил
>50-го пользователя. Страшные тормоза при поиске в базе, приходится ждать по
>несколько секунд, особенно при запросе имен через nss_ldap. Уже думаю обратно
>на MS AD переходить. Как нибудь можно ускорить поиск? Может изменить
>базу данных? Используется Berkeley DB.
>Кусок конфига slapd.conf
>
>database        bdb
>suffix          "dc=chirt,dc=ru"
>rootdn          "cn=root,dc=chirt,dc=ru"
>password-hash {SMD5}
>rootpw {SMD5}XXXXXXXXXXXXXXXXXXXXX
>directory       /var/db/openldap-data
>index   objectClass     eq
>allow   bind_v2


database        bdb
suffix          ""

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd/tools. Mode 700 recommended.
#directory      /etc/openldap/bases
# Indices to maintain
#index  objectClass     eq

#suffix         "dc=managment"
#suffix         "o=cisco.com,c=US"
#rootdn         "cn=Users,dc=net,dc=ru"
#rootdn         "cn=Manager,o=cisco.com,c=US"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
#rootpw         secret

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd/tools. Mode 700 recommended.
directory       /etc/openldap/bases
#directory      ./bases
# Indices to maintain

Странно. У меня около 200 пользователей, работает самба, ни каких проблем не возникает.
Может и есть небольшие тормажение, но это только при дебаге.
Попробуй использовать фильтры LDAP-а при поиске.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 30-Сен-03, 21:31  (MSK)
>Странно. У меня около 200 пользователей, работает самба, ни каких проблем не
>возникает.
>Может и есть небольшие тормажение, но это только при дебаге.
>Попробуй использовать фильтры LDAP-а при поиске.

Самба работает быстро, основные тормоза связаны с nss_ldap. Например, получение списка пользователей в MC, запущенном на сервере, занимает 4 секунды. Как нибудь можно настроить фильтры в ldap.conf?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "OpenLDAP - страшные тормоза"
Сообщение от poor bugger Искать по авторуВ закладки on 01-Окт-03, 01:38  (MSK)
твоя проблема в индексах. читай ldap-howto про indexes и какую роль они играют в скорости доступа. и не мешало бы увидеть твой nsswitch.conf
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 01-Окт-03, 09:54  (MSK)
>твоя проблема в индексах. читай ldap-howto про indexes и какую роль они
>играют в скорости доступа. и не мешало бы увидеть твой nsswitch.conf
>

Проблему удалось немного локализовать. По умолчанию nss_ldap подключается к LDAP анонимным пользователем. Если в ldap.conf указать запись bind cn=root,... для ldap (та, которая прописана в slapd.conf) - то поиск происходит мгновенно. Если используется анонимный вход или любая другая запись - то тороза страшные - по несколько секунд, причем процесс slapd начинает пожирать в этот момент ресурсы процессора. Ничего не могу понять. Можно было бы так и оставить в качестве bind'а root, но не хочется прописывать на чужих серверах в ldap.conf пароль root.

#cat /etc/nsswitch.conf

passwd: files ldap
group:  files ldap
shadow: files ldap

#cat /etc/ldap.conf

host ldap.domain.ru
base dc=domain,dc=ru
ldap_version 3
# The distinguished name to bind to the server with.
# Optional: default is to bind anonymously.
#binddn cn=root,dc=domain,dc=ru

# The credentials to bind with.
# Optional: default is no credential.
#bindpw secret
port 389
scope sub
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_member_attribute gid
pam_password SMD5

nss_base_passwd         dc=domain,dc=ru?sub?objectClass=posixAccount
nss_base_shadow         dc=chirt,dc=ru?sub?objectClass=posixAccount
nss_base_group          dc=chirt,dc=ru?sub?objectClass=posixGroup

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 01-Окт-03, 13:10  (MSK)
Никто не сталкивался с проблемой?

Почему тормозит nss_ldap, когда конектится к серверу не под учетной записью root?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "OpenLDAP - страшные тормоза"
Сообщение от Андрей emailИскать по авторуВ закладки on 01-Окт-03, 14:06  (MSK)
>Никто не сталкивался с проблемой?
>
>Почему тормозит nss_ldap, когда конектится к серверу не под учетной записью root?
>

Неправильна сама учетная запись пользователя, покажи ldif для пользователя.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "OpenLDAP - страшные тормоза"
Сообщение от Андрей emailИскать по авторуВ закладки on 01-Окт-03, 14:07  (MSK)
или создай специальную учетную запись типа cn=login,dc=.. , ограничить ей права.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 01-Окт-03, 14:22  (MSK)
>>Никто не сталкивался с проблемой?
>>
>>Почему тормозит nss_ldap, когда конектится к серверу не под учетной записью root?
>>
>
>Неправильна сама учетная запись пользователя, покажи ldif для пользователя.

Наверно запись правильна, потому что с помощью других клиентов под этой записью доступ к базе получаю без проблем. А как же анонимный доступ? Он разрешен, но при исползовании анонимного доступа происходят тормоза. Вообще тормоза под любой учетной записью, кроме root.

Специальная учетная запись bind:

dn: uid=bind,dc=domain,dc=ru
objectClass: top
objectClass: account
objectClass: simpleSecurityObject
uid: bind
userPassword: bindpw

Учетная запись обычного пользователя для примера cn=Евгений Брумберг,ou=peoples,dc=cdpo,dc=domain,dc=ru (используется кириллица в кодировке UTF):

dn:: Y2490JXQstCz0LXQvdC40Lkg0JHRgNGD0LzQsdC10YDQsyxvdT1wZW9wbGVzLGRjPWNkcG8s
ZGM9Y2hpcnQsZGM9cnU=
uid: bev.cdpo
cn:: 0JXQstCz0LXQvdC40Lkg0JHRgNGD0LzQsdC10YDQsw==
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
objectClass: inetOrgPerson
sambaNTPassword: DFA00D30923C6A547D53C92DA85850C5
sambaLMPassword: 2053B53B56579F07AAD3B435B51404EE
sambaSID: S-1-5-21-3421413945-3174560063-878130273-17002
sambaPrimaryGroupSID: S-1-5-21-3421413945-3174560063-878130273-513
sambaHomeDrive: H:
uidNumber: 8001
gidNumber: 8000
homeDirectory: /home/bev
shadowLastChange: 12325
loginShell: /bin/tcsh
gecos: Evgeny Brumberg
description: Evgeny Brumberg
shadowMin: 1
shadowMax: 180
shadowWarning: 10
shadowInactive: 10
shadowExpire: 14610
sn:: 0JHRgNGD0LHQtdGA0LM=
mail: bev@cdpo.domain.ru
sambaPwdLastSet: 1064905717
sambaPwdMustChange: 1066720117
sambaPwdCanChange: 1064905717
sambaAcctFlags: [UX         ]
displayName:: 0JHRgNGD0LzQsdC10YDQsyDQldCy0LPQtdC90LjQuSDQktC70LDQtNC40YHQu9C
w0LLQvtCy0LjRhw==
givenName:: 0JXQstCz0LXQvdC40Lk=
initials:: 0JLQu9Cw0LTQuNGB0LvQsNCy0L7QstC40Yc=
userPassword: {SMD5}6/NhK+WY0m8qw3SGaXRRjvXrjGo=

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "OpenLDAP - страшные тормоза"
Сообщение от Андрей emailИскать по авторуВ закладки on 01-Окт-03, 14:34  (MSK)
objectClass: simpleSecurityObject

для чего это?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 01-Окт-03, 17:57  (MSK)
>objectClass: simpleSecurityObject
>
>для чего это?


Потому что в objectClass: account  нет атрибуита userPassword: , вот objectClass: simpleSecurityObject его и добавляет. Это не принципиально, суть от этого не меняется.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 01-Окт-03, 19:14  (MSK)
>objectClass: simpleSecurityObject
>
>для чего это?
Можно и так - суть одна

dn: cn=bind,dc=domain,dc=ru
objectClass: top
objectClass: person
cn: bind
sn: bind
userPassword: bindpw

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 01-Окт-03, 19:38  (MSK)
Причина вот в чем - nss_ldap упорно пытается прочитать атрибут userPassword, поэтому надо давать ему bind с правами чтения атрибутов userPassword. Когда он использует анонимный доступ или левую учетную запись, то ему это не удается и начинаются тормоза. Как нибудь можно в ldap.conf запретить ему читать этот атрибут? Нет желания раздавать пароль bind'а направо и налево, хотя bind может только читать userPassword и там хранятся только их хеши (ведь рабочим станциям freebsd или linux, которые авторизируются через pam_ldap и nss_ldap тоже придется отдавать этот пароль).
  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "OpenLDAP - страшные тормоза"
Сообщение от Андрей emailИскать по авторуВ закладки on 02-Окт-03, 13:24  (MSK)
Я немного не понимаю..
Держи учетный записи для самбы отдельно от системных! где небудь в ou=samba,dc=... и пользователя сделай который имеет право на чтение/запись только в эту ветку.
Далее для сервера самба в ldap.conf где юзеры тоже пути на ...,ou=samba.., чтобы видела именно их! и пропиши там же в bind пользователя и пароль его кидай в secret.ldap
  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 02-Окт-03, 13:37  (MSK)
>Я немного не понимаю..
>Держи учетный записи для самбы отдельно от системных! где небудь в ou=samba,dc=...
>и пользователя сделай который имеет право на чтение/запись только в эту
>ветку.
>Далее для сервера самба в ldap.conf где юзеры тоже пути на ...,ou=samba..,
>чтобы видела именно их! и пропиши там же в bind пользователя
>и пароль его кидай в secret.ldap

Проблема в том, что имеется несколько доменов samba, каждый домен работает на отдельной машине, для каждого домена существует отдельная ветвь ldap. Сегодня создал пользователя, которому разрешено читать все атрибуты - все равно тормоза. Не тормозит только под root, который прописан в slapd.conf

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "OpenLDAP - страшные тормоза"
Сообщение от Андрей emailИскать по авторуВ закладки on 02-Окт-03, 14:11  (MSK)
хм.. вывод неправильный доступ для учетной записи bind?
кидай кусок из slapd.conf
  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "OpenLDAP - страшные тормоза"
Сообщение от Андрей emailИскать по авторуВ закладки on 02-Окт-03, 14:24  (MSK)
Может также помочь nscd, name service cache daemon. Не знаю как он обзывается в bsd. Но его роль кешировать имена.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "OpenLDAP - страшные тормоза"
Сообщение от Bushi Искать по авторуВ закладки on 10-Окт-03, 23:17  (MSK)
>Может также помочь nscd, name service cache daemon. Не знаю как он
>обзывается в bsd. Но его роль кешировать имена.


Проблема наконец то решена. Дело в том, что в базе ldap несколько ветвей, в каждой ветви свой администратор и существовал сложный acl в файле slapd.conf, в котором прописывались права администраторов для каждой ветки. Запуская в режиме отладки, увидел, что моного ресурсов уходит на проверку acl. В acl была небольшая ошибка.

Строку в acl надо заменить с:

access to dn="*,dc=students,dc=domain,dc=ru" attr=sambaNTPassword

на:

access to dn.subtree="dc=students,dc=domain,dc=ru" attr=sambaNTPassword

А таких правил было много, поэтому сильно тормозило при использовании bind anonymous или любого пользователя кроме root. После исправления скорость работы с ldap значительно возросла. На этот момент в базе более 400-сот пользователей.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру