Saltar a contenido

auth-radius: autenticación HTTP mediante el protocolo RADIUS

Instalación

Puede instalar este módulo en cualquier distribución basada en RHEL, incluyendo, entre otras:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y 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

Habilite el módulo añadiendo lo siguiente al principio de /etc/nginx/nginx.conf:

load_module modules/ngx_http_auth_radius_module.so;

Este documento describe nginx-module-auth-radius v0.1.3 publicado el 14 de septiembre de 2026.


Versión casi totalmente reescrita de https://github.com/lexelby/nginx-radius con
configuración inspirada en https://github.com/timchengx/nginx-http-radius-module.
Consulte el ejemplo de configuración en https://gitflic.ru/project/ten0s/nginx-radius.

Los paquetes Access-Request incluyen el atributo Message-Authenticator de RFC 3579, y Message-Authenticator se verifica en las respuestas cuando está presente. Esto permite configuraciones estrictas de servidores RADIUS posteriores a BlastRADIUS sin deshabilitar la autenticación de mensajes para este cliente.

Pruebas

make test
make test-asan
make lint

Compilación:

  1. Obtenga el código fuente de nginx:
$ make getsrc && make src
  1. Compile el código fuente:
$ make build_all
  1. Ejecución local:
$ make run
  1. Depuración local:
$ make gdb
  1. Configuración:

Archivo de configuración de ejemplo: conf/nginx.conf:

# Directiva principal para añadir un servidor Radius.
# Puede haber varias directivas "radius_server".
radius_server "radius_server_1" {
    # URL del servidor Radius
    url "127.0.0.1:1812";

    # Secreto compartido del servidor Radius
    secret "secret";

    # Identificador NAS, opcional
    nas_identifier "nas-identifier";

    # Tiempo de espera para las solicitudes de autenticación Radius, opcional, por defecto: 5s
    auth_timeout   5s;

    # Número de reintentos para las solicitudes de autenticación Radius, opcional, por defecto: 3
    auth_retries   3;

    # Tiempo de espera para las solicitudes de estado Radius, opcional, por defecto: 5s
    health_timeout 5s;

    # Número de reintentos para las solicitudes de estado Radius, opcional, por defecto: 1
    health_retries 1;

    # Tamaño de la cola de solicitudes de autenticación/estado Radius, opcional, por defecto: 10
    # Efectivamente, el número de solicitudes concurrentes que se pueden
    # procesar sin reprogramación.
    queue_size     10;
}

# Directiva de location para seleccionar el servidor Radius.
# Puede haber varias directivas "radius_servers" por location.
radius_servers "radius_server_1";

# Directiva de location para habilitar el módulo y realizar la solicitud de autenticación.
auth_radius              "realm" | off;
radius_auth              "realm" | off;

# Directiva de location para habilitar el módulo y realizar la solicitud de estado.
radius_health            ["user"] ["passwd"];
  1. Instalación (opcional):
$ make install

GitHub

Puede encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-auth-radius.