ldap принудить пользователя изменить пароль

Вопрос или проблема

Я использую CentOS-ds (на основе Redhat-DS и 389 directory servers).

У меня настроен LDAP, и он работает для аутентификации пользователей (и Sudo, это удобная функция!). Даже команда passwd работает отлично для изменения паролей, хранящихся в Ldap. Однако у меня есть одна маленькая проблема. Как я могу заставить все свои учетные записи пользователей создать новый пароль после входа на сервер? Обычный способ, которым я бы это сделал:

chage -d 0 username

кажется, не «ldap-ified». Как я могу заставить людей создать новые пароли при следующем (ssh) входе? Мне нужно создать учетные записи пользователей, и я действительно не хочу, чтобы люди сохраняли пароли, которые я установил для них..

*правка – Я настроил сервер LDAP так, чтобы он заставлял менять пароль, когда их пароль сбрасывается. Однако я не могу найти способ “сбросить” пароль правильным образом, чтобы вызвать это. (все, что я могу найти, это просто вход в качестве менеджера директории и изменение их пароля)
*правка2. Поскольку мы собираемся перенести много машин на LDAP, как только эта часть будет решена, я написал скрипт для выполнения от имени root для настройки аутентификации LDAP. Возможно, я что-то упустил? (удалил серверы и базовый DN.)

#!/bin/sh
#
authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=<server1>,<server2> --ldapbasedn="<basedn>" --update
echo 'sudoers:    files ldap' >> /etc/nsswitch.conf
echo 'base <basedn>
timelimit 120
bind_policy soft
bind_timelimit 120
idle_timelimit 3600
uri ldap://<server1>/  
uri ldap://<server2>/
ssl no
tls_cacertdir /etc/openldap/cacerts 
pam_password md5
sudoers_base    ou=SUDOers,<basedn>
' > /etc/ldap.conf

Я нашел решение:
В записи LDAP пользователей установите ShadowLastChange = 0. Это заставит пользователя сбросить свой LDAP-пароль, если также определен shadowMax (для вызова истечения пароля).

Тем не менее, есть также другая ошибка, вам затем необходимо изменить разрешения (ACL) на сервере LDAP (у меня было значение по умолчанию «Разрешить модификацию собственной записи» на OU=People), чтобы также разрешить им изменять целевой shadowLastChange.

В противном случае они не смогут изменить значение, и оно останется равным нулю, заставляя их каждый раз восстанавливать свой пароль при входе.

@Brian изменение shadowlastchange=0 на самом деле плохая идея. Большинство клиентов LDAP не предназначены для изменения значения shadowlastchange. Поэтому вы попадете в бесконечный цикл изменения пароля каждый раз, когда выполните вход.

некоторые клиенты ldap

nss-pam-ldapd –
Эта функция недавно была добавлена в проект nss-pam-ldapd
Лог:
попытка обновить атрибут shadowLastChange пользователя при изменении пароля (
обновление пытается выполнить только, если атрибут изначально присутствует)
http://lists.arthurdejong.org/nss-pam-ldapd-commits/2010/msg00302.html

sssd –
Все еще RFE
https://bugzilla.redhat.com/show_bug.cgi?id=739312

samba-ldap-tools – отклонено

Попробуйте атрибут политики паролей pwdMustChange (в дополнение к атрибуту состояния pwdReset).

Когда оба установлены на TRUE, политика паролей требует, чтобы данный пользователь изменил пароли до успешной аутентификации.
Пользователь должен изменить свой пароль, даже если используются отключенные пароли, определенные пользователем.
Атрибуты по умолчанию не установлены.

Ссылка:-http://www.centos.org/docs/5/html/CDS/ag/8.0/User_Account_Management-Managing_the_Password_Policy.html

Ответ или решение

Для того чтобы принудить пользователей в системе LDAP (в вашем случае – на CentOS-ds) сменить пароль при следующем входе в систему, необходимо внести изменения в атрибуты LDAP, а также убедиться, что у вас правильные настройки политик паролей.

Принудительная смена пароля:

  1. Атрибуты LDAP:

    • Убедитесь, что в LDAP-записи пользователя выставлены атрибуты pwdMustChange и pwdReset. Эти атрибуты отвечают за необходимость смены пароля и могут быть установлены в TRUE. Например:

      pwdMustChange: TRUE
      pwdReset: TRUE

    Эти атрибуты заставят пользователя сменить пароль сразу по первому входу в систему.

  2. Установка ShadowLastChange:

    • Вместо того, чтобы устанавливать ShadowLastChange=0, что может привести к бесконечному циклу смены пароля, лучше использовать заданные атрибуты. Однако, если ShadowLastChange всё же нужно установить на 0 для пользователей, следует понимать, что это может вызвать проблемы с некоторыми LDAP-клиентами, которые ожидают обновления этого атрибута.
  3. Управление правами доступа:

    • Убедитесь в том, что у пользователей есть права на изменение их записей LDAP, включая атрибут shadowLastChange. Это может быть сделано путём редактирования ACL (Access Control List):

      Access to attrs=shadowLastChange
      by self write
      by * read
  4. Проверка настроек PAM:

    • Проверьте настройки PAM (Pluggable Authentication Modules) вашего сервера, чтобы убедиться, что они корректно сконфигурированы для работы с LDAP и позволяют требовать смену пароля. Например, это можно сделать в конфигурационном файле /etc/pam.d/common-password или аналогичном файле в зависимости от вашей конфигурации.

Шаги по проверке:

  1. Создание тестового пользователя:

    • Для проверки настройки вы можете создать временного пользователя в системе LDAP и убедиться, что установленные атрибуты работают, как задумано. Это позволит вам оценить как система реагирует на попытки входа с установленными атрибутами.
  2. Мониторинг и логирование:

    • Включите логирование на сервере, чтобы отслеживать действия пользователей и возможные ошибки, с которыми они могут столкнуться во время смены пароля. Это поможет вам понять, правильно ли работают настройки.
  3. Документация:

    • Ознакомьтесь с документацией для CentOS-ds и 389 Directory Server. Там вы найдете более детальные пояснения по настройке и возможностям управления пользователями и их паролями, что также поможет в устранении возможных проблем.

Заключение:

Следуя этим шагам и рекомендациям, вы можете эффективно настроить политики паролей для пользователей LDAP в CentOS-ds, гарантируя, что они будут вынуждены устанавливать новый пароль при следующем входе в систему. Настройка pwdMustChange и корректное управление правами доступа сыграют ключевую роль в этом процессе.

Оцените материал
Добавить комментарий

Капча загружается...