Настройка двухфакторной аутентификации на Ubuntu22

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

Требования

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

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

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

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

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

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

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

auth      requisite   simple2fa_pam.so send <ключ ресурса>

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

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

Положение строки адаптера в PAM-стеке зависит от выбранного режима работы (send или skip) и конфигурации системы; руководствуйтесь примером из комплекта поставки.

Настройка локального входа

Локальный вход в Ubuntu настраивается через общий PAM-стек аутентификации. Добавьте строку PAM-адаптера Simple2FA в файл:

/etc/pam.d/common-auth

Стек common-auth подключается к большинству сервисов системы, поэтому изменения затронут и другие сценарии входа. Перед изменением сделайте резервную копию файла и держите открытой активную root-сессию до успешной проверки входа.

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

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

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

/etc/pam.d/sshd

Если строка адаптера уже добавлена в common-auth, повторно добавлять её в sshd не нужно — иначе второй фактор будет запрашиваться дважды.

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

В файле /etc/ssh/sshd_config должны быть включены поддержка PAM и интерактивная аутентификация:

UsePAM yes
KbdInteractiveAuthentication yes

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

sudo systemctl restart sshd

Аутентификация по SSH-ключам выполняется в обход PAM-стека: при входе по ключу второй фактор запрошен не будет. Учитывайте это при настройке политик доступа.

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

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

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

sudo apt -y install xrdp
sudo systemctl restart xrdp

2) Откройте порт RDP

sudo ufw allow 3389

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

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

/etc/pam.d/xrdp-sesman

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

sudo systemctl restart xrdp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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