Вопрос или проблема
Я пытаюсь выяснить, как изменить некоторые настройки политики паролей в OpenLDAP (на уровне системы, а не для каждого пользователя), чтобы все пользователи LDAP-аккаунтов (то есть как существующие, так и новые пользователи) имели свои пароли, истекающие через 90 дней.
Я знаю, что основной параметр, который это контролирует, – это параметр maxPasswdAge
, но не уверен, как его установить. Я пробовал разные параметры ldapmodify
, но это не сработало:
ldapmodify -W -x -D "cn=Manager,dc=mydomain,dc=local" -f test.ldif
dn: cn=pwdpolicyentry,cn=common,cn=products,cn=OracleContext,o=my_company,dc=com
changetype: modify
replace: pwdMaxAge
pwdMaxAge: 7776000
Сообщение об ошибке было ..
modifying entry "cn=pwdpoilicyentry,cn=common,cn=products,cn=Oraclecontext,dc=mydomain,dc=com"
ldapmodify :no such object(32)
matched DN: dc=mydomain,dc=com
Мои вопросы следующие:
Существуют ли альтернативные способы сделать это, например: просто изменить параметр вручную где-то в каком-то конфигурационном файле и перезапустить сервер LDAP.
Существуют ли какие-то службы, которые нужно перезапустить после внесения изменений?
Похоже, что в вашем дереве отсутствуют записи для политической записи.
Вам нужно загрузить наложение slapo-ppolicy
. Страница руководства для модуля указывает, что вам нужно настроить. Я также нахожу документацию Ztrax полезной.
Инструмент, который вам нужен, это ppolicy
.
Это многоступенчатая задача, включающая:
- добавление модуля;
- добавление схемы;
- добавление наложения к данной базе данных (оно также определяет, какая политическая запись является политикой по умолчанию);
- одно или несколько добавлений записей, которые определяют политики паролей (одна из них может быть политикой по умолчанию).
В записи, определенной на шаге 4, вы можете изменить атрибут pwdMaxAge
.
Ваша запись “пользователя” в каталоге LDAP должна иметь 2 атрибута:
passwordExp: on
passwordMaxAge: 8640000
8640000 = 100 дней.
Ответ или решение
Для настройки срока действия паролей в OpenLDAP так, чтобы у всех пользователей (как существующих, так и новых) пароли истекали через 90 дней, вам необходимо выполнить несколько шагов, включая установку соответствующих модулей, добавление схемы и определение политики паролей. Ниже представлена полная инструкция по настройке:
Шаг 1: Установка модуля ppolicy
Убедитесь, что у вас установлен и активирован модуль управления политиками паролей (ppolicy
). Для этого выполните следующие команды в терминале:
# Убедитесь, что пакет openldap-server установлен
sudo yum install openldap-servers
# или для Ubuntu
sudo apt-get install slapd ldap-utils
Шаг 2: Добавление схемы
Вам необходимо добавить схему для политики паролей. Это можно сделать, добавив файл схемы в OpenLDAP. Обычно схема ppolicy
располагается в /etc/ldap/schema/ppolicy.schema
. Если у вас её нет, вы можете скачать её или создать вручную.
Теперь вы можете добавить эту схему в вашу базу данных. Для этого выполните команду:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.schema
Шаг 3: Добавление наложений (overlay)
Теперь вам нужно добавить наложение ppolicy
к вашей базе данных. Откройте конфигурационный файл OpenLDAP (обычно располагается в /etc/ldap/slapd.d/
или /etc/openldap/slapd.conf
в зависимости от вашего дистрибутива) и добавьте следующую секцию:
dn: cn=module{0},cn=module,cn=config
changetype: modify
replace: olcModuleLoad
olcModuleLoad: ppolicy.la
Шаг 4: Определение политики паролей
Теперь создайте LDAP-объект, который будет представлять вашу политику паролей. Создайте файл с именем pwdpolicy.ldif
со следующим содержимым:
dn: cn=pwdpolicy,dc=mycompany,dc=com
objectClass: ppolicy
cn: pwdpolicy
pwdAttribute: userPassword
pwdMaxAge: 7776000
pwdExpireWarning: 604800
Затем выполните команду для добавления этой политики:
ldapadd -x -D "cn=Manager,dc=mycompany,dc=com" -W -f pwdpolicy.ldif
Шаг 5: Применение политики ко всем пользователям
Для того чтобы применить политику ко всем пользователям, вам необходимо настроить базу данных LDAP чтобы использовать эту политику по умолчанию. В конфигурационном файле вашей базы данных добавьте или измените следующее:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcPPolicyDN
olcPPolicyDN: cn=pwdpolicy,dc=mycompany,dc=com
Шаг 6: Перезапуск сервиса
После внесения всех изменений необходимо перезапустить сервис OpenLDAP:
sudo systemctl restart slapd
Службы, которые нужно перезапустить
После выполнения всех вышеперечисленных шагов убедитесь, что вы перезапустили LDAP-сервер, чтобы изменения вступили в силу.
Дополнительные советы
-
Убедитесь, что у всех пользователей в базе данных есть необходимые атрибуты:
passwordExp: on passwordMaxAge: 7776000
-
Проверяйте логи OpenLDAP для выявления ошибок, если что-то пойдет не так.
Теперь ваши пользователи будут получать уведомление о необходимости изменить пароли, если они не поменяют их в течение 90 дней.