Установка модуля PAM Radius в Ubuntu 22.04 LTS
Содержание:
- Предварительные требования
- Установка и настройка модуля PAM
- Включение PAM в SSH
- Настройка 2FA в SSH
- Настройка 1FA в SSH
- Включение 2FA для локального входа в Ubuntu
- Включение 2FA (PUSH) для RDP подключения
- Устранение проблем и проверка работы
Предварительные требования:
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.
Включение 2FA для локального входа в Ubuntu:
sudo nano /etc/pam.d/common-auth
добавляем в конце файла конфигурации: auth required pam_radius_auth.so
Входим пользователем, включенным в Radius-группу (политику) c PUSH-аутентификацией:
После ввода доменного пароля пользователя, в приложение Indeed Key придет Push уведомление, после подтверждения которого, успешно осуществится вход в систему.
Входим пользователем включенным в Radius-группу (политику) c OTP-аутентификацией:
После ввода доменного пароля пользователя, необходимо ввести OTP-код из приложения Indeed Key, после чего, успешно осуществится вход в систему.
При входе доменным пользователем с правами root (sudo su) система запросит второй фактор, который был ранее определен в политике. В примере для пользователя Admin-Indeed, после ввода доменного пароля – это Push-уведомление, после подтверждения которого, получаем полный root доступ по SSH и локально.
Включение 2FA (PUSH) для RDP подключения
В данной инструкции используется модуль xRDP для RDP подключения. Данный модуль не поддерживает отображение окна для ввода OTP, поэтому использование методов аутентификации с вводом ОТП технически невозможно. В данном сценарии возможно использование только PUSH.
Устанавливаем xRDP на Ubuntu 22.04 sudo apt -y install xrdp sudo systemctl status xrdp sudo adduser xrdp ssl-cert sudo systemctl restart xrdp sudo ufw allow 3389
Откройте для редактирования файл с настройкой xrdp для модуля PAM: sudo nano /etc/pam.d/xrdp-sesman
Добавляем в конце конфигурационного файла, строку: auth required pam_radius_auth.so
Подключаемся по RDP к 10.10.10.28 под доменной учетной записью. admin-indeed@indeed.local
После ввода доменного пароля придет Push уведомление в приложении Indeed Key для подтверждения аутентификации.
Устранение проблем и проверка работы:
Если на RADIUS (NPS) сервер не приходят радиус запросы: 1. Проверьте, что открыты необходимые порты на брандмауэрах клиента и сервера. 2. Проверьте подключение до RADIUS сервера утилитой Radtest: apt-get install freeradius-utils
Запросом в формате: radtest username@domain.local password IPaddressRadiusServer Port SharedSecret radtest user6@indeed.local P@$$w0rD 10.10.10.12 1812 secret
Проверка Radius-запросов со стороны RADIUS-сервера через Wireshark:
События Windows Event Viewer:
3. Проверьте версию установленного пакета: sudo apt install apt-show-versions apt-show-versions libpam-radius-auth libpam-radius-auth:amd64/jammy 2.0.0-1 uptodate
4. Если по логам Windows Event Viewer (служба политики сети и доступа) и Wireshark приходят запросы на NPS Radius Server server, через утилиту radtest, но логов и пакетов при попытке аутентификации через libpam-radius-auth – нет, а при подключении по SSH получаем ошибку: Permission denied (keyboard-interactive) то проблема в конфиге: pam_radius_auth.conf, либо библиотеке - libpam-radius-auth – которую необходимо переустановить: sudo apt-get -y purge libpam-radius-auth sudo apt install libpam-radius-auth
5.Проверьте конфигурацию и работу 2FA в Ubuntu.
|