Настройка двухфакторной аутентификации для ALT Linux

Описание

При входе в ALT Linux пользователи проходят двухэтапную аутентификацию: вводят логин и пароль (первый фактор) и подтверждают вход с помощью второго фактора (Push-уведомление, TOTP или Telegram-бот).

Для интеграции используется PAM-адаптер Simple2FA, который устанавливается на сервер или рабочую станцию с ALT Linux и взаимодействует с локальным модулем Simple2FA.

Инструкция охватывает следующие сценарии:

  • подключение по SSH с паролем;
  • подключение по SSH с ключом и вторым фактором;
  • подключение по RDP (xRDP).

Схема работы:

  1. Пользователь входит в систему и вводит логин и пароль.
  2. PAM-адаптер Simple2FA передаёт учётные данные в локальный модуль Simple2FA.
  3. Локальный модуль проверяет первый фактор по каталогу пользователей организации (LDAP/AD или Keycloak).
  4. При успешной проверке первого фактора локальный модуль инициирует проверку второго фактора через облако Simple2FA.
  5. Пользователь подтверждает вход через Push, TOTP или Telegram-бот.
  6. После успешной проверки второго фактора сессия предоставляется пользователю.

Для проверки используется логин пользователя ОС. Пользователь с таким логином должен существовать в каталоге организации и в Simple2FA.

Если пароли пользователей локальные (в ALT Linux они хранятся средствами pam_tcb в каталоге /etc/tcb/), используйте режим адаптера skip: пароль проверяется штатными средствами ОС, а Simple2FA выполняет только проверку второго фактора.

Подготовка в Simple2FA

Войдите в административную панель локального модуля Simple2FA. Перейдите в раздел «Настройка ресурсов» и создайте новый ресурс:

  • Название: ALT Linux (или любое удобное).
  • Протокол: HTTP.
  • Проверять первый фактор: включить (при использовании режима адаптера send) или отключить (при использовании режима skip).
  • Поставщики учетных записей: для режима send выберите один или несколько каталогов, в которых будет выполняться проверка первого фактора пользователей.
  • Использовать кеширование сессий: включить, если необходимо, чтобы у пользователя после успешного входа не запрашивался второй фактор в течение указанного времени.
  • Длительность кеша: рекомендуемое значение — 60 минут.

После сохранения ресурса скопируйте его ключ (API key ресурса) — он передаётся PAM-адаптеру в качестве параметра.

В глобальных настройках убедитесь, что:

  • указан корректный API key для связи локального модуля с облаком.

Требования

  • ОС: ALT Linux.
  • Наличие PAM в системе.
  • Для сценария SSH — OpenSSH-сервер с поддержкой PAM.
  • Для сценария RDP — установленный xRDP.
  • Сетевой доступ с машины к локальному модулю Simple2FA.
  • Корректное системное время (NTP) на машине и локальном модуле.
  • Права root для установки PAM-адаптера и изменения PAM-конфигурации.

Без доступа к локальному модулю двухфакторная аутентификация работать не будет.

Установка PAM-адаптера

Скопируйте модуль simple2fa_pam.so из комплекта поставки в системный каталог модулей PAM вашей системы (например, /lib64/security/ или /lib/security/ — уточните каталог, используемый в вашей версии ОС).

Адаптер настраивается аргументами в строке PAM-конфигурации:

  • send / skip — отправлять пароль в Simple2FA или нет (обязательный). В режиме send первый фактор проверяется Simple2FA по каталогу организации; в режиме skip пароль проверяется штатными средствами ОС, а Simple2FA выполняет только проверку второго фактора.
  • apiKey — ключ ресурса, созданного в панели Simple2FA (обязательный).

Пример строки подключения адаптера:

auth      required   simple2fa_pam.so skip <ключ ресурса>

Адрес локального модуля Simple2FA и другие параметры подключения задаются в соответствии с документацией к комплекту поставки адаптера.

Ключ ресурса хранится в файлах PAM-конфигурации в открытом виде — ограничьте доступ к этим файлам и не публикуйте их содержимое.

Исключение группы администраторов из 2FA

Если для отдельной группы (например, localadmins) второй фактор запрашивать не нужно, добавьте перед строкой адаптера стандартный модуль pam_succeed_if:

auth    [success=1 default=ignore]  pam_succeed_if.so user ingroup localadmins
auth    required                    simple2fa_pam.so skip <ключ ресурса>

Для пользователей группы localadmins строка адаптера будет пропущена, для остальных — выполнена. Этот приём применим во всех сценариях ниже.

Оставляйте в группе исключений минимум учётных записей: каждая из них — это вход без второго фактора.

Настройка входа по SSH

1) Добавьте PAM-адаптер в конфигурацию SSH

Добавьте строку PAM-адаптера Simple2FA в файл после штатной проверки пароля (substack system-auth):

/etc/pam.d/sshd

Пример структуры файла:

#%PAM-1.0
auth      substack   system-auth
auth      required   simple2fa_pam.so skip <ключ ресурса>
account   substack   system-auth
password  substack   system-auth
session   substack   system-auth

2) Проверьте настройки OpenSSH

В ALT Linux конфигурация OpenSSH расположена в каталоге /etc/openssh/. В файле /etc/openssh/sshd_config должны быть включены поддержка PAM и интерактивная аутентификация:

UsePAM yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes

3) Перезапустите SSH

sudo systemctl restart sshd

SSH-ключ + второй фактор

По умолчанию аутентификация по SSH-ключу выполняется в обход PAM-стека, и второй фактор не запрашивается. Чтобы требовать и ключ, и подтверждение второго фактора, укажите в /etc/openssh/sshd_config цепочку методов:

UsePAM yes
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication yes

# Администраторы — только по ключу, без 2FA
Match group localadmins
    AuthenticationMethods publickey

# Все остальные — ключ + второй фактор
Match all
    AuthenticationMethods publickey,keyboard-interactive

Порядок блоков Match важен: сначала глобальные настройки, затем Match group localadmins, и в самом конце Match all.

В этом режиме пользователь сначала проходит проверку по ключу, затем PAM-стек с адаптером Simple2FA запрашивает второй фактор. Поскольку пароль при входе по ключу не вводится, используйте для этого сценария режим адаптера skip.

После изменения перезапустите SSH:

sudo systemctl restart sshd

Настройка входа по RDP (xRDP)

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

1) Установите и запустите xRDP

sudo apt-get install xrdp
sudo systemctl enable --now xrdp

2) Настройте сеанс рабочего стола

В конце файла /etc/xrdp/startwm.sh добавьте строку запуска нужного окружения (например, startxfce4 для XFCE) и перезапустите xRDP:

sudo systemctl restart xrdp

3) Добавьте PAM-адаптер в конфигурацию xRDP

Добавьте строку PAM-адаптера Simple2FA в файл после штатной проверки пароля:

/etc/pam.d/xrdp-sesman

4) Добавьте пользователей в группу tsusers

xRDP в ALT Linux разрешает подключение только членам группы tsusers:

sudo usermod -aG tsusers <имя пользователя>

5) Перезапустите xRDP

sudo systemctl restart xrdp

Проверка работы

  • Выполните вход в систему (по SSH или по RDP),
  • Введите логин и пароль пользователя (или пройдите проверку по SSH-ключу),
  • Дождитесь запроса второго фактора,
  • Подтвердите вход через Push, TOTP или Telegram-бот (для RDP рекомендуется Push),
  • После успешной проверки сессия будет предоставлена.

Если что-то не работает

Последовательно проверьте, что:

  • пользователь с таким логином существует в каталоге организации и в Simple2FA и настроил второй фактор,
  • с машины открыт сетевой доступ к локальному модулю Simple2FA,
  • в строке PAM указан корректный ключ ресурса,
  • пользователь не входит в группу исключений (если она настроена),
  • для RDP-подключения пользователь состоит в группе tsusers,
  • системное время на машине и локальном модуле синхронизировано,
  • в веб-консоли Simple2FA в разделе «Попытки авторизации» отображаются попытки входа и их результат.

Смотрите также:

Связаться с нами

Укажите свои контактные данные, и мы свяжемся с вами в ближайшее время, чтобы ответить на все ваши вопросы.

Телефон: +7 (495) 120-01-18

Отдел продаж: sales@simple2fa.ru

Поддержка: support@simple2fa.ru

Заполняя форму, вы соглашаетесь на обработку персональных данных.

Телефон: +7 (495) 150-80-59

Отдел продаж: sales@simple2fa.ru

Поддержка: support@simple2fa.ru