auth-radius: HTTP аутентификация через протокол RADIUS
Установка на Debian/Ubuntu
Эти документы относятся к пакету APT nginx-module-auth-radius, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте APT репозиторий, как описано в настройке APT репозитория.
- Установите модуль:
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.
Сборка:
- Получите исходный код nginx:
$ make getsrc && make src
- Соберите исходный код:
$ make build_all
- Локальный запуск:
$ make run
- Локальная отладка:
$ make gdb
- Конфигурация:
Пример файла конфигурации: 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"];
- Установка (по желанию):
$ make install