↓ Перейти к основному содержимому
  1. Posts/
  2. Authentik/

Настройка email-уведомлений в Authentik

··708 слов·4 минут· loading · loading · ·
Stilicho2011
Автор
Stilicho2011
Пишу о homelab, self-hosting, автоматизации и open-source решениях
Оглавление
Authentik - This article is part of a series.
Part : This Article
Tip

Если вам понравилась эта статья, вы можете стать спонсором на Boosty.

Предполагаю, что Authentik у вас уже установлен и настроен (см. статьи про общий обзор и первоначальную настройку). В этой статье я расскажу о настройке почтовых уведомлений в Authentik. Они позволяют получать уведомления о важных событиях в системе - таких как вход пользователей, выход из системы и ошибки аутентификации. Это полезно для мониторинга безопасности и своевременного реагирования на подозрительную активность.

Настройка SMTP
#

Tip

Для данной настройки, а также для корректной работы Authentik в целом, необходимо предварительно настроить параметры почтового сервера в файле переменных окружения .env.

Блок в .env выглядит так (значения подставьте от своего почтового провайдера):

AUTHENTIK_EMAIL__HOST=smtp.example.com
AUTHENTIK_EMAIL__PORT=587
AUTHENTIK_EMAIL__USERNAME=authentik@stilicho.ru
AUTHENTIK_EMAIL__PASSWORD=<пароль_почтового_ящика>
# STARTTLS, обычно порт 587
AUTHENTIK_EMAIL__USE_TLS=true
# SSL (implicit TLS), обычно порт 465
AUTHENTIK_EMAIL__USE_SSL=false
AUTHENTIK_EMAIL__TIMEOUT=10
AUTHENTIK_EMAIL__FROM=authentik@stilicho.ru

После изменения .env контейнеры нужно пересоздать: docker compose up -d.

Проверить корректность настройки SMTP можно следующей командой:

docker exec authentik_worker ak test_email ваша_почта@домен.com

Контейнер authentik_worker должен быть запущен, а переменные AUTHENTIK_EMAIL__* - корректно заданы. Если вы не задавали контейнерам свои имена через container_name, то же самое делается через имя сервиса: docker compose exec worker ak test_email ваша_почта@домен.com.

Типичные ошибки, из-за которых тестовое письмо не уходит:

  • Одновременно включены USE_TLS и USE_SSL. Включать нужно что-то одно: USE_TLS=true для STARTTLS (обычно порт 587) или USE_SSL=true для SSL (обычно порт 465).
  • Пароль в кавычках. Кавычки в .env станут частью пароля, и авторизация не пройдет.
  • В именах переменных одно подчеркивание вместо двух. Правильно AUTHENTIK_EMAIL__HOST, с двойным подчеркиванием после EMAIL.
  • Хостинг блокирует исходящие SMTP-порты. У многих VPS-провайдеров порты 25/465/587 закрыты по умолчанию - тогда письмо не уйдет при любых настройках, и нужен либо запрос в поддержку, либо SMTP-релей на другом порту.
  • Адрес в AUTHENTIK_EMAIL__FROM не совпадает с ящиком, под которым идет авторизация. Многие почтовые сервисы такие письма отклоняют.

Настройка уведомлений о событиях
#

Note

Настройки приложения, описанные в этой статье, актуальны на дату написания статьи.

Авторизуемся в Authentik под учетной записью администратора и переходим в раздел:

Events → Notification Rules

Список Notification Rules в Authentik

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

Нажимаем Create. В появившемся окне задаем название правила, которое имеет для вас смысл. В моем случае это правило для мониторинга входов в Authentik.

В разделе Groups указываем, пользователям какой группы будут приходить уведомления. В моем случае это authentik Admins.

В разделе Transport выбираем механизм доставки уведомлений. В данном случае используется почтовый сервис - стандартный default-email-transport, который отправляет письма через глобальные настройки SMTP из .env. Рядом с ним есть default-local-transport - он показывает уведомления прямо в интерфейсе Authentik; выбрать можно оба сразу.

Обратите внимание: без получателя уведомление просто не создается. Правило будет исправно срабатывать, но писем вы не дождетесь, если не выбрана группа в Groups (или не включена опция Send notification to event user, которая отправляет уведомление самому пользователю, с которым связано событие).

В разделе Severity выбираем уровень важности события. Я использую значение Alert, после чего нажимаем Create.

Окно создания Notification Rule - имя, группа, transport, severity

Переходим в только что созданное правило и нажимаем Create and Bind Policy.

Пустой список политик, привязанных к правилу - кнопка Create and Bind Policy

В появившемся окне выбираем Event Matcher Policy.

Выбор типа политики - Event Matcher Policy

Задаем название политики (например, login). В разделе Action выбираем событие, для которого будет срабатывать уведомление. В моем случае это Login.

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

Настройка Event Matcher Policy - имя login и Action Login

В следующем окне задаем порядок обработки политики. Я начинаю со значения 10 и нажимаю Finish.

Создание привязки политики - Order 10, Enabled, Finish

Для контроля основных действий пользователей (или потенциальных злоумышленников) я создаю еще две аналогичные политики. Отличие заключается только в типе события:

  • Logout
  • Login Failed
Event Matcher Policy для события Logout
Event Matcher Policy для события Login Failed

В результате список привязанных политик выглядит примерно следующим образом:

Итоговый список привязанных политик - login, logout, login-failure

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

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

Уведомления только сообщают о неудачных входах, но не мешают им. Чтобы Authentik еще и сам реагировал на подбор пароля - показывал CAPTCHA или вовсе закрывал вход, - посмотрите статьи про Reputation Policy и Cloudflare Turnstile.

Authentik - This article is part of a series.
Part : This Article

Related

Authentik - настройка Reputation Policy

··776 слов·4 минут· loading · loading
Пошаговая настройка Reputation Policy в Authentik для ограничения доступа по репутации IP-адреса и имени пользователя, с разбором типовых сценариев защиты.

Cloudflare Turnstile в Authentik - настройка защиты формы входа

··862 слов·5 минут· loading · loading
Подробное руководство по настройке Cloudflare Turnstile - современной альтернативы CAPTCHA для защиты форм входа, регистрации и восстановления пароля без ухудшения пользовательского опыта.