Настройка 2FA для Ubuntu
Автор Denis Shelamov, Last modified by Denis Shelamov на 30 января 2024 10:48 AM

Установка модуля PAM Radius в Ubuntu 22.04 LTS

Содержание:

  1. Предварительные требования
  2. Установка и настройка модуля PAM
  3. Включение PAM в SSH
    1. Настройка 2FA в SSH
    2. Настройка 1FA в SSH
  4. Включение 2FA для локального входа в Ubuntu
  5. Включение 2FA (PUSH) для RDP подключения
  6. Устранение проблем и проверка работы

Предварительные требования:

1. Ubuntu 22.04 в домене Active Directory.

2. Выданные на доменного пользователя (администратора) права входа под root и доступ по SSH. Обученные аутентификаторы (OTP/PUSH) в uc/mc под данным пользователем.

3. Настроенные компоненты Indeed: Indeed AM Server и NPS Radius Extension.

4. Для использования аутентификации с помощью PUSH, требуется предварительно настроенный Indeed Key сервер.

5. Выполнена установка и настройка роли Служба политики сети и доступа (Network Policy and Access Services (NPS)), возможна установка роли на сервере Indeed AM.

6. Создана сетевая политика, политика запросов на подключение, определен метод аутентификации по-умолчанию.

7. Задан IP-адрес клиента, либо указана подсеть (например ip/24) для диапазона клиентов Radius (Linux ПК) со стороны NPS Radius Server:

8. На сервере NPS, включена политика: Indeed ID > Radius > SoftwareTOTP > Challenge-Response: Сообщение пользователю "OTP "

Обновляем все компоненты на Ubuntu:
apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y

Версия релиза:
lsb_release -a

No LSB modules are available.
Distributor ID:   Ubuntu
Description:       Ubuntu 22.04.3 LTS
Release:              22.04
Codename:        jammy

Установка и настройка модуля PAM:

sudo apt install libpam-radius-auth

Настройте подключение к Radius серверу.
Откройте и отредактируйте файл, где задается подключение к Radius серверу
sudo  nano /etc/pam_radius_auth.conf

Прописываем IP-адрес Radius-сервера, общий секрет и таймаут, обязательно удалив или закомментировав лишние строки, оставив целевой сервер:

10.10.10.12 secret 60

 
Включение PAM в SSH

Делаем резервную копию файла sshd_config:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Откройте для редактирования файл с настройками SSH:
sudo nano /etc/ssh/sshd_config

В файле включите следующие настройки:
KbdInteractiveAuthentication yes  
(ChallengeResponseAuthentication yes – для версии Ubuntu 20.04)
AuthenticationMethods keyboard-interactive
UsePAM yes

Настройка 2FA в SSH:

Делаем резервную копию файла /etc/pam.d/sshd
sudo cp /etc/pam.d/sshd /etc/pam.d/sshd.backup

Редактируем файл:
sudo nano /etc/pam.d/sshd

Комментируем:
#@include common-auth

Добавляем:
# 2FA OTP/PUSH Auth Settings
auth    required    pam_radius_auth.so

В результате получаем:


Перезапускаем службу ssh и проверяем статус:
sudo systemctl restart ssh
sudo systemctl status ssh

Подключаемся под доменными пользователями по ssh:

ssh admin-indeed@indeed.local@10.10.10.28
1. Вводим доменный пароль.
2. В приложение Indeed Key придет PUSH уведомление, после подтверждения успешно отрывается сессия.

Подключаемся под доменным пользователем по ssh:
ssh user6@indeed.local@10.10.10.28
Вводим доменный пароль.
Необходимо ввести OTP-код из приложения Indeed Key.



Настройка 1FA в SSH:

Редактируем файл:
sudo nano /etc/pam.d/sshd

Комментируем:
#@include common-auth

Добавляем (применяем) параметр skip_passwd для пропуска ввода пароля:
# 1FA OTP/PUSH Auth Settings
auth    required    pam_radius_auth.so  skip_passwd

В результате получаем:

Перезапустите службу ssh.
sudo systemctl restart ssh
sudo systemctl status ssh

Для включения 1FA аутентификации, со стороны NPS:
В политике запросов на подключение > Параметры > Проверка подлинности
Включить опцию: Принимать пользователей без проверки учетных данных

Подключаемся под доменным пользователем по ssh:

ssh admin-indeed@indeed.local@10.10.10.28
Доменный пароль вводить не требуется.
В приложение Indeed Key придет PUSH уведомление.

Подключаемся под доменным пользователем по ssh:
ssh user6@indeed.local@10.10.10.28
Доменный пароль вводить не требуется.
Необходимо ввести OTP-код из приложения Indeed Key.