Көптөгөн командалардын иштеген веб-кирүүсү жана ошол эле таблицадагы ар бир сырсөздү четке каккан 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

Аккаунт аутентификациясы авторизацияны да чечпейт. Топ мүчөлүгү, түзмөктүн абалы жана тармактык уруксат колдонуучу талап кылынган инсандыкты далилдегенден кийин да ачык салыштырууну талап кылат. Мыкты аутентификацияланып, эч нерсеге уруксат бербеген туташуу — саясаттын жыйынтыгы, ыкманын кемчилиги эмес.

Тектеш макалалар