Когда пользователей в нашей 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 включится и выполнит задание по расписанию.
