- Начало работы
- Интеграция
- HTTP API
- OpenID Connect
- RADIUS протокол
- RADIUS адаптер
- LDAP адаптер
- Портал самообслуживания
- MULTIFACTOR Directory Sync
- Windows Logon
- Регистрация пользователей
- .NET Core
- 1с-Bitrix24
- 1с-плагин двухфакторной аутентификации
- ADFS
- ASP.NET
- Ansible AWX
- Atlassian Cloud
- BearPass
- Check Point VPN
- Cisco ASA VPN
- Citrix Gateway
- FortiGate VPN
- HRBOX
- Huawei Cloud
- Huawei VPN
- Ideco UTM
- Keycloak
- Let's Encrypt Windows Server
- Linux logon (GUI)
- Linux SSH
- Linux SUDO
- Microsoft Entra ID
- MikroTik L2TP VPN
- NGate VPN
- Network Policy Server (NPS)
- Nextcloud
- OpenVPN
- OpenVPN + AD
- OpenVPN Access Server
- OpenVPN pfSense
- Outlook Web Access (OWA)
- Passwork
- RD Gateway (RDGW)
- Redmine
- UserGate VPN
- VMware Horizon Cloud
- VMware Horizon View
- VMware vCloud Director
- VMware vSphere
- Vault
- ViPNET
- Windows VPN
- Yandex.Cloud
- Yandex 360
- Zabbix
- АйТи-Бастион
- Континент 4 VPN
- МТС Линк (бывш. webinar.ru)
- WordPress
- С-Терра VPN
- Точка доступа Wi-Fi
- ФПСУ-IP/Клиент
Настройка двухфакторной аутентификации на CentOS
В статье описывается настройка сервера CentOS для реализации двухфакторной аутентификации. Рассматриваются следующие методы:
Подтверждение входа посредством одноразового кода (OTP) или PUSH-уведомления при локальном входе и подключении через RDP.
Авторизация по логину и паролю;
Аутентификация с использованием ключа;
Использование второго фактора на 99% сокращает риск неправомерного доступа и совершенно не усложняет процесс подключения для пользователей.
Возможные способы аутентификации:
Мобильное приложение Multifactor
СМС
Аппаратные OTP токены
Приложения OTP: Google Authenticator или Яндекс.Ключ
Telegram
Принцип работы
- SSHD использует модуль PAM_RADIUS для второго фактора проверки подлинности
- Модуль подключается через RADIUS протокол к сервису MULTIFACTOR
- MULTIFACTOR отправляет одноразовый пароль или PUSH уведомление пользователю для подтверждения доступа
- Пользователь вводит одноразовый пароль или подтверждает PUSH и получает доступ при локальном входе или подключении через RDP.
Настройка MULTIFACTOR
Зайдите в систему управления MULTIFACTOR, далее в раздел «Ресурсы» и создайте новый Linux сервер. После создания вам будут доступны два параметра: NAS Identifier и Shared Secret, они потребуются для последующих шагов.
Установка и настройка модуля PAM_RADIUS
sudo yum update sudo yum install openssh-server sudo yum install epel-release sudo yum install pam_radius
Далее создайте файл конфигурации.
sudo nano /etc/pam_radius_ssh.conf
Впишите в него настройки RADIUS сервера MULTIFACTOR, сохраните и закройте редактор.
radius.multifactor.ru SHARED_SECRET 40
где:
- radius.multifactor.ru: адрес сервера
- SHARED_SECRET: скопируйте из соответствующего параметра настроек Linux ресурса MULTIFACTOR
- 40: таймаут ожидания запроса
В файле хранится секретный ключ, поэтому установите на него права доступа на чтение только пользователю root.
sudo chmod 0600 /etc/pam_radius_ssh.conf
Настройка PAM модулей
Откройте для редактирования файл /etc/pam.d/sshd
sudo nano /etc/pam.d/sshd
- NAS_Identifier: скопируйте из соответствующего параметра настроек Linux ресурса MULTIFACTOR.
Сохраните и закройте файл (:x). В итоге он должен выглядеть подобным образом:
#%PAM-1.0 # # Конфигурация PAM для SSH демона с двухфакторной аутентификацией (логин и пароль) # Основная аутентификация: сначала стандартная проверка локальных учётных данных auth required pam_unix.so try_first_pass # Если проверка с помощью PAM_RADIUS проходит успешно – достаточно auth sufficient pam_radius_auth.so # Вызов PAM_RADIUS с передачей параметров: NAS Identifier и путь к конфигурации auth required pam_radius_auth.so client_id=YOUR_NAS_IDENTIFIER conf=/etc/pam_radius_ssh.conf # Управление учётными записями account required pam_unix.so # Настройка сессии session required pam_unix.so # Управление паролем (при необходимости) password required pam_unix.so
Настройка службы SSHD
Отредактируйте файл /etc/ssh/sshd_config.
sudo nano /etc/ssh/sshd_config
Аутентификация по логину и паролю
# SSHD конфигурация для CentOS – Аутентификация по логину и паролю с двухфакторной проверкой Port 22 ListenAddress 0.0.0.0 Protocol 2 # Отключаем вход под root PermitRootLogin no # Включаем использование PAM UsePAM yes # Разрешаем парольную аутентификацию PasswordAuthentication yes # Включаем метод keyboard-interactive, чтобы инициировать PAM-процесс (2FA) AuthenticationMethods keyboard-interactive # Дополнительные настройки (можно оставить по умолчанию) ChallengeResponseAuthentication yes GSSAPIAuthentication yes X11Forwarding yes PrintMotd yes AcceptEnv LANG LC_* Subsystem sftp /usr/libexec/openssh/sftp-server
Сохраните файл (:x) и перезапустите SSH демона.
sudo systemctl restart sshd
Аутентификация по логину с использованием SSH‑ключа
# SSHD конфигурация для CentOS 9 – Аутентификация по SSH-ключу с двухфакторной проверкой Port 22 ListenAddress 0.0.0.0 Protocol 2 PermitRootLogin no # Включаем использование PAM UsePAM yes # Требуем, чтобы пользователь сначала успешно прошёл аутентификацию по публичному ключу, # а затем – через keyboard-interactive (PAM с двухфакторной проверкой) AuthenticationMethods publickey,keyboard-interactive # Отключаем парольную аутентификацию (так как используется SSH-ключ) PasswordAuthentication no PubkeyAuthentication yes ChallengeResponseAuthentication yes # Дополнительные настройки GSSAPIAuthentication yes X11Forwarding yes PrintMotd yes AcceptEnv LANG LC_* Subsystem sftp /usr/libexec/openssh/sftp-server
Сохраните файл (:x) и перезапустите ssh демона.
sudo systemctl restart sshd
Включение 2FA для локального входа в CentOS
Важно
Данный модуль не поддерживает отображение окна для ввода OTP, поэтому использование методов аутентификации с вводом ОТП технически невозможно. В данном сценарии возможно использование только PUSH.
- Устанавливаем xRDP:
sudo dnf update sudo dnf install epel-release sudo dnf install xrdp pam_radius sudo systemctl enable --now xrdp sudo systemctl restart xrdp sudo systemctl status xrdp
2. Открываем порт:
sudo firewall-cmd --permanent --add-port=3389/tcp sudo firewall-cmd --reload
3. Откройте для редактирования файл /etc/pam.d/xrdp-sesman
sudo nano /etc/pam.d/xrdp-sesman
Отредактируйте файл, добавив в него вызов RADIUS модуля для 2FA. Пример полного содержимого файла может выглядеть так (Аутентификация с использованием ключа):
#%PAM-1.0 # # PAM-конфигурация для xRDP-сессии с двухфакторной аутентификацией # # Первая строка выполняет стандартную проверку логина/пароля auth required pam_unix.so # # --- Добавляем вызов RADIUS модуля для 2FA --- # Опция skip_passwd отключает запрос ввода OTP, # позволяя использовать только PUSH-уведомление auth required pam_radius_auth.so skip_passwd client_id=YOUR_NAS_IDENTIFIER conf=/etc/pam_radius_ssh.conf # ------------------------------------------------ # # Проверка учетной записи account required pam_unix.so # # Инициализация сессии session required pam_unix.so
где
- NAS_Identifier: скопируйте из соответствующего параметра настроек Linux ресурса MULTIFACTOR.
Авторизация по логину и паролю
#%PAM-1.0 # # PAM-конфигурация для xRDP-сессии с двухфакторной аутентификацией (логин + пароль) # 1) Базовая проверка логина и пароля через стандартный PAM auth required pam_unix.so # 2) Второй фактор (PUSH-уведомление) через RADIUS # skip_passwd — отключает запрос OTP в окне RDP (OTP вводить нельзя), используется только PUSH auth required pam_radius_auth.so skip_passwd client_id=YOUR_NAS_IDENTIFIER conf=/etc/pam_radius_ssh.conf # Проверка учётной записи account required pam_unix.so # Инициализация сессии session required pam_unix.so
где
- NAS_Identifier: скопируйте из соответствующего параметра настроек Linux ресурса MULTIFACTOR.
Сохраните изменения и закройте редактор.
Если что-то не работает
- На сервере с Linux есть пользователь с заданным логином
- С сервера открыт доступ по UDP порту 1812 на адрес radius.multifactor.ru
- Параметры Client ID и Shared Secret указаны корректно
- Пользователь настроил способ аутентификации
- Проверьте журнал «Запросы доступа» в личном кабинете MULTIFACTOR.
Если ничего не сработало, обращайтесь, поможем.