Neveljavne skrivnosti so težava vsebnika, ne pravilo za gesla
Zavrnjena poverilnica morda nikoli ni prišla do prehoda. Najprej primerjajte vsebnik vnosa, fazo preverjanja in sam račun.
Ko se prikaže »invalid secrets«, to običajno vodi do enega sklepa: VPN ne mara ločil. Ta sklep je običajno napačen, ker sporočilo pogosto prihaja iz lokalne obdelave, preden je kateri koli prehod pogledal račun. Dve zasnovi pošiljata isto geslo, grafično polje in datoteka s poverilnicami, in odpovedujeta na različnih mestih. Primerjajte vsebnike, preden poenostavite geslo, ki je bilo ves čas v redu.
Napaka nastane pred prehodom
Lokalno preverjanje, zaklenjena shramba skrivnosti, manjkajoči agent in poškodovana datoteka s poverilnicami ustvarjajo napake, ki jih uporabnik doživi kot eno zavrnitev. Nobena od njih ne vključuje strežnika za preverjanje pristnosti. Zavrnitev s strani prehoda je ločen dogodek in običajno pride z drugačnim sporočilom in drugačnim časom. Zgodi se po tem, ko tunel obstaja in so bile poverilnice prenesene.
Prvo vprašanje torej ni, kateri znaki so dovoljeni, ampak kje se je poskus ustavil. Odjemalec, ki ni nikoli odprl povezave, ni bil od nikogar zavrnjen. Zapišite fazo, ki ste jo opazili, ker je vsak nadaljnji korak odvisen od te razvrstitve.
Razlika spremeni tudi to, kdo to popravi. Težava vsebnika pripada napravi in njenemu lastniku, zavrnitev računa pa tistemu, ki upravlja zaledni sistem za preverjanje pristnosti.
Primerjajte vsebnike, ne znakov
Grafično polje za geslo, vnos v ključavnici, dvovrstična datoteka s poverilnicami in skrivnost za avtomatizacijo nosijo isto vrednost v drugačni ovojnici. Ovojnica ima svoja pravila in prav ta se običajno zlomijo. Vrednost je redko težava; težava je prenos vrednosti. Držite ideji ločeni in diagnoza bo krajša.
| Kje se vrednost ustavi | Kaj vidite | Kaj preverite | Kdo popravi |
|---|---|---|---|
| Grafično polje ali upravljani profil | Sporočilo o preverjanju, preden se odpre kakršna koli povezava | Izbrani način preverjanja pristnosti in ali polje vsebuje skrivnost ali uporabniško ime | Lastnik naprave ali avtor profila |
| Ključavnica ali agent za skrivnosti | Poziv, ki se nenehno ponavlja, ali napaka agenta | Ali je agent odklenjen in ima vnos za ta profil | Uporabnik, ki je lastnik ključavnice |
| Dvovrstična datoteka s poverilnicami | Poziv za geslo, ki je bilo že vneseno | Število vrstic, vrstni red vrstic in ali je prisotna končna nova vrstica | Tisti, ki je datoteko ustvaril |
| Argument lupine ali okoljska spremenljivka | Deluje interaktivno, a odpove v avtomatizaciji | Ali je lupina vrednost razširila, obrezala ali zabeležila | Tisti, ki je napisal avtomatizacijo |
Uradne možnosti odjemalca Community OpenVPN 2.6 opisujejo to dvovrstično datoteko za auth-user-pass, vključno z vedenjem, ko vrstica z geslom manjka: odjemalec namesto tega vpraša. Ta podrobnost pojasnjuje skupino poročil »zahteva geslo, ki sem ga že vnesel«. Pove tudi, da je prazna druga vrstica smiselno stanje in ne neškodljiva izbira oblikovanja.
Citiranje je spet ločena plast: narekovaji znotraj navadne datoteke s poverilnicami se shranijo kot podatki, medtem ko jih lupina odstrani, preden program karkoli vidi. Isti znak je na enem mestu neškodljiv, na drugem pa strukturni. Tabela vam ne more povedati, kateri vsebnik je uporabil vaš odjemalec, zato pred izbiro vrstice preberite lastno konfiguracijo odjemalca.
Prelomi vrstic so prav tako strukturni. Datoteka s polji, ločenimi po vrsticah, ne more nositi vrednosti, ki vsebuje novo vrstico, in to je omejitev oblike, ne sodba o moči gesla. Uporabite mehanizem dostave, ki ga podpira uvajanje, namesto da obrezujete skrivnost, da bi se prilegala improvizirani datoteki.
Zgradite datoteko s poverilnicami brez škode v lupini
Najvarnejša lokalna pot drži skrivnost zunaj zgodovine lupine in zunaj seznama argumentov procesa. Preberite obe polji interaktivno in nato zapišite dve vrstici, ki jih odjemalec pričakuje. Vse ostalo lahko ostane v konfiguracijski datoteki, ki jo je enostavno pregledati.
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
Prva dva ukaza prebereta uporabniško ime in nato geslo, ne da bi ga izpisala, tretji zapiše obe vrstici, četrti omeji datoteko, zadnji pa zažene odjemalca s to datoteko. Upoštevajte, da read -r ohrani povratne poševnice, kar je ravno tista podrobnost, ki ob izpustitvi spremeni delujoče geslo v nedelujoče.
Izogibajte se sestavljanju datoteke z necitirano spremenljivko ali here-dokumentom, polnim razširitev lupine. Oba lahko preoblikujeta znake, preden pridejo v datoteko, in posledična napaka je videti kot zavrnitev VPN, ker je geslo na disku res drugačno od gesla, ki ga poznate. Če sumite na to, primerjajte bajtno dolžino datoteke s pričakovano vrednostjo, ne da bi izpisali skrivnost. Razlika enega ali dveh bajtov je podpis nezgode s citiranjem.
Preberite fazo iz prve napake
Obdržite prvo konkretno sporočilo iz enega poskusa in ga nato razvrstite. Napaka lokalnega preverjanja, manjkajoči zasebni ključ, nedosegljiv agent za skrivnosti in neuspeh preverjanja na prehodu so štirje različni rezultati s štirimi različnimi lastniki. Le eden od njih se nanaša na račun.
Če prehod res zavrača pravilno dostavljeno poverilnico, preverite račun, zaledni sistem za preverjanje pristnosti in morebiten zahtevani izziv z administratorjem. Splošna napaka preverjanja pristnosti ne navaja prepovedanega znaka.
Obnovite odobreno vrednost po pravi poti, namesto da jo zreducirate na črke in številke. Pravilnik o geslih pripada ponudniku in obhod, ki ga tiho izniči, ni popravek. Prav tako skrije resnično napako pred naslednjim človekom, ki bo naletel na isto napako s šibkejšim geslom in brez boljše zamisli.