Zum Inhalt

auth-radius: HTTP-Authentifizierung über das RADIUS-Protokoll

Installation

Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:

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

Aktivieren Sie das Modul, indem Sie Folgendes am Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_http_auth_radius_module.so;

Dieses Dokument beschreibt nginx-module-auth-radius v0.1.3, veröffentlicht am 14. September 2026.


Eine nahezu vollständig neu geschriebene Version von https://github.com/lexelby/nginx-radius mit
einer Konfiguration, die von https://github.com/timchengx/nginx-http-radius-module inspiriert ist.
Ein Konfigurationsbeispiel finden Sie unter https://gitflic.ru/project/ten0s/nginx-radius.

Access-Request-Pakete enthalten das Message-Authenticator-Attribut gemäß RFC 3579, und Message-Authenticator wird bei Antworten verifiziert, sofern vorhanden. Dies unterstützt strikte RADIUS-Server-Konfigurationen nach BlastRADIUS, ohne die Nachrichtenauthentifizierung für diesen Client zu deaktivieren.

Tests

make test
make test-asan
make lint

Build:

  1. Nginx-Quellcode abrufen:
$ make getsrc && make src
  1. Quellcode bauen:
$ make build_all
  1. Lokal ausführen:
$ make run
  1. Lokales Debugging:
$ make gdb
  1. Konfiguration:

Beispielkonfigurationsdatei: conf/nginx.conf:

# Hauptdirektive zum Hinzufügen eines Radius-Servers.
# Es können mehrere "radius_server"-Direktiven vorhanden sein.
radius_server "radius_server_1" {
    # Radius-Server-URL
    url "127.0.0.1:1812";

    # Gemeinsames Geheimnis des Radius-Servers
    secret "secret";

    # NAS-Kennung, optional
    nas_identifier "nas-identifier";

    # Timeout für Radius-Auth-Anfragen, optional, Standard: 5s
    auth_timeout   5s;

    # Anzahl der Wiederholungen für Radius-Auth-Anfragen, optional, Standard: 3
    auth_retries   3;

    # Timeout für Radius-Health-Anfragen, optional, Standard: 5s
    health_timeout 5s;

    # Anzahl der Wiederholungen für Radius-Health-Anfragen, optional, Standard: 1
    health_retries 1;

    # Warteschlangengröße für Radius-Auth-/Health-Anfragen, optional, Standard: 10
    # Effektiv die Anzahl gleichzeitiger Anfragen, die ohne
    # Neuplanung verarbeitet werden können.
    queue_size     10;
}

# Location-Direktive zur Auswahl des Radius-Servers.
# Es können mehrere "radius_servers"-Direktiven pro Location vorhanden sein.
radius_servers "radius_server_1";

# Location-Direktive zum Aktivieren des Moduls und zum Senden einer Auth-Anfrage.
auth_radius              "realm" | off;
radius_auth              "realm" | off;

# Location-Direktive zum Aktivieren des Moduls und zum Senden einer Health-Anfrage.
radius_health            ["user"] ["passwd"];
  1. Installation (optional):
$ make install

GitHub

Zusätzliche Konfigurationstipps und Dokumentation zu diesem Modul finden Sie im GitHub- Repository für nginx-module-auth-radius.