Форум проекта Pro-LDAP.ru
Администрирование OpenLDAP => Вопросы безопасности => Access Control List (ACL) => Тема начата: borym от 29 Июнь 2015, 10:09:24
-
Доброго времени суток.
подскажите, пожалуйста, куда копать...
идея такова, что каждый пользователь может сам себе сбрасывать пароль через ltb (http://ltb-project.org/wiki/documentation/self-service-password). управляю пользователями я через lam (https://www.ldap-account-manager.org)
есть заблокированный пользователь. когда ему меняется пароль (либо админом через lam, либо кем то через ltb), он автоматически разблокируется. при этом в конфиге ltb force activate = false, а в lam я ничего подобного вообще не нашел.
как сделать так что бы пользователь не активировался при смене пароль?
Ubuntu 12.04
slapd 2.4.28
спасибо большое
-
Здравствуйте! Тут важно понять, каким образом пользователь "блокируется" и "разблокируется". Очевидно, что-то (значение какого-то атрибута) меняется в самой записи пользователя. Применяется ли в вашем каталоге наложение slapo-ppolicy? Можно ли отследить отличие заблокированной записи от только что разблокированной?
Егор
-
Применяется ли в вашем каталоге наложение slapo-ppolicy?
в силу того что я не особо силен в понимании ldap-а, к сожалению, я не могу на это ответить. могу сказать лишь то, что я это не применял )
Можно ли отследить отличие заблокированной записи от только что разблокированной?
я не смог этого сделать через средства lam. если Вы сможете мне подсказать как еще я могу это сделать, я попробую
благодарю за ответ
-
Сделайте из консоли на сервере, где работает slapd, вызов ldapsearch (http://pro-ldap.ru/tr/man/ldapsearch.1.html) заблокированной записи непосредственно до разблокирования и сразу после разблокирования (смены пароля). Желательно выполнить ldapsearch с правами rootDN Вашего каталога (чтобы обойти ACL). Скорее всего, это тот пользователь, учётку которого Вы настраивали в lam в качестве административной. Примерно так:
ldapsearch -x -LLL -b 'dc=mycompany,dc=ru' -D 'cn=admin,dc=mycompany,dc=ru' -W '(uid=blockedUser)' '*' +
Само собой, не забудьте поменять значения аргументов -b, -D и фильтра на свои. Выводы команд опубликуйте здесь или мне в личку, чтобы можно было сравнить результаты.
Егор
-
спасибо большое за ответ, Егор.
у заблокированного и разблокированного пользователя меняется только поле userPassword
отсюда похоже и ответ почему пользователь активируется при смене пароля)
не могли бы вы мне что нибудь посоветовать, как это можно обойти. возможно есть какой то аналог для lam, либо его можно как то донастроить, что бы он более корректно блокировал пользователей.
как я понял, для полноценной блокировки пользователя необходимо использовать схему ppolicy и параметр pwdLockout ?
-
у заблокированного и разблокированного пользователя меняется только поле userPassword
отсюда похоже и ответ почему пользователь активируется при смене пароля)
Скорее всего меняется не только этот атрибут, но и кое-какие операционные, которых через lam не посмотреть (поэтому я и просил вывод ldapsearch).
не могли бы вы мне что нибудь посоветовать, как это можно обойти. возможно есть какой то аналог для lam, либо его можно как то донастроить, что бы он более корректно блокировал пользователей.
как я понял, для полноценной блокировки пользователя необходимо использовать схему ppolicy и параметр pwdLockout ?
Чтобы сказать что-то определённое про lam, нужно с ним хотя бы немного поработать =) . У меня нет опыта работы с этим, прямо скажем, специализированным клиентом. Так что понадобиться какое-то время, чтобы его поставить и разобраться что к чему. Если Вы можете подождать, то я попробую найти время, посмотрю и отпишусь Вам. Но не обещаю, что это будет быстро =) .
Егор
-
отправил вывод в ЛС с небольшим коментом.
я был бы очень признателен, если Вы сможете помочь с lam, и естественно готов ждать столько сколько нужно, точнее я тем временем продолжу параллельно разбираться с этим самостоятельно.
благодарю Вас за помощь
-
Если блокировка происходит (как Вы написале в личке) постановкой восклицательного знака перед хэшем в значении атрибута userPassword, тогда вполне логично, что при смене пароля такая "блокировка" исчезает =) . Тут уж, видимо, без ppolicy не обойтись. Хотя более определённо можно будет что-то сказать только после изучения программы.
Егор
-
да, в планах поизучать эту самую ppolicy :)
Егор, возможно Вы можете посоветовать какой-либо аналог тем инструментам, которые я использую и которые могут полноценно работать с ppolicy ?
-
Я настраивал ppolicy только руками, без какой-либо программы. Посмотрите материалы:
в учебнике LFRS (http://pro-ldap.ru/tr/zytrax/ch6/ppolicy.html),
man-страница slapo-ppolicy(5) (http://pro-ldap.ru/tr/man/slapo-ppolicy.5.html),
о том как добавлять набор схемы и наложение (если их ещё нет) (http://pro-ldap.ru/books/diving/begin/index.html),
несколько топиков на форуме:
http://pro-ldap.ru/forum/index.php?topic=27.0 (http://pro-ldap.ru/forum/index.php?topic=27.0)
http://pro-ldap.ru/forum/index.php?topic=54.msg208#msg208 (http://pro-ldap.ru/forum/index.php?topic=54.msg208#msg208)
http://pro-ldap.ru/forum/index.php?topic=293.0 (http://pro-ldap.ru/forum/index.php?topic=293.0)
Егор
-
Егор, благодарю за материал.
свою проблему я кажется решил следующим путем.
LAM блокирует аккаунт следующим образом...
пароль с базе хранится в следующем виде password -> ssha(MD5) -> base64
так вот lam добавляет "!" в начало ssha(md5) хеша
и если он после распаковки base64 не видит хеша, начинающегося с !, то считает что аккаунт активен.
свою проблему я решил таким путем что скрипт, через который пользователи меняют пароль, будет делать тоже самое, и если увидит !, то выдаст пользователю ошибку :)