RADIUS-Zuverlässigkeit und Skalierbarkeit der Remote-Authentifizierung

GESCHRIEBEN VON Zevenet | 3. Oktober 2017

Übersicht

RADIUS or DFÜ-Benutzerdienst für Remote-Authentifizierung ist ein Netzwerkprotokoll, das die zentrale Verwaltung von Authentifizierung, Autorisierung und Abrechnung von Benutzern und Geräten ermöglicht. Es wird häufig von Internetdienstanbietern und Unternehmen verwendet, um den Zugang zum Internet, zu lokalen Diensten, drahtlosen Netzwerken über WiFi-Zugangspunkte usw. zu steuern.

Das RADIUS-Protokoll ist in der Anwendungsebene mit einer Client-Server-Architektur implementiert, die TCP oder UDP als Transportschicht verwenden und mit einer Benutzerdatenbank wie dieser kommunizieren kann Active Directory, LDAP-Dienst or Linux-Buchhaltungssystem. Die beliebtesten RADIUS-Lösungen sind FreeRadius oder Microsoft NPS Radius Server.

RADIUS Messaging-Protokoll

Die Protokollnachrichten basieren auf der Clientanforderung und der Serverantwort, wie unten gezeigt.

1. Client sendet eine Zugriffsanforderung an den Server für jeden Benutzer oder jedes Gerät, der am Serverport authentifiziert werden soll TCP / UDP 1812 (ältere Serverversionen würden verwenden 1645 auch zur Authentifizierung).
2. Server antwortet gemäß der Richtlinie Zugriff akzeptieren wenn die Authentifizierung erlaubt ist, Zugriff ablehnen wenn der Zugang nicht erlaubt ist oder Access-Challenge wenn der Server weitere Informationen benötigt, um den Zugriff zu bestimmen (z. B. eine zweite Überprüfung: PIN, Kennwort, Zertifikat usw.)

Optional können der Client und der Server Meldungen der Buchhaltung austauschen Buchungsanfrage und Buchhaltung-Antwort um eine eindeutige Sitzungskennung zu erhalten.

3. Client sendet eine Buchungsanfrage zum Server durch den Port TCP / UDP 1813 für die Verwaltung von Buchhaltungssitzungen (ältere Serverversionen würden verwendet 1646 auch zur Authentifizierung).
4. Server antwortet mit einem Buchhaltung-Antwort Nachricht, um die neue Sitzung zu bestätigen.

In einer RADIUS-Umgebung ist ein zusätzlicher Dienst für die Datenbankverwaltung der Benutzer erforderlich und wichtig, um Hochverfügbarkeit in Betracht zu ziehen. Dies wird in einem anderen Artikel behandelt.

RADIUS-Lastausgleichs- und Hochverfügbarkeitsumgebung

Das Problem, wenn ein RADIUS-Dienst nicht verfügbar ist, kann das Risiko verursachen, dass Benutzer nicht auf ein Servernetzwerk zugreifen oder sich bei einer Anwendung anmelden können, Benutzer eine Sitzung nicht auf einem Gerät öffnen können oder nicht die Berechtigung zur Verwendung eines Rechts erhalten können ein Geschäftsprozess. Um diese Art von Situationen zu lösen, ist es das Ziel dieses Artikels, die unten gezeigte Umgebung einzurichten.

Zevenet teilt die RADIUS-Protokollnachrichten mit allen RADIUS-Servern, entweder an verschiedenen oder an lokalen Standorten. In den folgenden Abschnitten erläutern wir die Konfiguration dieser Art von Umgebungen, die erweiterten Integritätsprüfungen für RADIUS-Dienste und die Sicherheitsherausforderungen dieses Protokolls.

Konfiguration des virtuellen RADIUS-Dienstes

Das Protokoll des RADIUS-Protokolls basiert auf UDP-Paketen. Daher wird die Konfiguration einer zuverlässigen RADIUS-Umgebung mit a erstellt LSLB Bauernhof mit L4xNAT Profil auf Layer 4, Ports 1812 und 1813, Protokolltyp UDP und bevorzugt DTA um transparent zu sein und die Client-IP auf der Backend-Seite zu erhalten (obwohl NAT sollte auch perfekt funktionieren).

In den DienstleistungenStandardmäßig ist keine Persistenz erforderlich, es sei denn, zwischen dem Client-Radius-Server ist eine gewisse Stabilität erforderlich.

Wenn RADIUS anstelle von UDP über TCP verwendet wird, kann dies im Feld Protokolltyp geändert werden. Es könnte auch eingestellt werden Alle Protokolle, um gleichzeitig TCP und UDP von derselben virtuellen IP zuzulassen.

Konfigurieren Sie abschließend die Backends ohne konfigurierte Ports (da der Zielport der Clientverbindung verwendet wird) und testen Sie die Verbindung. Sobald der virtuelle RADIUS-Dienst erfolgreich konfiguriert wurde, können wir die erweiterte Integritätsprüfung für diesen Dienst festlegen.

RADIUS Advanced Health Check-Konfiguration

Eine erweiterte Prüfung ist in Zevenet mit dem Namen enthalten check_radius unter dem Standardordner / usr / local / zenloadbalancer / app / libexec /.

Die Hilfe dieses Befehls kann aufgelistet werden:

root@zevenet5# /usr/local/zenloadbalancer/app/libexec/check_radius --help
Tests to see if a RADIUS server is accepting connections.

Usage:
check_radius -H host -F config_file -u username -p password
			[-P port] [-t timeout] [-r retries] [-e expect]
			[-n nas-id] [-N nas-ip-addr]

Options:
 -h, --help
    Print detailed help screen
 -V, --version
    Print version information
 --extra-opts=[section][@file]
    Read options from an ini file. See
    https://www.monitoring-plugins.org/doc/extra-opts.html
    for usage and examples.
 -H, --hostname=ADDRESS
    Host name, IP Address, or unix socket (must be an absolute path)
 -P, --port=INTEGER
    Port number (default: 1645)
 -u, --username=STRING
    The user to authenticate
 -p, --password=STRING
    Password for autentication (SECURITY RISK)
 -n, --nas-id=STRING
    NAS identifier
 -N, --nas-ip-address=STRING
    NAS IP Address
 -F, --filename=STRING
    Configuration file
 -e, --expect=STRING
    Response string to expect from the server
 -r, --retries=INTEGER
    Number of times to retry a failed connection
 -t, --timeout=INTEGER
    Seconds before connection times out (default: 10)

This plugin tests a RADIUS server to see if it is accepting connections.
The server to test must be specified in the invocation, as well as a user
name and password. A configuration file may also be present. The format of
the configuration file is described in the radiusclient library sources.
The password option presents a substantial security issue because the
password can possibly be determined by careful watching of the command line
in a process listing. This risk is exacerbated because the plugin will
typically be executed at regular predictable intervals. Please be sure that
the password used does not allow access to sensitive system resources.

Überprüfen Sie zunächst, ob es ordnungsgemäß funktioniert, indem Sie den folgenden Beispielbefehl ausführen (verwenden Sie bitte Ihre eigenen Radius-Client-Konfigurationsparameter von Zevenet):

root@zevenet5# cd /usr/local/zenloadbalancer/app/libexec/
root@zevenet5# ./check_radius -H <RADIUS_SERVER_IP> -P <RADIUS_SERVER_PORT> -u <DUMMY_USER_NAME> -p <DUMMY_USER_PASSWD> -F <RADIUS_CLIENT_CONFIG_FILE>

Der Test wird von der Zevenet-Appliance auf einem bestimmten RADIUS-Server mit einer Dummy-Benutzerüberprüfung und optional einer Client-Konfigurationsdatei für bestimmte Client-Parameter durchgeführt. Lassen Sie uns den Befehl testen und dann, wenn wir den bekommen OK vom Server und vom FEHLER Wenn es nicht funktioniert, können wir die erweiterte Integritätsprüfung in der Konfiguration konfigurieren Dienstleistungen Abschnitt unseres gerade erstellten virtuellen Dienstes.

Vergessen Sie nicht, die zu verwenden HOST Token bei der Konfiguration der erweiterten Integritätsprüfungen in Zevenet wie unten beschrieben.

check_radius -H HOST -P 1812 -u johndoe -p johnspass -F /etc/radius_client.cfg

Siehe unten die Dienstleistungen Abschnittskonfiguration.

RADIUS-Sicherheitsoptionen

Das RADIUS-Protokoll verwendet traditionell MD5-Algorithmen für die Authentifizierung pro Paket und die Integritätsprüfung über UDP. Da diese beiden keine Sicherheitsverschlüsselung und keinen Schutz bieten, wurden verschiedene Ansätze untersucht.

Bereitstellungen von RADIUS über IPsec or Internetprotokollsicherheit wurden weit verbreitet eingesetzt, es gibt jedoch einige Schwierigkeiten bei dieser Option, da die Anwendungsschicht die Sicherheitsrichtlinien nicht kennt, da sie in der Netzwerkschicht impliziert sind. Um diesen Ansatz mit Zevenet verwenden zu können, ist eine manuelle Konfiguration erforderlich, da er noch nicht integriert ist.

Die Spezifikation DTLS or Datagram-Transportschichtsicherheit ermöglicht die Verschlüsselung, Überwachung und Kontrolle der Sicherheitsrichtlinien für diesen Datenverkehr.

Eine weitere Option wäre RADIUS over TLS Dies bietet TCP-Funktionen für Zuverlässigkeit und Transportebene in der Reihenfolge.

Für diese Art von Ansätzen ist das IANA hat einen offiziellen Eintrag für erstellt RadSec (RADIUS-Sicherheit) um UDP zu verwenden 2083 Port für RADIUS / TLS Implementierungen.

Eine weitere Option wäre, die Digest- und Berechtigungsschicht mit zu erweitern EAP (Erweiterbares Authentifizierungsprotokoll) wird nicht in der Verbindungsaufbauebene verwendet, sondern während der Verbindungsauthentifizierungsphase, wodurch die Verwendung von MD5-Schwachstellen vermieden wird.

Mit Zevenet können die RADIUS-Dienste außerdem mit dem IPDS-Modul vor schädlichen Paketen und Hosts, DoS-Angriffen, Brute-Force-Versuchen und vielem mehr geschützt werden.

RADIUS-Proxy-Funktionen

Wenn mehrere RADIUS-Server an verschiedenen Standorten bereitgestellt werden, ist es interessant, die Clientverbindung an den Standort weiterzuleiten, der ihre Authentifizierungs-, Autorisierungs- und Abrechnungsdaten verwaltet. Derzeit unterstützt Zevenet keine RADIUS-Proxy-Funktionen, es ist jedoch geplant, diese bald aufzunehmen. Freuen Sie sich auf die neuesten Entwicklungen!

Genießen Sie Ihre hoch verfügbaren und skalierbaren Netzwerkzugriffsdienste!

Teilen:

Dokumentation unter den Bedingungen der GNU Free Documentation License.

War dieser Artikel hilfreich?

Verwandte Artikel