Неважеће тајне су проблем контејнера, а не правило за лозинке
Одбијени акредитив можда никада није стигао до пролаза. Прво упоредите контејнер уноса, фазу провере и сам налог.
Када се појави „invalid secrets“, то обично води ка једном закључку: VPN не воли интерпункцију. Тај закључак је обично погрешан, јер порука често долази из локалне обраде пре него што је било који пролаз погледао налог. Два решења преносе исту лозинку, графичко поље и датотека акредитива, и отказују на различитим местима. Упоредите контејнере пре него што поједноставите лозинку која је све време била исправна.
Грешка настаје пре пролаза
Локална провера, закључана остава тајни, недостајући агент и оштећена датотека акредитива стварају отказе које корисник доживљава као једно одбијање. Ниједан од њих не укључује сервер за проверу идентитета. Одбијање самог пролаза је посебан догађај и обично долази са другачијом поруком и другачијим временом. Догађа се након што тунел постоји и акредитиви су пренети.
Дакле, прво питање није који су знакови дозвољени, већ где се покушај зауставио. Клијент који никада није отворио везу није ни од кога одбијен. Запишите фазу коју сте приметили, јер сваки даљи корак зависи од те класификације.
Разлика мења и то ко то поправља. Проблем контејнера припада уређају и његовом власнику, док одбијање налога припада ономе ко управља позадинским системом за проверу идентитета.
Упоредите контејнере, а не знакове
Графичко поље за лозинку, запис у привеску за кључеве, дволинијска датотека акредитива и тајна за аутоматизацију носе исту вредност у другачијем омоту. Омот има своја правила и управо та правила обично попусте. Вредност је ретко проблем; проблем је пренос вредности. Држите две идеје одвојено и дијагноза ће бити краћа.
| Где се вредност зауставља | Шта видите | Шта проверавате | Ко поправља |
|---|---|---|---|
| Графичко поље или управљани профил | Порука о провери пре него што се било која веза отвори | Изабрани начин провере идентитета и да ли поље садржи тајну или корисничко име | Власник уређаја или аутор профила |
| Привезак за кључеве или агент за тајне | Захтев који се стално враћа или грешка агента | Да ли је агент откључан и има ли запис за овај профил | Корисник који је власник привеска за кључеве |
| Дволинијска датотека акредитива | Захтев за лозинку која је већ достављена | Број линија, редослед линија и да ли постоји завршни нови ред | Онај ко је датотеку направио |
| Аргумент љуске или окружење | Ради интерактивно, али отказује у аутоматизацији | Да ли је љуска вредност проширила, скратила или забележила | Онај ко је написао аутоматизацију |
Званичне опције клијента 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-документом пуним проширења љуске. Оба могу да преобликују знакове пре него што стигну у датотеку, а резултујући отказ изгледа као одбијање VPN-а, јер је лозинка на диску заиста другачија од оне коју знате. Ако сумњате на то, упоредите дужину датотеке у бајтовима са очекиваном вредношћу, без штампања саме тајне. Разлика од једног или два бајта је потпис незгоде са навођењем.
Прочитајте фазу из прве грешке
Задржите прву конкретну поруку из једног покушаја, а затим је класификујте. Грешка локалне провере, недостајући приватни кључ, недоступан агент за тајне и неуспех провере на пролазу су четири различита резултата са четири различита власника. Само се један од њих односи на налог.
Ако пролаз заиста одбија исправно достављен акредитив, проверите налог, позадински систем за проверу идентитета и сваки захтевани изазов са администратором. Општи неуспех провере не именује забрањени знак.
Вратите одобрену вредност кроз исправан механизам, уместо да је сводите на слова и цифре. Политика лозинки припада оператеру, а заобилазно решење које је тихо савлада није поправка. Оно и скрива прави дефект од следеће особе, која ће наићи на исту грешку са слабијом лозинком и без боље идеје.