VPN-login går i stå efter en RADIUS Access-Challenge
Access-Challenge er hverken succes eller endelig afvisning. Se hvordan NAS, gateway og klient skal bære det næste svar i samme udveksling.
Din adgangskode er rigtig, VPN-loginnet fejler alligevel, og RADIUS-serveren har måske gjort præcis, hvad den blev bedt om. Gatewayen har sandsynligvis modtaget en Access-Challenge, ikke vist noget brugbart og derefter timet ud eller behandlet svaret som en afvisning. Fra klientsiden ser det ud som dårlige legitimationsoplysninger eller en brudt tunnel. Årsagen ligger normalt midt i en samtale, som ingen har fanget.
Ét login, to RADIUS-udvekslinger
Når backenden vil have en anden faktor, svarer den ikke på den første anmodning med accept eller afvisning. Den svarer med kode 11 og venter på brugerens næste svar, som gatewayen skal sende tilbage i en opfølgende anmodning. Den opfølgning hører til den samme godkendelsessamtale, ikke til et nyt loginforsøg.
I et fungerende opsætning ser brugeren en anden prompt: først adgangskoden, derefter en engangskode, eller en enkelt kombineret prompt, hvis operatøren har dokumenteret en. I et brudt opsætning vises den anden prompt aldrig, og loginnet fejler bare.
Det er symptomet, der skal jagtes, og det er nemt at bekræfte fra klientsiden alene: hvis VPN-klienten beder om præcis én hemmelighed og derefter afviser en adgangskode, du ved er gyldig, sluttede udvekslingen sandsynligvis ved udfordringen.
Hvad udfordringen faktisk bærer
RADIUS-specifikationen beskriver kode 11 i afsnit 4.4 og tillader to attributter, der er vigtige her. Reply-Message indeholder tekst beregnet til brugeren, og State indeholder en uigennemsigtig værdi, som serveren vil have sendt tilbage. NAS’en må ikke fortolke State, kun returnere den uændret.
Den opfølgende anmodning bruger et nyt Identifier og en ny Request Authenticator, og den skal bære den samme State-værdi plus brugerens svar. Serveren matcher den med den ventende udfordring via den State, og derfor kan en gateway, der genskaber eller dropper attributten, ikke fuldføre ceremonien. Response authenticator i hvert svar skal også validere, ellers bør NAS’en kassere pakken.
Afsnit 4.4 tilføjer den detalje, der forklarer de fleste tavse fejl: en NAS, der ikke kan understøtte udfordringer, behandler Access-Challenge som en afvisning. Hvis din gateways VPN-tjeneste er ældre end den understøttelse eller udelader den, bliver backendens anmodning om en anden faktor til et øjeblikkeligt «godkendelse mislykkedes» uden nogen prompt.
Hvor den kædede anmodning går tabt
Den første mistænkte er promptstien snarere end legitimationsoplysningen. En portal, der viser et OTP-felt til weblogin, gør det ikke automatisk for VPN-tjenesten, og nogle gateways sender kun en udfordring videre til klienter, der annoncerer evnen. Test den samme konto på begge indgange; hvis portalen virker og VPN’en ikke, kigger du på overdragelsen, ikke på tokenet.
Inputformatet er den anden mistænkte. At sammenkæde adgangskode og kode uden leverandørens dokumenterede separator, eller at lade en gemt legitimationsoplysning genafspille en gammel kode, fejler på en måde, der ligner en forkert adgangskode. Brug operatørens dokumenterede separate prompt eller kombinerede format, og opfind aldrig en separator.
Versionsspecifikke fejl findes, men en liste over rettede versioner fra for år tilbage er ikke en diagnose for nutidens installation. Læs release notes for den software, du faktisk kører, og hold det observerede udvekslingstrin som dit bevis.
Følg et enkelt forsøg fra ende til anden
Genskab det én gang med fejlfinding på serversiden slået til, og hold alle andre sessioner ude af optagevinduet:
$ sudo radsniff -i eth0 -x -f 'udp port 1812'
$ sudo freeradius -X
$ radtest alice 'password' 127.0.0.1 0 testing123
I outputtet skal du lede efter samtales form frem for en enkelt linje. En første Access-Request med Identifier 3, en Access-Challenge, der bærer State, derefter en anden Access-Request med Identifier 4, der gentager denne State og inkluderer brugerens svar. Hvis den anden anmodning mangler, fulgte gatewayen aldrig op. Hvis den ankommer uden State, kan serveren ikke matche den med den ventende udfordring og vil normalt afvise.
Slør legitimationsoplysninger, tokens og unødvendige identitetsdata, når du deler sporet, og korrelér hændelser fra det ene forsøg i stedet for at blande gentagelser fra flere browserfaner. Tidsstempler er din ven her; en udfordring, der ankommer, efter at klienten har givet op, ser ud som en afvisning for brugeren og som et langsomt svar i loggen.
Den ønskede sluttilstand er en fuldført, autoriseret samtale efterfulgt af den tilsigtede tjenesteadgang. Et svar, der ankommer fra RADIUS-serveren, beviser meget mindre end det.