Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - d06pbiu

Страницы: [1]
1
Всем доброго времени суток!
Вот в чем проблемка, вкратце:
Есть у меня вэб-интерфейс по смене паролей учетных записей пользователей, зайдя на него пользователь может изменить свой текущий (истекший\не истекший) пароль. "Качество" пароля я проверяю сам на стороне клиента (JS'ом) и на сервере (php), в случае если пароль прошел проверку - то просто меняю текущее значение атрибута userPassword, в учетке пользователя, на новый пароль (замену атрибута делаю от имени учетки, для которой разрешен доступ на запись к атрибутам userPassword)... ну и время последней смены пароля корректирую заодно... как то так.
И вот такое дело, захотел прикрутить ppolicy чтоб все проверки осуществлял ldap ( + добавить таки штуки как: предельное кол-во попыток ввода пароля после которого будет происходить блокировка учетки; вести историю паролей - чтоб не вводили одни и те же... ну и прочие интересные штуки).
И вот в чем вопрос: будет ли отрабатывать ppolicy в том случае если изменение пароля будет происходить через мой "супер интерфейс"(т.е. тупой заменой значения userPassword от рута)?

2
Спасибо за помощь Егор!
Данный атрибут хочу использовать для разграничения прав доступа к вэб-интерфейсу, при аутентификации идет проверка содержимого этого атрибута - если там, допустим, root, то пользователь получает полные права, если user - то никаких... и т.д.
И вот это самый атрибут authorizationRole упоминался в руководстве к apachе...

3
Все доброго времени суток!
Собственно, понадобился атрибут authorizationRole, а вот схему с таким атрибутом найти не могу((
Не уверен есть ли вообще какая-нибудь "стандартная" схема с таким атрубутом...
Может кто встречал?

4
Всем доброго времени суток!
Необходимо добавить в уч.запись группы пароль. При создании уч.записи группы использую атрибут userPassword (опциональный атрибут (MAY), входит в состав класса posixGroup), если я все правильно понял то этот атрибут и отвечает за пароль группы.
Далее выполняю команду sg <группа_из_ldap> (временно делает пользователя членом указанной группы), выводиться приглашение ввести пароль, ввожу - но получаю сообщение о том что пароль не верный...
Аутентификация/авторизация настроена через ldap, работает исправно...а вот sg не работате(
Что может быть, посоветуйте?

5
Всем доброго времени суток!
Хотел настроить ведение логов OpenLDAP через olcLogFile, для этого создал  сам лог-файл /var/log/ldap.log - назначил права доступа 660 и владельца ldap:ldap, ну и конечно же добавил в cn=config.ldif директиву olcLogFile:
dn: cn=config
changetype:modify
add: olcLogFile
olcLogFile: /var/log/ldap.log

Но лог-фай пуст! Для чистоты эксперимента перезагрузил slapd - никаких изменений!

Конечно есть вариант настройки логирования через syslog:
/etc/rsyslog.conf:
local4.*                        /var/log/ldap.log

Но все же хочется знать как настроить именно через olcLogFile, т.е. может ли вообще  OpenLDAP работать с лог-файлами напрямую, а не через syslog?

6
День добрый!
В логе, поставщика репликации заметил вот такие строки:
Mar 14 11:39:28 ldapserv slapd[10643]: <= bdb_equality_candidates: (entryCSN) not indexed
Mar 14 11:39:28 ldapserv slapd[10643]: <= bdb_inequality_candidates: (entryCSN) not indexed

Меня смущает то, что (если я правильно понимаю эти сообщения) сначала предлагается проиндексировать entryCSN (bdb_equality_candidates) и следом же идет сообщение  bdb_inequality_candidates - т.е. наоборот убрать(?) индексирование entryCSN eq?

Вот все проиндексированные атрибуты на поставщике, entryCSN - не проиндексирован:
olcDbIndex: uidNumber eq
olcDbIndex: uniqueMember eq
olcDbIndex: uid pres,eq,sub
olcDbIndex: uniqueMember eq
olcDbIndex: contextCSN eq
olcDbIndex: objectClass eq
olcDbIndex: cn,sn pres,eq,approx,sub

Что это значит и как быть?)

7
Спасибо за помощь, Егор!
Цитировать
Вообще странно, что у Вас база данных хранится в /var/log/ldap...
- чуток очепятался, БД храниться в /var/lib/ldap.
Цитировать
...OpenLDAP с динамической конфигурацией...
Так и есть - раз динамическая конфигурация openldap - так и нужно испоьзовать ее возможностями иначе весь смысл olc теряется)))... что-то я поторопился.
А вот еще такой вопрос будет: <=bdb_equality_candidates:     (uidNumber) - встречается очень-очень часто, за двое суток 191647 раза - её то точно надо индексировать, а как быть с <=bdb_substringing_candidates: (uid) - всего 11 раз за те же 2 дня - стоит ли этот атрибут индексировать или, может быть, излишняя индексация "вредна"?

8
Всем доброго времени суток!
Просматривал лог ldap'a и обнаружил вот такого типа сообщения:

Mar 14 11:39:28 ldapserv slapd[12674]: <=bdb_equality_candidates: (uidNumber) not indexed
Mar 14 11:39:31 ldapserv slapd[12674]: <=bdb_substringing_candidates: (uid) not indexed

В из документации вычитал что, если такие сообщения появляются довольно часто, то нужно нужно провести индексацию этих атрибутов. Проверил как часто данные сообщения появляются:

# grep indexed /var/log/ldap.log | cut -d " " -t 7,8 | sort | uniq -c
6         <=bdb_equality_candidates:     (gidNumber)
191647    <=bdb_equality_candidates:     (uidNumber)
537       <=bdb_equality_candidates:     (uniqueMember)
11        <=bdb_substringing_candidates: (uid)

Для того чтобы проиндексировать эти атрибуты сделал вот что:
0) Остановил slapd;
1) Сделал экспорт каталога в ldif (это меня и спасло) командой slapcat, а также скопировал директорию где хранится сама БД bdb - /var/log/ldap/;
2) В файл /etc/openldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif добавил следующие строки:

olcDbIndex: uidNumber eq
olcDbIndex: uniqueMember eq

3) Запустил slapd;
Запуск прошел успешно, в логах ошибок не было, в директории где хранится bdb появились файлы uidNumber.bdb и uniqueMember, НО только после индексации пользователи не могли удаленно подключаться к серверам(ldap-применяется для аутентификации пользователей) - серверы разрывали соединения.

Началась паника   :(

Начал восстанавливать каталог - сначала просто удалил всю директорию с текущей БД /var/log/ldap/ и скопировал туда резервную копию БД (см. выше пункт №2) - запустил slapd - в БД оказался каталог 2х месячной давности, из этого сделал вывод что все изменения в записях каталога slapd не скидывал в БД.
Удалил /var/log/ldap/ - и импортировал ldif каталога - все вернулось на место!

Хотелось бы разобраться в следующий вопросах:
1) Правильно ли провел индексацию?
2) Почему после индексации пользователи не смогли аутенифицироваться через ldap, может у кого было такое же?
3) Индексацию нужно проводить только на мастер-ldap-сервере или нужно делать тоже самое на slave (настроена репликация refreshOnly)?
4) Как сделать чтобы при изменении/добавлении записи в каталог slapd скидывал всю инфу в bdb сразу ну или через заданный промежуток времени?
5) Можно ли делать slapcat при работающем slapd (openldap 2.4.23)?

9
Спасибо за оперативную помощь Egor!
Проблема в аутентификации - она не работает с предложенными ACL, а вот если я их удаляю, то все работает как надо - вот это-то и странно, потому как до недавнего времени(до переименования сервера - только как это связано?) все прекрасно работало. Дистрибутив Scientific Linux 6.2(RedHat), аутентификация через демона nslcd (пакет nss-pam-ldapd).
Репликация работает!
Но никак у меня не получается понять в чем дело(.

Вот что slapcat выдает:
$ slapacl -F /etc/openldap/slap.d -v -D "uid=testuser,ou=mycomp,o=org" -b "uid=testuser,ou=mycomp,o=org"
authcDN: "uid=egor,ou=users,dc=mycompany,dc=ru"
...
uid=testuser: read(=rscxd)
...
userPassword=****: auth(=xd)
...
description:: secret: auth(=xd)
если делаю slapacl от пользователя repluser - то все аттрибуты доступны для чтения: read(=rscxd) - что говорит, как я понял, что ACL настроены правильно, НО в то же время в логе(olcLogLevel: 128) при попытке подключиться к серверу используя учетки из ldap, вижу вот что:
:=> acl_mask: access to entry "uid=testuser,ou=mycomp,o=org", attr "userPassword" requested
:=> acl_mask: to value by "", (=0)
:<= check a_dn_pat: cn=repluser,ou=mycomp,o=org
:<= check a_dn_pat: *
:<= acl_mask: [2] applying auth(=xd) (stop)
:<= acl_mask: [2] mask: auth(=xd)
:=> slap_access_allowed: read access denied by auth(=xd)
:=> access_allowed: no more rules
: send_search_entry: conn 1014 access to attribute userPassword, value #0 not allowed

а на сервере к которому пытаюсь подключиться в логе /var/log/secure:
sshd[3821]: pam_unix(sshd:auth): authentication failure: logname uid=0 euid=0 tty=ssh ruser= rhost=testhost user=testuser
sshd[3821]: Failed password for testuser from 192.168.0.4 port 51141 ssh2

Далее привожу конф.файлы openldap.
cn=config.ldif:
dn: cn=config
objectClass: olcGlobal
cn: config
olcConfigDir: /etc/openldap/slap.d
olcArgsFile: /var/run/openldap/slapd.args
olcLogLevel: 128
olcPidFile: /var/run/openldap/slapd.pid
olcThreads: 32

olcDatabase={0}config.ldif:
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: [0] * by * none
olcRootDN: cn=manager,cn=config
olcRootPW: secret

olcDatabase={1}bdb.ldif:
dn: olcDatabase={1}bdb
objectClass: top
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase:{1}bdb
olcDbDirectory: /var/lib/ldap
olcSuffix: ou=mycomp,o=org
olcAccess: {0}to attrs=userPassword,description by dn="cn=repluser,ou=mycomp,o=org" read by * auth
olcAccess: {1}to * by * read
olcRootDN: cn=manager,ou=mycomp,o=org
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: 1800
olcDbConfig: {0} set_cachesize 0 268435456 0
olcDbConfig: {1} set_lg_regionmax 262144
olcDbConfig: {2} set_lg_bsize 2097152
olcDbConfig: {3} set_lg_dir /var/tmp/bdb-log
olcDbConfig: {4} set_flags DB_LOG_AUTOREMOVE
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn pres,eq,approx sub
olcDbIndex: objectClass eq
olcDbIndex: contextCSN eq
olcDbIndex: entry UUID eq
olcDbIndex: memberUid eq

cn=module{0}.ldif:
dn: module{0}
objectClass: olcModuleList
cn: module{0}
olcModuleLoad: {0}/usr/lib64/openldap/syncprov.la
olcDatabase={1}bd/olcOverlay={0}syncprov.ldif:
dn: olcOverlay={0}syncprov
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpCheckpoint: 100 5

Что не так? Что поправить? Что еще показать? Буду рад любым предложениям!

10
Всем доброго времени суток!
Проблема вот в чем:
Был настроен ACL вот так:
     olcAccess: {0}to attrs=userPassword,description by dn="cn=repluser,ou=mycomp,o=org" read by * auth
     olcAccess: {1}to * by * read
Все прекрасно работало, пользователи могли аутентифицироваться/авторизовываться и могли видеть все аттрибуты кроме userPassowrd и description - их мог читать только cn=repluser(для репликации католога на слэйв-сервер).
А потом все прекратилось! Вот что вижу в логе:
    send_search_entry: conn 1009 access to attribute userPassword, value #0 not allowedПри этом getent, ldapsearch работают как надо.
Удаляю ACL - и опа на - аутентифиция/авторизация работает! - ну так нельзя! - пользователю незачем видеть userPassword!
Что за чудеса?( - раньше все с ACL работало...
В чем дело, куда  смотреть?

P.S.
Началось все после переименования ldap-сервера(но не факт).

11
Спасибо за помощь! Сделал все по Вашей схеме - все работает!)

12
Всем доброго времени суток!
Вот в чем мой вопрос: в настоящий момент есть DIT с суффиксом olcSuffix: ou=example,o=net, под него БД - bdb, в ней хранаяться записи о пользователях - пользователей добавлял используя, например, dn: uid=user,ou=example,o=net, так вот, если  я поменяю olcSuffix на оu=mycompany,o=net, записи о пользвателях в БД тоже изменяться на, к примеру, uid=user,ou=mycompany,o=net?
Т.е. достаточно ли сменить суффикс в  olcDatabase={Х}bdb,cn=config чтобы можно было иметь доступ к записям в БД используя новый суффикс?
Или каким образом это можно сделать? И как правильно поменять суффикс?

13
Спосибо за оперативность Егор!)
Вообще задача такая: был ldap-сервер с openldap 2.2.1 - использовался для аутентификации, решено перейти на более новую версию (2.4.23); со старого сервера был экспортирован ldif с вот такими классами:

 objectClass: top
 objectClass: account
 objectClass: posixAccount
 objectClass: shadowAccount
 objectClass: person
 objectClass: inetOrgPerson
 objectClass: organizationalPerson

И все атрибуты этих классов использовались ( !особенно атрибут host! ), и кстати, было всего 3 сервера с настроенной репликацией (настраивались не мной --- я смотрел схемы - они не модифицированы - как ldap мог принять такой ldif, интересно?), вот и хотелось бы вносить минимум в ldif перед импортом.

Думаю второй вариант подойдет лучше всего!
Еще раз огромное спасибо!

14
Всем привет!
Как сделать так чтобы можно было использовать два структурных класса account и person в определении записи?
В инете нагуглил что можно просто в схеме поменять тип класса на вспомогательный - попробовал сделать account - AUXILIARY - вроде работает, но чем это черевато? Какие могут быть плачевные последствия?
Может можно еще как то это реализовать?

Страницы: [1]
Эта страница

Содержание

Новости:
Форум проекта Pro-LDAP.ru
OpenLDAP 2.4 Руководство

Содержание

Введение в службы каталогов OpenLDAPБыстрое развёртывание и начало работыОбщая картина - варианты конфигурацииСборка и установка OpenLDAPНастройка slapd

 

Конфигурационный файл slapdЗапуск slapdКонтроль доступаОграниченияИнструментыМеханизмы манипуляции даннымиНаложенияСпецификация схемы

 

БезопасностьSASLTLSРаспределённая служба каталоговРепликацияОбслуживаниеМониторингПроизводительностьУстранение неполадок
Перевод официального руководства OpenLDAP 2.4 Admin Guide
Полное содержание здесь
LDAP для учёных-ракетчиков

Содержание

О книгеКонцепции LDAPОбъекты LDAPУстановка LDAPПримерыНастройкаРепликация и отсылкиLDIF и DSMLПротоколLDAP API

 

HOWTOНеполадкиПроизводительностьИнструменты LDAPБезопасностьЗаметкиРесурсы LDAPRFC и X.500ГлоссарийОбъекты
Перевод "LDAP for Rocket Scientists"
Полное содержание здесь
Ресурсы

Книги

Руководство OpenLDAP 2.4LDAP для учёных-ракетчиков

Другие

СтатьиТермины LDAPman-страницы OpenLDAP 2.4Список RFCКлиенты LDAPФайлы наборов схемы
Полезные ресурсы
Форум

 

Разделы форумаНепрочитанные сообщенияПоследние сообщения
Форум проекта
Главная

Pro-LDAP.ru

О проектеНовости проектаУчастникиСтаньте участником!Сообщите об ошибке!Об авторских правахСоглашения проекта
Присоединяйсь!