Перейти к содержанию

Вход на Linux-станцию (RADIUS + МФА)

При входе на Linux-станцию (РЕД ОС, RHEL/CentOS) проверка пароля и второго фактора (МФА) делегируется в Допуск по протоколу RADIUS. Учетные записи пользователей станция получает из домена обычным способом, через SSSD.

Предварительные шаги

  • Пользователи домена доступны на станции: команда getent passwd <пользователь> возвращает строку (значит, настроен SSSD с id_provider = ldap/ad)
  • Порты 1812/udp и 1813/udp открыты от станции до сервера Допуск

Настройка в Системе

  1. В разделе Настройки включить признак RADIUS-сервер включен (порты 1812/1813 остаются по умолчанию)

  2. В разделе Сервисы создать сервис:

    • В поле Протокол - RADIUS
    • В поле IP/CIDR NAS - IP-адрес станции, подсеть CIDR или 0.0.0.0/0 для любого адреса
    • В поле Общий секрет - произвольная строка, которую затем указываем на станции
    • В поле Требовать Message-Authenticator - оставить включённым (защита от Blast-RADIUS, CVE-2024-3596)
    • В поле Требовать MFA - включить, если для этой станции нужен второй фактор
    • В поле Язык сообщений MFA (необязательно) - язык сообщения с запросом кода, по умолчанию - как на сервере
    • Включить признак Ограничение доступа по группам (необязательно) и в таблице Разрешенные группы указать группы, которым разрешен вход
  3. В разделе Настройки в поле Удалять домен из логина выбрать user@DOMAIN (или user@DOMAIN и DOMAIN\user), если пользователи входят FQ-именем вида user@red.ru. Без этого Допуск не найдёт пользователя по имени с @

  4. Включить МФА пользователям: в справочнике Пользователи заполнить поле Доступные способы МФА (например, Приложение аутентификации для TOTP), либо глобально - Принудительное включение МФА в разделе Настройки

Настройка на станции

Установить модуль pam_radius_auth:

sudo dnf install pam_radius_auth

Предупреждение

При включённом Требовать Message-Authenticator (по умолчанию) нужен модуль, отправляющий атрибут Message-Authenticator (pam_radius_auth >= 3.0.0). Пакет из дистрибутива (часто 2.0.0) не поддерживает этот атрибут и отклонит запрос — тогда либо собрать 3.0.0 из исходников, либо отключить опцию в сервисе (не рекомендуется).

Создать /etc/pam_radius_auth.conf (права 0600, владелец root):

pam_radius_auth.conf
# server[:port]   shared-secret   [timeout]
dopusk.example.com   <общий-секрет>   60

timeout=60 важен для МФА с доставкой кода (email/СМС). Для TOTP достаточно меньшего значения.

В /etc/pam.d/system-auth привести секцию auth к виду — RADIUS первым, pam_unix как запасной для root/локальных учетных записей:

system-auth
1
2
3
4
auth        required      pam_env.so
auth        sufficient    pam_radius_auth.so
auth        sufficient    pam_unix.so try_first_pass nullok
auth        required      pam_deny.so

Секции account и session (pam_sss) изменять не нужно — они отвечают за получение данных пользователя из домена.

Примечание

На РЕД ОС/RHEL файл system-auth управляется authselect — прямая правка сбрасывается командой authselect apply/select. Для постоянной конфигурации создайте custom-профиль:

authselect create-profile radius --base-on sssd
и внесите правку в system-auth профиля.

Для МФА включить в SSH keyboard-interactive (нужно для второго prompt):

sshd_config
1
2
3
UsePAM yes
KbdInteractiveAuthentication yes
PasswordAuthentication no
sudo systemctl restart sshd

Информация

Второй prompt (код) требует keyboard-interactive: надёжно работает по SSH. Прямой графический вход (GDM) также отображает prompt. Некоторые реализации удалённого стола (например, xrdp) второй prompt не показывают — для МФА используйте SSH.

Проверка

1
2
3
ssh <пользователь>@<станция>
# Password: <- пароль Допуск
# Enter the code... <- второй фактор: код из приложения (TOTP) или из email/СМС

В Журнале событий появятся события аутентификации с маркером «RADIUS аутентификация».