Перейти к содержанию

auth-radius: HTTP аутентификация через протокол RADIUS

Установка

Вы можете установить этот модуль в любой дистрибутив на базе RHEL, включая, но не ограничиваясь:

  • RedHat Enterprise Linux 7, 8, 9 и 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-auth-radius
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-auth-radius

Включите модуль, добавив следующее в верхнюю часть файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_auth_radius_module.so;

Этот документ описывает nginx-module-auth-radius v0.1.1, выпущенный 29 апреля 2026 года.


Практически полностью переписанная версия https://github.com/lexelby/nginx-radius с
конфигурацией, вдохновленной https://github.com/timchengx/nginx-http-radius-module.
Смотрите пример конфигурации на https://gitflic.ru/project/ten0s/nginx-radius.

Сборка:

  1. Получите исходный код nginx:
$ make getsrc && make src
  1. Соберите исходный код:
$ make build_all
  1. Локальный запуск:
$ make run
  1. Локальная отладка:
$ make gdb
  1. Конфигурация:

Пример файла конфигурации: conf/nginx.conf:

# Основная директива для добавления сервера Radius.
# Может быть несколько директив "radius_server".
radius_server "radius_server_1" {
    # URL сервера Radius
    url "127.0.0.1:1812";

    # Секретный ключ сервера Radius
    secret "secret";

    # Идентификатор NAS, необязательно
    nas_identifier "nas-identifier";

    # Таймаут для запросов аутентификации Radius, необязательно, по умолчанию: 5s
    auth_timeout   5s;

    # Количество повторных попыток для запросов аутентификации Radius, необязательно, по умолчанию: 3
    auth_retries   3;

    # Таймаут для запросов состояния Radius, необязательно, по умолчанию: 5s
    health_timeout 5s;

    # Количество повторных попыток для запросов состояния Radius, необязательно, по умолчанию: 1
    health_retries 1;

    # Размер очереди запросов аутентификации/состояния Radius, необязательно, по умолчанию: 10
    # Эффективно, количество параллельных запросов, которые могут быть
    # обработаны без повторного планирования.
    queue_size     10;
}

# Директива location для выбора сервера Radius.
# Может быть несколько директив "radius_servers" на каждую локацию.
radius_servers "radius_server_1";

# Директива location для включения модуля и выполнения запроса аутентификации.
auth_radius              "realm" | off;
radius_auth              "realm" | off;

# Директива location для включения модуля и выполнения запроса состояния.
radius_health            ["user"] ["passwd"];
  1. Установка (необязательно):
$ make install

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-auth-radius.