Когда пользователей в нашей FreeIPA “перевалило” за 50 человек возникла необходимость сделать оповещения о своевременной смене пароля. Благо есть встроенный дополнительный модуль, который позволяет это сделать. Имя этого модуля IPA-ENP, который “под капотом” представляет собой набор python скриптов.
Главный сервер FreeIPA у нас крутится в докер-компоузе. Заходим на сервер-клиента по ssh, который будет работать 24/7 и рассылать уведомления.
Шаг 1. Установка дополнительного модуля и настройка
Получаем билет авторизации kerberos:
|
|
Устанавливаем дополнительный пакет:
|
|
Редактируем файл конфигурации, добавляя свои значения:
|
|
|
|
Сохраняем и закрываем.
Шаг 2. Проверка конфигурации
Узнать срок действия пароля пользователя:
|
|
Установить срок истечения пароля:
|
|
Где дата_истечения_срока_действия_пароля — строка вида: 20240910170748Z. Где, 2024 год 09 месяц 10 число 17 часы 07 минуты 48 секунды
Для проверки можем сменить пароль пользователю:
|
|
Получается мы попадаем под условие, что до истечения пароля пользователя остаётся 1 день и ему нужно отправить сообщение. Для теста я создал в FreeIPA пользователя с именем user, и сменил ему срок истечения пароля командами выше.
Тестируем нашу конфигурацию без отправки сообщения.
|
|
Получаем вывод:
|
|
Шаг 3. Настройка текста сообщения
Далее настраиваем шаблон сообщения в файле, который будет приходить пользователю.
|
|
В моём случае я удалил все строки и добавил:
Добрый день, {fullname}!
Просим Вас сменить пароль от учетной записи {uid}, который действует до {expiration}. Во избежании блокировок измените пароль от FreeIPA заранее.
- Мы можем использовать переменные, для шаблона сообщения:
|
|
Сохраняем, закрываем.
Шаг 4. Отправляем сообщение
Тестируем отправку сообщения администратору, которого мы указали в конфиге smtp_admin = admin@mail.local. Пользователям это сообщение не дойдёт, так как мы указали параметр -–mail-test.
|
|
Отправляем сообщения пользователям:
|
|
Смотрим на шаблон и вид сообщения. Если все устраивает, то запускаем встроенный таймер, который будет автоматически делать запрос во FreeIPA и отправлять уведомления. По умолчанию он запускается каждую ночь в 01:00 часов.
|
|
Если время нужно изменить время отправки, допустим в 08:00, то отредактируем параметр сервиса:
|
|
|
|
Сохраняем, выходим.
Проверяем сервис:
|
|
Настройка завершена. Даже если север в дальнейшем перезапуститься наша служба timer включится и выполнит задание по расписанию.