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

Se kategorier

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

7 min læses

Oversigt #

RADIUS or Fjerngodkendelse via opkaldsbrugertjeneste er en netværksprotokol, der giver centraliseret administration af godkendelse, autorisation og kontoføring af brugere og enheder. Den bruges i vid udstrækning af internetudbydere og virksomheder til at kontrollere adgangen til internettet, lokale tjenester og trådløse netværk via WiFi-adgangspunkter osv.

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

RADIUS-meddelelsesprotokol #

Protokolmeddelelserne er baseret på klientanmodning og serverens svarmåde, som vist nedenfor.

1. Klienten sender en Adgangsanmodning til serveren for hver bruger eller enhed, der skal godkendes til serverporten TCP/UDP 1812 (ældre serverversioner ville bruge 1645 også til godkendelse).
2. Serveren svarer i henhold til politikken Adgang-Accepter hvis godkendelsen er tilladt, Adgangsafvisning hvis adgangen ikke er tilladt, eller Adgangsudfordring hvis serveren kræver flere oplysninger for at bestemme adgangen (som en anden validering: PIN-kode, adgangskode, certifikat osv.)

Valgfrit kan klienten og serveren udveksle meddelelser om regnskab, f.eks. Regnskabsanmodning og Regnskabsrespons for at opretholde et unikt sessionsidentifikator.

3. Klienten sender en Regnskabsanmodning til serveren via porten TCP/UDP 1813 til administration af regnskabssessioner (ældre serverversioner ville bruge 1646 også til godkendelse).
4. Serveren svarer med en Regnskabsrespons besked for at bekræfte den nye session.

I et RADIUS-miljø vil en ekstra tjeneste til brugernes databaseadministration være påkrævet, og det er vigtigt at overveje den i forbindelse med høj tilgængelighed, hvilket vil blive behandlet i en anden specifik artikel.

RADIUS load balancing og miljø med høj tilgængelighed #

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

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

Konfiguration af RADIUS Virtual Service #

RADIUS-protokollens natur 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, protokoltype UDP og foretrukket DNAT for at have gennemsigtighed og få klientens IP-adresse på backend-siden (selvom NAT burde også fungere perfekt).

I Det vi er gode til, er der som standard ikke behov for persistens, medmindre der er påkrævet en vis fastspænding mellem klient-radius-serveren.

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

Til sidst skal du konfigurere backends uden konfigurerede porte (da de vil bruge destinationsporten for klientforbindelsen) og teste forbindelsen. Når den virtuelle RADIUS-tjeneste er konfigureret, kan vi indstille den avancerede tilstandskontrol for denne tjeneste.

Konfiguration af RADIUS Advanced Health Check #

En forhåndskontrol er inkluderet i RELIANOID med navn check_radius under standardmappen /usr/local/zenloadbalancer/app/libexec/.

Hjælpen fra denne kommando kan listes:

root@noid5# /usr/local/zenloadbalancer/app/libexec/check_radius --help Tester om en RADIUS-server accepterer forbindelser. Anvendelse: 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] Indstillinger: -h, --help Udskriv detaljeret hjælpeskærm -V, --version Udskriv versionsoplysninger --extra-opts=[section][@file] Læs indstillinger fra en ini-fil. Se https://www.monitoring-plugins.org/doc/extra-opts.html for brug og eksempler. -H, --hostname=ADRESSE Værtsnavn, IP-adresse eller unix-socket (skal være en absolut sti) -P, --port=HELTAL Portnummer (standard: 1645) -u, --username=STRING Brugeren, der skal godkendes -p, --password=STRING Adgangskode til godkendelse (SIKKERHEDSRISIKO) -n, --nas-id=STRING NAS-identifikator -N, --nas-ip-address=STRING NAS IP-adresse -F, --filename=STRING Konfigurationsfil -e, --expect=STRING Svarstreng, der skal forventes fra serveren -r, --retries=HELTAL Antal gange en mislykket forbindelse skal forsøges igen -t, --timeout=HELTAL Sekunder før forbindelsen får timeout (standard: 10) Dette plugin tester en RADIUS-server for at se, om den accepterer forbindelser. Den server, der skal testes, skal angives i kaldet, samt et brugernavn og en adgangskode. En konfigurationsfil kan også være til stede. Formatet for konfigurationsfilen er beskrevet i radiusclient-bibliotekets kildekode. Adgangskodefunktionen udgør et væsentligt sikkerhedsproblem, fordi adgangskoden muligvis kan bestemmes ved omhyggelig overvågning af kommandolinjen i en procesliste. Denne risiko forværres, fordi plugin'et typisk vil blive udført med regelmæssige, forudsigelige intervaller. Sørg for, at den anvendte adgangskode ikke tillader adgang til følsomme systemressourcer.

Lad os først kontrollere, om det fungerer korrekt ved at udføre følgende eksempelkommando (brug venligst dine egne radius-klientkonfigurationsparametre fra RELIANOID):

root@noid5# cd /usr/local/zenloadbalancer/app/libexec/ root@noid5# ./check_radius -H -P -u -p -F

Testen vil blive udført fra RELIANOID apparat til en bestemt RADIUS-server med en dummy-brugervalidering og, eventuelt, en klientkonfigurationsfil for specifikke klientparametre. Lad os teste kommandoen, og når vi får OK fra serveren og den FIASKO når det er nede, kan vi konfigurere det avancerede sundhedstjek i Det vi er gode til del af vores netop oprettede virtuelle tjeneste.

Glem ikke at bruge HOST token ved konfiguration af avancerede sundhedstjek i RELIANOID som vist nedenfor.

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

Se nedenfor Det vi er gode til sektionskonfiguration.

RADIUS-sikkerhedsindstillinger #

RADIUS-protokollen har traditionelt brugt MD5-algoritmer til autentificering pr. pakke og integritetstjek via UDP. Da disse to ikke giver nogen form for sikkerhedskryptering og beskyttelse, er flere tilgange blevet undersøgt.

Implementeringer af RADIUS over IPsec or Internet Protocol Security har været bredt implementeret, men der er nogle vanskeligheder med denne mulighed, da applikationslaget ikke er opmærksom på sikkerhedspolitikkerne, da det er implicit i netværkslaget. At bruge denne tilgang med RELIANOID Det kræver manuel konfiguration, da det ikke er integreret endnu.

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

En anden mulighed ville være RADIUS over TLS der leverer TCP-funktioner med pålidelighed og et ordensrettet transportlag.

For den slags tilgange, IANA har oprettet et officielt indlæg til RadSec (RADIUS-sikkerhed) at bruge UDP 2083 port til RADIUS/TLS implementeringer.

En anden mulighed ville være at forbedre digest- og autorisationslaget med EAP (Udvidelig godkendelsesprotokol) der ikke bruges i linketableringslaget, men under forbindelsesgodkendelsesfasen, hvilket undgår brugen af ​​MD5 svage digests.

Derudover med RELIANOID, RADIUS-tjenesterne kan beskyttes med IPDS-modulet mod ondsindede pakker og værter, DoS-angreb, brute-force-forsøg og meget mere.

RADIUS Proxy-funktioner #

Hvis flere RADIUS-servere er installeret på tværs af forskellige steder, ville det være interessant at videresende klientforbindelsen til det sted, der administrerer deres godkendelses-, autorisations- og regnskabsdata. I øjeblikket, RELIANOID understøtter ikke RADIUS proxy-funktioner, men det er planlagt at blive inkluderet snart. Glæd dig til den seneste udvikling!

Nyd dine adgangstjenester med høj tilgængelighed og skalerbarhed!

📄 Download dette dokument i PDF-format #

    EMAIL: *

    drevet af BetterDocs