Neplatné tajné údaje sú problém kontajnera, nie pravidlo pre heslá
Zamietnutá poverilnica sa možno nikdy nedostala k bráne. Najprv porovnajte vstupný kontajner, fázu overovania a samotný účet.
Keď sa zobrazí „invalid secrets“, zvyčajne to vedie k jednému záveru: VPN nemá rada interpunkciu. Ten záver je zvyčajne nesprávny, pretože správa často pochádza z lokálneho spracovania skôr, než sa na účet pozrela akákoľvek brána. Dve konštrukcie odovzdávajú to isté heslo, grafické pole a súbor s poverilnicami, a zlyhávajú na rôznych miestach. Porovnajte kontajnery skôr, než zjednodušíte heslo, ktoré bolo celý čas v poriadku.
Chyba prichádza pred bránou
Lokálne overenie, uzamknuté úložisko tajných údajov, chýbajúci agent a poškodený súbor s poverilnicami vytvárajú zlyhania, ktoré používateľ zažíva ako jedno zamietnutie. Ani jedno z nich nezahŕňa overovací server. Zamietnutie samotnou bránou je iná udalosť a zvyčajne prichádza s inou správou a iným časovaním. Nastáva po tom, čo existuje tunel a poverilnice boli prenesené.
Prvá otázka teda nie je, ktoré znaky sú povolené, ale kde sa pokus zastavil. Klient, ktorý nikdy neotvoril spojenie, nebol nikým zamietnutý. Zapíšte si fázu, ktorú ste pozorovali, pretože každý ďalší krok závisí od tejto klasifikácie.
Rozlíšenie mení aj to, kto to opraví. Problém kontajnera patrí zariadeniu a jeho majiteľovi, kým zamietnutie účtu patrí tomu, kto prevádzkuje overovací backend.
Porovnávajte kontajnery, nie znaky
Grafické pole na heslo, záznam v kľúčenke, dvojriadkový súbor s poverilnicami a tajný údaj pre automatizáciu nesú tú istú hodnotu v inej obálke. Obálka má svoje pravidlá a práve tie sa zvyčajne pokazia. Hodnota je problémom len zriedka; problémom je jej prenos. Držte tieto dve myšlienky oddelene a diagnostika sa skráti.
| Kde sa hodnota zastaví | Čo vidíte | Čo skontrolovať | Kto to opraví |
|---|---|---|---|
| Grafické pole alebo spravovaný profil | Overovacia správa skôr, než sa otvorí akékoľvek spojenie | Zvolený režim overovania a či pole obsahuje tajný údaj alebo používateľské meno | Majiteľ zariadenia alebo autor profilu |
| Kľúčenka alebo tajný agent | Výzva, ktorá sa stále vracia, alebo chyba agenta | Či je agent odomknutý a má záznam pre tento profil | Používateľ, ktorému patrí kľúčenka |
| Dvojriadkový súbor s poverilnicami | Výzva na zadanie hesla, ktoré už bolo zadané | Počet riadkov, poradie riadkov a či je prítomný koncový znak nového riadku | Ten, kto súbor vytvoril |
| Argument shellu alebo premenná prostredia | Funguje interaktívne, ale zlyháva v automatizácii | Či shell hodnotu expandoval, orezal alebo zaprotokoloval | Ten, kto napísal automatizáciu |
Oficiálne možnosti klienta Community OpenVPN 2.6 popisujú tento dvojriadkový súbor pre auth-user-pass, vrátane správania, keď riadok s heslom chýba: klient sa namiesto toho opýta. Tento jediný detail vysvetľuje skupinu hlásení „pýta sa na heslo, ktoré som už zadal“. Tiež hovorí, že prázdny druhý riadok je zmysluplný stav, nie neškodná voľba formátovania.
Citovanie je ďalšia samostatná vrstva: úvodzovky v obyčajnom súbore s poverilnicami sa ukladajú ako dáta, kým shell ich odstráni skôr, než program čokoľvek uvidí. Ten istý znak je na jednom mieste neškodný a na inom štrukturálny. Tabuľka vám nepovie, ktorý kontajner váš klient použil, preto si pred výberom riadka prečítajte vlastnú konfiguráciu klienta.
Zlomy riadkov sú tiež štrukturálne. Súbor s riadkovo oddelenými poľami nemôže niesť hodnotu obsahujúcu nový riadok, a to je obmedzenie formátu, nie úsudok o sile hesla. Použite mechanizmus doručenia podporovaný nasadením namiesto orezávania tajného údaja, aby sa zmestil do improvizovaného súboru.
Vytvorte súbor s poverilnicami bez poškodenia shellom
Najbezpečnejšia lokálna cesta drží tajný údaj mimo histórie shellu a mimo zoznamu argumentov procesu. Prečítajte obe polia interaktívne a potom zapíšte dva riadky, ktoré klient očakáva. Všetko ostatné môže zostať v konfiguračnom súbore, ktorý sa dá ľahko skontrolovať.
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
Prvé dva príkazy načítajú používateľské meno a potom heslo bez toho, aby ho zobrazili, tretí zapíše oba riadky, štvrtý obmedzí súbor a posledný spustí klienta s týmto súborom. Všimnite si, že read -r zachováva spätné lomítka, čo je presne ten druh detailu, ktorý pri vynechaní zmení fungujúce heslo na zlyhávajúce.
Vyhnite sa vytváraniu súboru pomocou neocitovanej premennej alebo here-dokumentu plného expanzií shellu. Obe môžu zmeniť znaky skôr, než sa dostanú do súboru, a výsledné zlyhanie vyzerá ako zamietnutie VPN, pretože heslo na disku je skutočne iné než to, ktoré poznáte. Ak máte podozrenie, porovnajte bajtovú dĺžku súboru s očakávanou hodnotou, bez vypísania samotného tajného údaja. Rozdiel jedného alebo dvoch bajtov je podpis nehody s citovaním.
Prečítajte fázu z prvej chyby
Zachovajte prvú konkrétnu správu z jedného pokusu a potom ju klasifikujte. Chyba lokálneho overenia, chýbajúci súkromný kľúč, nedostupný tajný agent a zlyhanie overenia na bráne sú štyri rôzne výsledky so štyrmi rôznymi vlastníkmi. Iba jeden z nich sa týka účtu.
Ak brána skutočne zamieta správne doručený údaj, skontrolujte účet, overovací backend a prípadnú požadovanú výzvu s administrátorom. Všeobecné zlyhanie overenia nepomenúva zakázaný znak.
Obnovte schválenú hodnotu správnym mechanizmom, namiesto toho, aby ste ju zredukovali na písmená a číslice. Heslová politika patrí prevádzkovateľovi a obchádzka, ktorá ju potichu poráža, nie je oprava. Tiež skrýva skutočnú chybu pred ďalším človekom, ktorý sa stretne s tou istou chybou so slabším heslom a bez lepšieho nápadu.