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

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

Установка на Debian/Ubuntu

Эти документы относятся к пакету APT nginx-module-auth-radius, предоставляемому репозиторием GetPageSpeed Extras.

  1. Настройте APT репозиторий, как описано в настройке APT репозитория.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-auth-radius

Warning

Этот модуль пока не опубликован как nginx-module-auth-radius в репозиториях APT. Следите за новостями или напишите на [email protected], чтобы запросить его.


Почти полностью переписанная версия 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;
}

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

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

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