RADIUS (Remote Authentication Dial-In User Service) pålidelighed og skalerbarhed

SENDT AF Zevenet | 3. oktober 2017

Oversigt

RADIUS or Remote Authentication Dial-In User Service er en netværksprotokol, der giver godkendelse, godkendelse og regnskab for centraliseret styring af brugere og enheder. Det bruges i vid udstrækning af internetudbydere og virksomheder til at kontrollere adgangen til internet, lokale tjenester, trådløse netværk via WiFi-adgangspunkter osv.

RADIUS-protokollen er implementeret i applikationslaget med en klient-server-arkitektur, der kunne bruge TCP eller UDP som transportlag og kommunikeres med en brugerdatabase som Active Directory, LDAP-tjeneste or Linux regnskabssystem. De mest populære RADIUS-løsninger er FreeRadius eller Microsoft NPS Radius Server.

RADIUS Messaging Protocol

Protokolbeskederne er baseret på klientanmodning og serverrespons, som det er vist nedenfor.

1. Klient sender en Adgang-Request til serveren for hver bruger eller enhed, der skal godkendes til serverporten TCP / UDP 1812 (ældre serverversioner vil bruge 1645 til godkendelse også).
2. Server svarer i henhold til politikken Adgang-Acceptér hvis godkendelsen er tilladt, Adgang-Afvis hvis adgangen ikke er tilladt eller Adgang-Challenge hvis serveren kræver flere oplysninger for at bestemme adgangen (som en anden validering: PIN, kodeord, certifikat osv.)

Eventuelt kan klienten og serveren udveksle meddelelser om bogføring som Regnskab-Request og Regnskab-respons for at opretholde en unik sessionidentifikator.

3. Klient sender en Regnskab-Request til serveren gennem porten TCP / UDP 1813 til regnskabsmæssig session management (ældre server versioner ville bruge 1646 til godkendelse også).
4. Server svar med a Regnskab-respons besked for at bekræfte den nye session.

I et RADIUS-miljø vil en yderligere service til brugernes databasehåndtering være påkrævet og vigtig at blive overvejet med høj tilgængelighed, som vil blive behandlet i en anden specifik artikel.

RADIUS belastningsbalancering og høj tilgængelighed miljø

Problemet, hvis en RADIUS-tjeneste er nede, kan medføre en risiko for, at brugere ikke kan få adgang til et servernetværk eller logge ind på et program, kan brugerne ikke åbne en session på en enhed eller ikke kunne få tilladelse til at bruge en ret i en forretningsproces. For at løse den slags situationer er formålet med denne artikel at opsætte miljøet vist nedenfor.

Zevenet vil dele RADIUS-protokolmeddelelserne mellem alle RADIUS-serverne, enten de er på forskellige eller lokale websteder. I de følgende afsnit forklarer vi konfigurationen af ​​denne type miljøer, de avancerede sundhedstjek for RADIUS-tjenester og sikkerhedsudfordringerne i denne protokol.

RADIUS Virtual Service Configuration

RADIUS-protokollen er baseret på UDP-pakker, så konfigurationen af ​​et pålideligt RADIUS-miljø er bygget med en LSLB gård med L4xNAT profil på lag 4, porte 1812 og 1813, protokol type UDP og foretrukket DNAT for at få gennemsigtighed og få klienten IP på bagsiden (selv om NAT skal også fungere perfekt).

I boksen Reparation, er det ikke nødvendigt med udholdenhed som standard, medmindre der er behov for klæbeevne mellem klientradius-serveren.

Hvis RADIUS bruges via TCP i stedet for UDP, kan den ændres i feltet protokoltype. Det kunne også indstilles ALLE protokoller for at tillade både TCP og UDP på ​​samme tid fra samme virtuelle IP.

Endelig skal du konfigurere backends uden konfigurerede porte (da det bruger destinationsporten til klientforbindelsen) og teste forbindelsen. Når den virtuelle RADIUS-tjeneste er konfigureret med succes, kan vi indstille den avancerede sundhedstjek for denne service.

RADIUS Advanced Health Check Konfiguration

En avanceret check er inkluderet i Zevenet med navn check_radius under standardmappen / Usr / local / zenloadbalancer / app / libexec /.

Hjælpen fra denne kommando kan nævnes:

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.

Lad os først kontrollere, om det fungerer korrekt ved at udføre følgende eksempelkommando (brug venligst dine egne radiusklientkonfigurationsparametre fra 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>

Testen udføres fra Zevenet-apparatet til en bestemt RADIUS-server med en dummy-brugervalidering og eventuelt en klientkonfigurationsfil til specifikke klientparametre. Lad os teste kommandoen og derefter, når vi får OK fra serveren og FIASKO når det er nede, kan vi konfigurere den avancerede sundhedstjek i Reparation del af vores netop oprettede virtuelle service.

Glem ikke at bruge HOST token, når du konfigurerer den avancerede sundhedskontrol i Zevenet som nedenfor.

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

Se nedenfor Reparation sektion konfiguration.

RADIUS sikkerhedsindstillinger

RADIUS-protokollen har traditionelt brugt MD5-algoritmer til autentificering pr. Pakke og kontrol af integritet over UDP. Da disse to ikke giver nogen sikkerhedskryptering og beskyttelse, er flere tilgange blevet undersøgt.

Implementeringer af RADIUS over IPsec or Internet Protocol Security har været vidt udbredt, men der er nogle vanskeligheder ved denne mulighed, da applikationslaget ikke er opmærksom på sikkerhedspolitikkerne, da det er implicit i netværkslaget. For at bruge denne tilgang med Zevenet kræves der en vis manuel konfiguration, da den endnu ikke er integreret.

Specifikationen af DTLS or Datagram Transport Layer Security giver mulighed for at levere kryptering, overvåge og kontrollere sikkerhedspolitikkerne for sådan trafik.

En anden mulighed ville være RADIUS over TLS der giver TCP kapacitet til pålidelighed og in-order transport lag.

For disse slags tilgange, den IANA har oprettet en officiel post for RadSec (RADIUS Security) for at bruge UDP 2083 port til RADIUS / TLS implementeringer.

En anden mulighed ville være at forbedre fordøjelses- og godkendelseslaget med EAP (Extensible Authentication Protocol), der ikke anvendes i link etableringslaget, men under forbindelsesautentificeringsfasen, idet man undgår brug af MD5 svage fordøjelser.

Derudover kan RADIUS-tjenesterne med Zevenet beskyttes med IPDS-modulet mod ondsindede pakker og værter, DoS-angreb, brutale kraftforsøg og meget mere.

RADIUS Proxy-funktioner

Hvis flere RADIUS-servere er implementeret på tværs af forskellige websteder, ville det være interessant at videresende klientforbindelsen til det websted, der administrerer deres godkendelses-, autorisations- og regnskabsdata. I øjeblikket understøtter Zevenet ikke RADIUS proxy-funktioner, men det er planlagt at blive inkluderet snart. Ser frem til den seneste udvikling!

Nyd dine højt tilgængelige og skalerbare netværkstilgangstjenester!

Del på:

Dokumentation i henhold til GNU Free Documentation License.

Var denne artikel til hjælp?

Relaterede artikler