Жарамсыз құпия — бұл контейнер мәселесі, құпиясөз ережесі емес
GUI өрісі, кілт сақтағышы, тіркелгі файлы немесе автоматтандыру ортасы: бірдей құпиясөз әр конвертте әр жерде бұзылады. Құпиясөзді жеңілдетпей тұрып, әрекет қайда тоқтағанын анықтаңыз.
«invalid secrets» деген хабарды көргенде әдетте бір қорытынды жасалады: VPN тыныс белгілерін ұнатпайды. Бұл қорытынды әдетте қате, өйткені хабар шлюз тіркелгіге қарамай тұрып, жергілікті өңдеуден шығады. Бірдей құпиясөзді екі шешім жеткізеді, графикалық өріс және тіркелгі деректерінің файлы, олар әр жерде сәтсіздікке ұшырайды. Әуелден дұрыс болған құпиясөзді жеңілдетудің орнына, контейнерлерді салыстырыңыз.
Қате шлюзге дейін шығады
Жергілікті тексеру, құлыпталған құпия қоймасы, жоқ агент және бүлінген тіркелгі файлы, бәрі пайдаланушыға бір ғана бас тарту ретінде көрінетін сәтсіздіктер туғызады. Олардың ешқайсысы аутентификация серверіне қатысты емес. Шлюздің өз бас тартуы бөлек оқиға және әдетте басқа хабармен, басқа уақытта келеді. Ол туннель пайда болып, тіркелгі деректері жіберілгеннен кейін болады.
Сондықтан бірінші сұрақ қандай таңбалар рұқсат етілгені емес, әрекет қай жерде тоқтағаны. Ешқашан байланыс ашпаған клиентті ешкім қабылдамаған. Байқаған кезеңіңізді жазып алыңыз, өйткені кейінгі қадамдар сол жіктеуге тәуелді.
Бұл айырмашылық кімнің түзететінін де өзгертеді. Контейнер мәселесі құрылғы мен оның иесіне тиесілі, ал тіркелгінің бас тартуы аутентификация бэкендін басқаратын адамға тиесілі.
Таңбаларды емес, контейнерлерді салыстырыңыз
GUI құпиясөз өрісі, кілт сақтағышындағы жазба, екі жолды тіркелгі файлы және автоматтандыру құпиясы, әрқайсысы бірдей мәнді басқа конвертте тасиды. Конверттің өз ережелері бар, әдетте сол ережелер бұзылады. Мән сирек мәселе болады; мәнді тасымалдау мәселе. Екі ұғымды бөлек ұстасаңыз, диагностика қысқарады.
| Where the value stops | What you see | What you check | Who owns the fix |
|---|---|---|---|
| GUI field or managed profile | A validation message before any connection opens | The selected authentication mode and whether the field holds the secret or the username | The device owner or the profile author |
| Keychain or secret agent | A prompt that keeps reappearing, or an agent error | Whether the agent is unlocked and holds an entry for this profile | The user who owns the keychain |
| Two-line credential file | A prompt for a password that was already supplied | Line count, line order and whether a trailing newline is present | Whoever generated the file |
| Shell argument or environment | Works interactively but fails in automation | Whether the shell expanded, trimmed or logged the value | Whoever wrote the automation |
Community OpenVPN 2.6 клиент опциялары auth-user-pass үшін сол екі жолды файлды сипаттайды, оның ішінде құпиясөз жолы жоқ кездегі әрекет: клиент сұрайды. Осы бір деталь «мен беріп қойған құпиясөзді неге сұрайды» деген есептердің бір тобын түсіндіреді. Ол сондай-ақ екінші жолдың бос болуы зиянсыз пішімдеу таңдауы емес, мағыналы күй екенін айтады.
Дәйексөз белгілері тағы бір қабат: қарапайым тіркелгі файлының ішіндегі тырнақшалар дерек ретінде сақталады, ал қабықша оларды бағдарлама бірдеңе көрмей тұрып алып тастайды. Бір таңба бір жерде зиянсыз, екіншісінде құрылымдық. Кесте клиент қай контейнерді қолданғанын айта алмайды, сондықтан жол таңдамас бұрын клиенттің өз конфигурациясын оқыңыз.
Жол үзілімдері де құрылымдық. Жолдармен бөлінген өрістері бар файл жаңа жолды қамтитын мәнді таси алмайды, және бұл форматтың шектеуі, құпиясөз күші туралы үкім емес. Құпияны қолдан жасалған файлға сыю үшін қысқартудың орнына, орналастыру қолдайтын жеткізу тетігін пайдаланыңыз.
Тіркелгі файлын қабықша зақымынсыз құрыңыз
Ең қауіпсіз жергілікті жол құпияны қабықша тарихынан да, процестің аргумент тізімінен де шығарады. Екі өрісті де интерактивті түрде оқып, содан кейін клиент күтетін екі жолды жазыңыз. Қалғанын шолуға қолайлы конфигурация файлында қалдыруға болады.
read -r VPN_USER
read -rs VPN_PASS
printf '%s\n%s\n' "$VPN_USER" "$VPN_PASS" > /etc/openvpn/client/creds
chmod 600 /etc/openvpn/client/creds
openvpn --config /etc/openvpn/client/office.conf --auth-user-pass /etc/openvpn/client/creds
Алғашқы екі команда пайдаланушы атын, содан кейін құпиясөзді көрсетпей оқиды, үшіншісі екі жолды жазады, төртіншісі файлды шектейді, соңғысы клиентті сол файлмен іске қосады. read -r кері еңіс белгілерін сақтайтынын ескеріңіз, дәл осы детальды қалдырсаңыз, жұмыс істеп тұрған құпиясөз сәтсіздікке айналады.
Файлды тырнақшасыз айнымалымен немесе қабықша кеңейтулеріне толы here-document-пен құрудан аулақ болыңыз. Екеуі де таңбаларды файлға жетпей тұрып өзгертуі мүмкін, ал нәтижесіндегі сәтсіздік VPN бас тартуына ұқсайды, өйткені дискідегі құпиясөз шынымен сіз білетін құпиясөзден өзгеше. Күдіктенсеңіз, құпияны өзін көрсетпей-ақ файлдың байт ұзындығын күтілетін мәнмен салыстырыңыз. Бір-екі байт айырмашылық дәйексөз апатының белгісі.
Кезеңді бірінші қатеден оқыңыз
Бір әрекеттен шыққан бірінші нақты хабарды сақтап, оны жіктеңіз. Жергілікті тексеру қатесі, жоқ жеке кілт, қолжетімсіз құпия агенті және шлюз аутентификациясының сәтсіздігі, бұл төрт түрлі нәтиже және төрт түрлі жауапты адам. Олардың тек біреуі тіркелгіге қатысты.
Егер шлюз дұрыс жеткізілген тіркелгі деректерін шынымен қабылдамаса, әкімшімен бірге тіркелгіні, аутентификация бэкендін және қажетті challenge-ді тексеріңіз. Жалпы аутентификация сәтсіздігі тыйым салынған таңбаны атамайды.
Бекітілген мәнді әріптер мен цифрларға азайтудың орнына дұрыс тетік арқылы қалпына келтіріңіз. Құпиясөз саясаты операторға тиесілі, оны үнсіз бұзатын айналма жол түзету емес. Ол нақты ақаулықты келесі адамнан жасырады, ол адам әлсіз құпиясөзбен сол қатені кездестіріп, жақсырақ шешімге ие болмайды.