Көптеген топтың жұмыс істейтін веб-кірісі және сол кестенің әрбір құпиясөзін қабылдамайтын VPN-і бар. Веб-қолданба өзі есептеген хэшті салыстырады, ал туннель клиенттен құпияны иеленгенін сервер тексере алатындай дәлелдеуді талап етеді. Бұл сақталған материалға қойылатын әртүрлі талаптар. Осы екеуінің арасындағы алшақтықта мұндай жобалардың көбі тоқтап қалады.

Алдымен әдіс, содан кейін схема

Кез келген схемаға қарамас бұрын таңдалған әдіс қандай дәлел талап ететінін жазып алыңыз. Сынақ-жауап әдісіне сервер күтілетін жауапты есептей алатын материал керек, бұл іс жүзінде құпиясөз немесе үйлесімді туынды пішін дегенді білдіреді. Қорғалған туннель ішінде құпиясөзді тасымалдайтын әдіске тексеретін жақта құпиясөздің өзі керек. Әдіс құжатын клиент конфигурациясы үшін емес, тексеретін жақтың талабы үшін оқыңыз, өйткені клиент талаптары әдетте жеңіл бөлігі.

Заманауи веб-фреймворк жасаған тұзды хэш екеуін де бермейді. Ол бір нақты салыстыруды тексереді және шыққан құпиясына қайта айналдыру мүмкін емес.

Сынақ-жауап тұзды хэшті қолдана алмайды

MSCHAPv2 — сынақ-жауап алмасуы, сондықтан сервер құпиясөзді ешқашан алмайды және сақталған жолды салыстыра алмайды. Ол күтілетін жауапты өзінде бар материалдан шығаруы керек, сондықтан үйлесімді сақталған пішіндер соншалықты тар. Әр пайдаланушыға тұзы бар bcrypt немесе Argon2 мәні алмасуды толығымен жоққа шығаратындай бір бағытты. Төмендегі кесте әдіс атауынан емес, сақтау пішінінен басталады, өйткені жауапты сақтау пішіні шешеді.

What the store holdsWhat that material can verifyWhat has to change
A bcrypt or Argon2 value with a per-user saltnothing challenge-response can use, and not the password eitherre-enrol the users, or place a verifying service in front
An unsalted NT-hashMSCHAPv2, and inner PAP through a TLS tunnelnothing, as long as that store is the verifier
A client certificate with a revocation listEAP-TLS onlymove enrolment and revocation to the PKI owner

strongSwan үшін SQL плагинінің құжаттамасы конфигурация мен тіркелгі деректеріне өз схемасын анықтайды, ал жоба бұл плагинді әлі эксперименттік деп белгілейді. Онда ештеңе қолданбаның пайдаланушылар кестесіне бейімделмейді және сақталған мәнді қай хэштеу схемасы жасағанын болжамайды. Сондықтан шынайы нұсқалар — шлюз қолдана алатын қоймаға көшу немесе қолданыстағы қойманың алдында алмасуды орындай алатын аутентификация қызметі. Қалғанының бәрі ішінде жасырын болжамы бар қосқыш.

RADIUS жұмысты жылжытады, талапты емес

EAP-ны RADIUS серверіне тапсыру тексерудің орнын өзгертеді және әдетте аудит ізін жақсартады. Ол бір бағытты хэштен құпиясөзді қалпына келтірмейді, сондықтан аутентификация қызметіне өзі аяқтайтын әдіспен үйлесімді материал әлі де керек. Топтар мұны RADIUS жолын салып, екінші жақта сол қабырғаға тап болғаннан кейін біледі.

RADIUS сервері үйлесімді тіркелгі деректері бар каталогты оқи алатын жерде шешім жұмыс істейді және VPN шлюзі қарапайым күйінде қалады. Оқи алмайтын жерде адал жауап — тағы бір қосқыш емес, тіркеуді өзгерту. Беру және қайтарып алу идентификацияны иеленген адамға тиесілі, сондықтан қолдау көрсетілетін синхрондау процесінсіз көшірілген кесте бірыңғай кіру емес, екінші тіркелгі деректерінің өмірлік циклі. Ол біреу құпиясөзді тек бір жерде қалпына келтірген алғашқы сәтте ажырайды, және бұл ажырау екі жүйеде де бар тіркелгі екеуінде де басқаша әрекет еткенге дейін үнсіз қалады.

Каталогты оқитын тіркелгіні сол оқумен шектеп, оны шлюз өз конфигурациясына қолданатын тіркелгіден бөлек ұстаңыз. Ортақ әкімшілік тіркелгі тек оқуға арналған шешімді әлдеқайда кең әсер ету радиусына айналдырады.

Тіркелгі қайда тұруы керек

Материал мәселесі шешілген соң екі архитектура қалады. Шлюз өзі ғана оқитын шағын тіркелгі деректері қоймасын иелене алады немесе корпоративтік каталогтың алдында тұрған аутентификация қызметіне тапсыра алады.

Біріншісін ойластыру оңайырақ және пайдаланушы үшін нашар, өйткені оған екінші құпиясөзді ұстау қалады. Екіншісі бір идентификацияны сақтайды және енді біреу қосылмас бұрын жұмыс істеуі тиіс қызметке тәуелділік қосады. Екеуі де қате емес, бірақ таңдауды шлюз конфигурациясының жанына жазу керек, әйтпесе келесі инженер екіншісі таңдалды деп ойлайды. Не таңдасаңыз да, төмендегі екі команда — өзгертуге дейінгі ағымдағы күйді көрсететін командалар.

mysql -N -e "SELECT id, username FROM vpn_users WHERE active = 1 LIMIT 5" vpn
swanctl --list-conns

Тіркелгі аутентификациясы авторизацияны да шешпейді. Топ мүшелігі, құрылғы күйі және желілік рұқсат пайдаланушы қажетті идентификацияны дәлелдеген соң да айқын сәйкестендіруді талап етеді. Кемелді түрде аутентификацияланып, ештеңеге рұқсат бермейтін байланыс — саясаттың нәтижесі, әдістің ақауы емес.

Қатысты мақалалар