Гид по технологиям

Как настроить Apache для использования RADIUS с двухфакторной аутентификацией WiKID на Ubuntu

• 5 min read • Безопасность • Обновлено 28 Nov 2025
Apache + WiKID: RADIUS на Ubuntu
Apache + WiKID: RADIUS на Ubuntu

Коротко о том, как это работает

  • Пользователь кликает по защищённой ссылке и получает базовый запрос учётных данных в браузере.
  • В поле пароля вводится одноразовый код из WiKID software token.
  • Apache (mod_auth_radius) отправляет имя пользователя и одноразовый пароль на WiKID RADIUS сервер.
  • Если WiKID подтверждает совпадение — доступ предоставляется.

Важно: для сайтов, где требуется максимальная безопасность, рекомендуется включать взаимную HTTPS-аутентификацию (mutual TLS). WiKID software token может дополнительно проверять хеш SSL‑сертификата сервера для предотвращения MITM.

Требования и конфигурация, используемая в примере

  • Ubuntu 12.04 (пример базовой установки)
  • Apache 2.2.22-1
  • libapache2-mod-auth-radius 1.5.8-1
  • WiKID (коммерческая версия) как сервер двухфакторной авторизации

Подготовка WiKID — добавление сетевого RADIUS‑клиента

  1. Войдите в веб‑интерфейс WiKID: http://yourwikidserver/WiKIDAdmin
  2. Откройте вкладку Network Clients
  3. Нажмите Create New Network Client
  4. Заполните форму:
    • IP Address: IP вашего веб‑сервера
    • Protocol: Radius
  5. Нажмите Add, на следующей странице укажите shared secret (совместный секрет)
  6. Оставьте поле Return Attribute пустым
  7. На сервере WiKID выполните из терминала: остановите и снова запустите сервис (stop, затем start), чтобы загрузить нового сетевого клиента в встроенный RADIUS

После этого конфигурация на стороне WiKID завершена.

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

Если у вас свежая Ubuntu 12.04 и Apache ещё не установлен, установите модуль RADIUS:

$ sudo apt-get install libapache2-mod-auth-radius

Создайте каталог, который хотите защитить (в примере защищён весь /var/www), и добавьте в apache2.conf блок Directory:


  Options Indexes FollowSymlinks
  AuthType Basic
  AuthName "WiKID Two-factor authentication"
  AuthBasicAuthoritative Off
  AuthBasicProvider radius
  AuthRadiusAuthoritative on
  AuthRadiusActive On
  Require valid-user

Обратите внимание на директиву AuthBasicProvider radius — она предотвращает повторную отправку браузером кешированных учётных данных, что необходимо для одноразовых паролей.

В httpd.conf добавьте строку для связи с RADIUS‑сервером и настройки cookie:

 
AddRadiusAuth wikid_server_address:1812 wikidserver_shared_secret 5
AuthRadiusCookieValid 60
  • Замените wikid_server_address на IP/адрес WiKID сервера.
  • Замените wikidserver_shared_secret на заранее заданный shared secret.
  • В конце строки AddRadiusAuth стоит 5 — это таймаут в секундах. Параметр 5:3 означал бы 3 попытки; для одноразовых паролей попытки должны быть ограничены одной, поэтому используем только 5.
  • AuthRadiusCookieValid = 60 означает, что cookie аутентификации действительна 60 минут.

Обычно предпочтительнее конфигурировать Directory в основном конфиге, а не .htaccess — это считается более безопасным и производительным.

Альтернативные подходы и интеграции

  • FreeRADIUS + Apache через pam_radius или proxy — полезно при централизованной аутентификации и интеграции с OpenLDAP/AD.
  • Нативные OTP‑модули (Google Authenticator PAM) — проще, но менее централизуемо.
  • Взаимная TLS (mutual TLS) для строгой проверки сервера со стороны клиента.

Когда этот подход не подходит (контрпримеры)

  • Если требуется интеграция с современным SSO (SAML / OIDC), лучше использовать соответствующие решения, так как RADIUS/Basic Auth не обеспечивают удобный SSO‑поток.
  • Для приложений с API‑трафиком лучше использовать токены/ключи и OAuth‑потоки, а не Basic Auth через браузер.
  • Для мобильных приложений базовая RADIUS‑аутентификация через браузер неприменима.

Безопасность и жесткая настройка

  • Всегда используйте HTTPS и, по возможности, взаимную TLS для защиты от MITM.
  • Ограничьте доступ к WiKID RADIUS серверу по IP‑фильтру брандмауэра — только веб‑серверу разрешите подключение к порту 1812.
  • Используйте сильный shared secret и периодически его меняйте.
  • Настройте мониторинг неудачных попыток и временную блокировку клиентов с множеством неудач.
  • Минимизируйте срок действия AuthRadiusCookieValid в соответствии с профилем риска.

Контрольный список ролей

  • Администратор WiKID:
    • Добавить Network Client с IP веб‑сервера
    • Сгенерировать и сохранить shared secret
    • Проверить работу встроенного RADIUS (логи)
  • DevOps / Системный администратор Apache:
    • Установить libapache2-mod-auth-radius
    • Добавить блок Directory в apache2.conf
    • Добавить AddRadiusAuth и AuthRadiusCookieValid в httpd.conf
    • Перезагрузить Apache и проверить доступ
  • Ответственный по безопасности:
    • Настроить HTTPS + mutual TLS при необходимости
    • Настроить правила firewall и ротацию секретов

Мини‑методология (SOP) — пошагово

  1. Подготовка: убедитесь, что Apache установлен.
  2. На WiKID: создать Network Client с нужным IP и shared secret.
  3. На веб‑сервере: установить libapache2-mod-auth-radius.
  4. В apache2.conf: добавить Directory с AuthBasicProvider radius и связующими директивами.
  5. В httpd.conf: добавить AddRadiusAuth и AuthRadiusCookieValid.
  6. Перезапустить WiKID RADIUS и Apache.
  7. Проверка: попытка доступа к защищённому каталогу, ввод одноразового пароля, анализ логов при ошибках.

Критерии приёмки

  • При вводе корректного одноразового пароля доступ к каталогу /var/www предоставлен.
  • При вводе неправильного пароля доступ отклонён и в логах WiKID видно неудачную попытку.
  • При недоступности WiKID RADIUS сервер возвращается соответствующая ошибка, а в логах Apache появляются сообщения о таймауте.
  • Cookie аутентификации действительна в пределах указанного времени (AuthRadiusCookieValid).

Совместимость и миграция

  • Пример рассчитан на Ubuntu 12.04 и Apache 2.2.x. На современных Ubuntu (18.04/20.04/22.04) может понадобиться другой пакет или сборка модуля под Apache 2.4.
  • На Apache 2.4 директивы авторизации изменились: проверьте совместимость модулей и синтаксис (Require valid-user остаётся валидным, но некоторые другие директивы могли эволюционировать).
  • Если используете FreeRADIUS как фронт для WiKID, учитывайте версии протокола RADIUS и поддерживаемые атрибуты.

Отладка и распространённые ошибки

  • Проверьте логи Apache (/var/log/apache2/error.log) и логи WiKID для сообщений о тайм‑аутах или несоответствии секретов.
  • Если браузер повторно отправляет прежние (кешированные) учётные данные — проверьте, чтобы AuthBasicProvider был установлен в radius.
  • Убедитесь, что между веб‑сервером и WiKID нет блокировки порта 1812: используйте telnet/nc для проверки соединения.
  • Если используются Load Balancer/Proxy, обратите внимание на исходящий IP: WiKID должен видеть корректный клиентский IP (или добавьте IP LB в разрешённые)

Глоссарий (1 строкой)

  • RADIUS: протокол удалённой аутентификации.
  • WiKID: сервер/система двухфакторной аутентификации.
  • OTP: одноразовый пароль.
  • AuthRadiusCookieValid: время жизни cookie для RADIUS‑аутентификации.

Полезные ссылки

  • WiKID Strong Authentication - Two-Factor Authentication
  • Mod-auth-radius - mod-auth-radius
  • Apache - The Apache Webserver

Резюме

Добавление WiKID через mod_auth_radius к Apache позволяет организовать централизованную двухфакторную аутентификацию с минимальными изменениями конфигурации. Важные моменты: корректная регистрация RADIUS‑клиента на WiKID, корректные shared secret и таймауты, а также обеспечение безопасности транспортного канала (HTTPS / mutual TLS) и фильтрации доступа по IP.

Важно: протестируйте развертывание в контролируемой среде и проверьте поведение при недоступности RADIUS и при попытках повторного использования одноразового пароля.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро