Сброс паролей пользователей LDAP при первом входе

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

У меня установлена служба LDAP на системе Centos7.

Я хочу создать большое количество пользователей. Эти пользователи получат пароль по умолчанию, поэтому я хочу, чтобы они изменили пароль при (единственном) первом входе.

Существует ли опция, которую я мог бы установить в ldif-файле, чтобы включить эту функциональность? (Только при первом входе, а не каждый раз, когда они заходят)

Заранее спасибо

Редактирование:
Извините, если я так открыто спрашиваю, но что такое вставка оверлея в данном случае и для чего она нужна? Я вставил схему ppolicy через sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
И создал passwordpolicy.ldif.

Редактирование2:

Я попробовал решение, упомянутое здесь, но, похоже, что-то пошло не так, команда просто игнорируется. Я добавил схему ppolicy.

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

После этого я активировал модуль, добавив следующий Ldif

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: ppolicy.la

Затем я создал оверлей, как описано в некоторых руководствах:

database: bdb
suffix: "dc=example,dc=com"

overlay: ppolicy
ppolicy_default: "cn=default,ou=policies,dc=example,dc=com"

После этого я добавил актуальную политику :

# Создает OU Политики (Организационная Единица)
dn: ou=Policies,dc=example,dc=com
objectClass: organizationalUnit
ou: Policies
# Создает объект Политики в OU Политики (Организационная Единица)
dn: cn=default,ou=Policies,dc=example,dc=com
objectClass: top
objectClass: device
objectClass: pwdPolicy
cn: default
pwdAttribute: 2.5.4.35
pwdMaxAge: 3888000
pwdExpireWarning: 604800
pwdInHistory: 3
pwdCheckQuality: 1
pwdMinLength: 8
pwdMaxFailure: 5
pwdLockout: TRUE
pwdLockoutDuration: 300
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE
#pwdSafeModify: FALSE

Затем я попытался добавить пользователя со следующими атрибутами (user.ldif):

dn: uid=pwresettest,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: pwresettest
sn: andsoon
userPassword: passwort
loginShell: /bin/bash
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/pwresettest
pwdReset: TRUE

Но когда я вхожу с этим пользователем, нет запроса на сброс пароля.

Я что-то сделал не так?

Заранее спасибо за ваши ответы.

С наилучшими пожеланиями

Twinhand

Я предполагаю, что ваш сервер — это OpenLDAP.

Если вы развернете ppolicy, вы получите возможность заставить изменить пароль при первом входе, используя комбинацию pwdMustChange в файле политики и pwdReset в записи.

Преимуществом является то, что вы собираетесь развернуть что-то, что вам потребуется в будущем: срок действия пароля, принудительная проверка пароля и так далее.

Недостатком является то, что настройка ppolicy требует: вставку схемы, вставку оверлея и настройку политики (специальная запись для хранения ваших конфигураций).

Другой проблемой является то, что, хотя ppolicy является общим решением, так как оно размещено в самой директории, вы можете столкнуться с проблемами при взаимодействии с клиентскими инструментами.

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

Чтобы сбросить пароли пользователей LDAP при первом входе и убедиться, что все элементы настроены корректно, необходимо выполнить несколько шагов в OpenLDAP. Ниже приведены детальные инструкции и рекомендации:

Шаг 1: Установка и активация схемы PPolicy

Поскольку у вас уже есть установленный OpenLDAP и вы добавили схему ppolicy, убедитесь, что вы правильно загрузили модуль:

  1. Убедитесь, что возможно загрузить модуль ppolicy:

    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
  2. Проверьте, что модуль активирован:

    Создайте файл с содержимым, включающим в себя следующее, где database соответствует вашей базе данных:

    dn: cn=module,cn=config
    objectClass: olcModuleList
    cn: module
    olcModulePath: /usr/lib64/openldap
    olcModuleLoad: ppolicy.la

    Добавьте через команду:

    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f <имя_вашего_файла.ldif>

Шаг 2: Создание политики паролей

Создайте политику, которая будет использоваться для управления паролями пользователей. Это может выглядеть следующим образом:

dn: ou=Policies,dc=example,dc=com
objectClass: organizationalUnit
ou: Policies

dn: cn=default,ou=Policies,dc=example,dc=com
objectClass: top
objectClass: device
objectClass: pwdPolicy
cn: default
pwdAttribute: 2.5.4.35
pwdMaxAge: 3888000
pwdExpireWarning: 604800
pwdInHistory: 3
pwdCheckQuality: 1
pwdMinLength: 8
pwdMaxFailure: 5
pwdLockout: TRUE
pwdLockoutDuration: 300
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE

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

Шаг 3: Настройка оверлея ppolicy

Добавьте оверлей для вашей базы данных, используя следующий код:

dn: your-database-dn
objectClass: olcDatabaseConfig
olcDatabase: bdb
olcSuffix: "dc=example,dc=com"

olcOverlay: ppolicy
ppolicy_default: "cn=default,ou=Policies,dc=example,dc=com"

Шаг 4: Создание учетной записи пользователя

При создании учетной записи пользователя добавьте атрибут pwdReset: TRUE для того, чтобы инициировать необходимость смены пароля:

dn: uid=pwresettest,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: pwresettest
sn: andsoon
userPassword: passwort
loginShell: /bin/bash
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/pwresettest
pwdReset: TRUE

Шаг 5: Протестируйте вход

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

Устранение неполадок

Если после всех настроек по-прежнему не работает смена пароля:

  • Проверьте логирование LDAP для поиска ошибок.
  • Убедитесь, что клиентский инструмент, который вы используете для аутентификации, поддерживает политику PPolicy.
  • Убедитесь, что все DN, которые вы используете, соответствуют действительным DN в вашем LDAP.

Заключение

Настройка политики паролей в OpenLDAP через PPolicy — это шаг, который не только позволяет управлять соблюдением безопасности паролей, но и дает возможность гибко управлять пользователями. Применение pwdMustChange и pwdReset является стандартной практикой для обеспечения безопасности при первичном входе пользователя.

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

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