Аутентификация по OTP на Web-сервере Apache
Статья с упоминанием компании "Аладдин Р.Д."
В этом посте мы расскажем о том, как настроить аутентификацию по одноразовому паролю на Apache при помощи JAS и Radius. JAS (JaCarta Authentication Server) – автономный высокопроизводительный сервер аутентификации с поддержкой OTP- и U2F-токенов, а также программных токенов для мобильных устройств. В процессе настройки использовалось следующее ПО — JAS 1.x, Linux Debian, Apache2, а также токены JaCarta WebPass, JaCarta U2F, любые OTP-токены по событию, программные Google Authenticator, Яндекс-ключ и т.д.
Для решения данной задачи можно использовать подключаемый модуль аутентификации radius для сервера apache2. Все действия на Web-сервере выполняются для дистрибутива Linux Debian stretch.
Настройка Web-сервера
- Устанавливаем модуль radius для apache2: sudo apt install libapache2-mod-auth-radius
- Выбираем нужный сайт и в его конфигурации делаем изменения: ServerName web1.test2.ru
- Перезагружаем демон Web-сервера: sudo apache2ctl restart
sudo a2enmod auth_radius
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Указываем параметры нашего сервера radius (адрес, секрет, количество попыток соединения) AddRadiusAuth 127.0.0.1 P@ssw0rd 5
AddRadiusCookieValid 60
В секции "Directory" также указываем:
AuthType BasicAuthName "Radius Authentication"
AuthBasicAuthoritative Off
AuthBasicProvider radius
AuthRadiusAuthoritative on
AuthRadiusActive On
Require valid-user
Web-сервер готов.
Настройка сервера Radius (NPS)
Запускаем консоль управления NPS.
1. Добавим наш Web-сервер в качестве клиента:
2. В политиках запроса соединения создаём правило, согласно политике безопасности предприятия:
Добавление пользователя с правами сетевого доступа
Создаём пользователя и на вкладке Dial-in предоставляем права сетевого доступа:
Настройка сервера JAS
В консоли управления JAS добавляем любой из указанных выше OTP-аутентификаторов.
В свойствах указываем имя пользователя:
Более подробно о настройке сервера JAS написано в документации по продукту, а также в Базе знаний.
Проверка работы
В браузере переходим на наш сайт. Должен быть запрошен логин и пароль. Вводим логин и одноразовый пароль:
Если всё выполнено верно, получаем доступ на наш сайт, защищённый паролем: