Aller au contenu

auth-radius: Authentification HTTP via le protocole RADIUS

Installation

Vous pouvez installer ce module dans n'importe quelle distribution basée sur RHEL, y compris, mais sans s'y limiter :

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

Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :

load_module modules/ngx_http_auth_radius_module.so;

Ce document décrit nginx-module-auth-radius v0.1.1 publié le 29 avril 2026.


Version presque totalement réécrite de https://github.com/lexelby/nginx-radius avec
configuration inspirée par https://github.com/timchengx/nginx-http-radius-module.
Voir l'exemple de configuration à https://gitflic.ru/project/ten0s/nginx-radius.

Build :

  1. Obtenez la source de nginx :
$ make getsrc && make src
  1. Construisez la source :
$ make build_all
  1. Exécution locale :
$ make run
  1. Débogage local :
$ make gdb
  1. Configuration :

Fichier de configuration d'exemple : conf/nginx.conf :

# Directive principale pour ajouter un serveur Radius.
# Peut y avoir plusieurs directives "radius_server".
radius_server "radius_server_1" {
    # URL du serveur Radius
    url "127.0.0.1:1812";

    # Secret partagé du serveur Radius
    secret "secret";

    # Identifiant NAS, optionnel
    nas_identifier "nas-identifier";

    # Délai d'attente pour les requêtes d'authentification Radius, optionnel, par défaut : 5s
    auth_timeout   5s;

    # Nombre de tentatives pour les requêtes d'authentification Radius, optionnel, par défaut : 3
    auth_retries   3;

    # Délai d'attente pour les requêtes de santé Radius, optionnel, par défaut : 5s
    health_timeout 5s;

    # Nombre de tentatives pour les requêtes de santé Radius, optionnel, par défaut : 1
    health_retries 1;

    # Taille de la file d'attente des requêtes d'authentification/santé Radius, optionnel, par défaut : 10
    # Effectivement, le nombre de requêtes concurrentes pouvant être
    # traitées sans replanification.
    queue_size     10;
}

# Directive de localisation pour sélectionner le serveur Radius.
# Peut y avoir plusieurs directives "radius_servers" par localisation.
radius_servers "radius_server_1";

# Directive de localisation pour activer le module et effectuer une requête d'authentification.
auth_radius              "realm" | off;
radius_auth              "realm" | off;

# Directive de localisation pour activer le module et effectuer une requête de santé.
radius_health            ["user"] ["passwd"];
  1. Installation (optionnelle) :
$ make install

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-auth-radius.