VPN кіруі RADIUS пен сіздің сәйкестендіру провайдеріңізге қалай жетеді
VPN кіруді клиенттен қақпаның RADIUS сұрауына, оның артындағы сәйкестендіру провайдеріне және қабылдаудан кейін қолданылатын саясатқа дейін қадағалаңыз.
Өткен аптада пайдаланушы VPN-ге кіре алды, бірақ ештеңе шешілмейтін желіге тап болды. Клиент қосылған деді, қақпа журналы Access-Accept деді, ал сәйкестендіру тобы тіркелгінің дұрыс екенін айтты. Кіру жұмыс істеген; оның артындағы авторизация істемеген. VPN кіру сәтсіз болғанда, мен сұрау шын мәнінде жүретін жолмен жүремін — клиент, қақпа, RADIUS сервері, сәйкестендіру провайдері — және жауабы келесісімен үйлеспейтін бірінші қадамда тоқтаймын.
Клиент ешқашан RADIUS тілінде сөйлемейді
Ноутбуктегі қолданба не көрсетсе де, оның бірінші қадамы VPN протоколы: IKEv2, OpenVPN, WireGuard немесе TLS негізіндегі клиент. RADIUS бұл алмасуда көрінбейді. Клиент қақпа алдында сертификатпен, пайдаланушы аты мен құпия сөзбен немесе туннель баптауында тасымалданатын EAP әдісімен аутентификацияланады.
Бұл журналдарды оқығанда маңызды, өйткені пайдаланушы көретін жалпы аутентификация қатесін қақпа басқа нәрсемен сөйлескеннен кейін жасайды. Егер клиент қақпаға ешқашан жетпесе, жөндеуге RADIUS сұрауы жоқ, ал RADIUS серверінде өткізілген бір сағат босқа кетеді. Backend-ке тимес бұрын туннельдің мүлде көтерілгенін растаңыз.
Қақпа — RADIUS клиенті
Туннель баптауы тіркелгі деректерін тексеру қажет нүктеге жеткенде, қақпа желілік қатынау серверіне айналады. Ол Access-Request құрады: User-Name, құпия сөз немесе EAP жүктемесі, NAS-IP-Address немесе NAS-Identifier, және әдіс талап еткенде Message-Authenticator. Сұрау әдепкі бойынша UDP 1812-ге, ал есеп 1813-ке жіберіледі. Ескі орналастырулар әлі де 1645 пен 1646-ны пайдаланады, сондықтан бір жұпқа арналған firewall ережесі көптеген үнсіз сәтсіздіктерді түсіндіреді.
Екі жақ бір құпияны бөліседі және ол пайдаланушы тіркелгісі емес. Ол алмасуға қол қояды және әрбір жауап соған қарсы тексеріледі. Құпияны екі жақта әртүрлі баптасаңыз, сервер қате құпия деп жауап бермейді — ол сұрауды тастайды немесе жауап тексеруден өтпейді, сондықтан қақпа уақыттың біткенін хабарлайды. Қате құпия мен өлі сервер қақпадан бірдей көрінеді, сондықтан каталогты кінәламас бұрын қадамды клиент құралымен тексеремін.
Протокол шағын және ескі — RFC 2865 аутентификация алмасуын анықтайды — бірақ ол тасымалдайтын атрибуттар VPN саясатының көбісінің негізі.
# ask the RADIUS server directly, from the gateway host
radtest alice 'test-password' 127.0.0.1 0 testing123
# watch the exchange the gateway actually sends
tcpdump -ni any -c 20 'udp port 1812'RADIUS сервері тек сәйкестендіру провайдерінің алдыңғы жағы болуы мүмкін
Адамдар RADIUS пен сәйкестендіру провайдері туралы бір қорап деп айтады. Көбінесе олай емес. RADIUS сервері Access-Request алып, жауап бермес бұрын басқа нәрседен сұрайды — LDAP немесе Kerberos арқылы Active Directory, жергілікті пайдаланушы файлы немесе сыртқы қызмет. LDAP немесе krb5 модулі бар FreeRADIUS, Windows NPS және Cisco ISE осы орында тұр.
Айырмашылық қайда қарау керектігін шешеді. Қабылданбаған құпия сөз — RADIUS жеткізетін сәйкестендіру провайдерінің жауабы. Уақыттың бітуі әдетте RADIUS-тан каталогқа дейінгі бөлік: мерзімі өткен bind тіркелгісі, қолжетімсіз каталог немесе қате backend-ке жіберілген сұрау. Егер пайдаланушы атында домен суффиксі болса, сервер соған қарай маршруттауы мүмкін, және CORP\alice мен [email protected] ретінде жіберілген сол тіркелгі әртүрлі жерге түсуі мүмкін. Windows NPS-те Security журналы рұқсат үшін 6272, бас тарту үшін 6273 жазады, бұл шешімнің NPS-тен келгенін білдіреді.
Сәтсіздікті оны тудырған қадамнан оқыңыз
Бір қосыла алмаймын хабарламасы төрт түрлі сәтсіздікті қамтиды. Бірдеңені өзгерту алдында симптомды оны тудырған қадаммен сәйкестендіріңіз.
| What you see | Where it comes from | First check |
|---|---|---|
| Gateway timeout, no reply | Shared secret mismatch, UDP 1812 blocked, unknown NAS, wrong server address | tcpdump at the gateway; radtest from the gateway host |
| Immediate reject | Credentials, account state, domain suffix, RADIUS policy | NPS 6273 or the FreeRADIUS auth log; test the account directly |
| Repeated challenge or MFA loop | Access-Challenge state not returned, or a token that expired mid-flow | Client prompt timing and the State attribute in debug output |
| Accept, then no access | Authorization attributes unmapped, wrong pool, route or ACL policy | Gateway policy and the attributes in the Access-Accept |
Соңғы жол — адамдарды қате топқа жіберетін жол. Access-Accept тіркелгі деректері қабылданғанын білдіреді; бұл қақпаның пайдаланушыны дұрыс pool-ға қойғанын немесе маршруттарды итергенін білдірмейді. Топ атрибуттары тек қақпа саясаты оларды оқығанда маңызды. Мен дұрыс кірудің қонақ pool-ына түскенін көрдім, өйткені топтарды салыстыру RADIUS жағында қақпа тексеретін атрибуттан өзге атрибутқа бапталған еді.
Бір кіруді басынан аяғына дейін қадағалаңыз
Бір сынақ тіркелгісі мен бір қақпа таңдаңыз, содан кейін сол әрекетті төрт нүктеде бақылаңыз. RADIUS жағында жөндеу жұмысын бастаңыз — freeradius -X сұрауды және ол тиетін әрбір модульді басып шығарады — қақпаның аутентификация журналын қадағалаңыз және UDP алмасуы үшін tcpdump іске қосыңыз. Бір рет қосылып, төрт ізді ретімен оқыңыз.
Көргіңіз келетіні — келісім: қақпа күткен пайдаланушы туралы сұрады, RADIUS сервері күткен backend-ті таңдады, сол backend шешім қайтарды, ал жауаптағы атрибуттар қақпа қолданатын саясатқа сай. Іздер алғаш айырмашылық танытатын жер — сіздің ақау сызығыңыз. Егер жауапта топ атрибуты болмаса, мәселе VPN профилінде емес, RADIUS жағында; егер атрибут бар болып, қақпа оны елемесе, мәселе қақпа саясатында.
Сонда болған кезде бір қауіпсіздік ескертуі. Ортақ құпия алмасуды қорғайды, бірақ атрибуттардың көбін шифрламайды. Егер қақпа мен RADIUS сервері әртүрлі сегменттерде болса, сол қадамды TLS арқылы RADIUS-қа немесе жеке жолға қойыңыз. Шифрланған пайдаланушы туннелі backend байланысы туралы ештеңе айтпайды.
Билетті жаппас бұрын төрт нәрсені растаңыз. Қақпа RADIUS серверіне шын мәнінде бапталған порт арқылы жете алады. Ортақ құпия екі жақта сәйкеседі. RADIUS сервері қақпа жіберетін пайдаланушы атының нақты нысанын шешеді. Қабылдау қақпа саясатына қажет атрибуттарды тасымалдайды. Төртеуі де орындалса, әлі сәтсіз кіру — аутентификация емес, қақпа саясатының мәселесі.