Kada vidite „nevažeće tajne“, to obično vodi do jednog zaključka: VPN ne voli interpunkciju. Taj zaključak je najčešće pogrešan, jer poruka često dolazi iz lokalne obrade prije nego što je ijedan pristupnik pogledao račun. Dva dizajna prenose istu lozinku, grafičko polje i datoteka akreditiva, i oni padaju na različitim mjestima. Uporedite kontejnere prije nego što pojednostavite lozinku koja je cijelo vrijeme bila ispravna.

Greška dolazi prije pristupnika

Lokalna validacija, zaključano spremište tajni, nedostajući agent i oštećena datoteka akreditiva — svi oni daju kvarove koje korisnik doživljava kao jedno odbijanje. Nijedan od njih ne uključuje server za provjeru identiteta. Vlastito odbijanje pristupnika je zaseban događaj i obično dolazi s drugom porukom i u drugo vrijeme. Ono se dešava nakon što tunel postoji i akreditiv je prenesen.

Dakle prvo pitanje nije koji su znakovi dozvoljeni, nego gdje se pokušaj zaustavio. Klijent koji nikada nije otvorio vezu nije odbio niko. Zapišite fazu koju ste primijetili, jer svaki sljedeći korak zavisi od te klasifikacije.

Razlika mijenja i to ko je popravlja. Problem kontejnera pripada uređaju i njegovom vlasniku, dok odbijanje računa pripada onome ko upravlja pozadinom za provjeru identiteta.

Uporedite kontejnere, a ne znakove

Grafičko polje za lozinku, unos u privjesku za ključeve, datoteka akreditiva od dva reda i tajna za automatizaciju — svaki nosi istu vrijednost u drugom omotaču. Omotač ima svoja pravila i obično se lome upravo ta pravila. Vrijednost rijetko kad je problem; prijenos vrijednosti jeste. Držite te dvije ideje odvojeno i dijagnoza postaje kraća.

Where the value stopsWhat you seeWhat you checkWho owns the fix
GUI field or managed profileA validation message before any connection opensThe selected authentication mode and whether the field holds the secret or the usernameThe device owner or the profile author
Keychain or secret agentA prompt that keeps reappearing, or an agent errorWhether the agent is unlocked and holds an entry for this profileThe user who owns the keychain
Two-line credential fileA prompt for a password that was already suppliedLine count, line order and whether a trailing newline is presentWhoever generated the file
Shell argument or environmentWorks interactively but fails in automationWhether the shell expanded, trimmed or logged the valueWhoever wrote the automation

Klijentske opcije zajednice OpenVPN 2.6 opisuju tu datoteku od dva reda za auth-user-pass, uključujući ponašanje kada red s lozinkom nedostaje: tada klijent sam pita. Taj jedan detalj objašnjava čitavu klasu prijava tipa „traži lozinku koju sam već dao“. On vam takođe kaže da je prazan drugi red značajno stanje, a ne bezazlen formatni izbor.

Navođenje pod navodnicima je opet zaseban sloj: navodnici unutar obične datoteke akreditiva čuvaju se kao podaci, dok ih ljuska uklanja prije nego što program bilo šta vidi. Isti znak je bezazlen na jednom mjestu i strukturni na drugom. Tabela vam ne može reći koji je kontejner klijent koristio, zato pročitajte klijentovu vlastitu konfiguraciju prije nego što odaberete red.

Prelomi redova su takođe strukturni. Datoteka s poljima razdvojenim redovima ne može nositi vrijednost koja sadrži novi red, i to je ograničenje formata, a ne sud o jačini lozinke. Koristite mehanizam dostave koji podržava postavljanje, umjesto da skraćujete tajnu da bi stala u improvizovanu datoteku.

Napravite datoteku akreditiva bez štete od ljuske

Najsigurniji lokalni put drži tajnu izvan historije ljuske i izvan liste argumenata procesa. Pročitajte oba polja interaktivno, zatim upišite dva reda koja klijent očekuje. Sve ostalo može ostati u konfiguracijskoj datoteci koju je lako 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

Prve dvije naredbe čitaju korisničko ime, a zatim lozinku bez ispisivanja, treća upisuje oba reda, četvrta ograničava datoteku, a posljednja pokreće klijent s tom datotekom. Obratite pažnju da read -r čuva obrnute kose crte, i to je upravo ona vrsta detalja koja ispravnu lozinku pretvara u neispravnu kada se izostavi.

Izbjegavajte pravljenje datoteke s promjenljivom bez navodnika ili s here-documentom punim proširenja ljuske. Oboje može preobraziti znakove prije nego što stignu do datoteke, a rezultirajući kvar izgleda kao odbijanje VPN-a jer se lozinka na disku zaista razlikuje od lozinke koju znate. Ako to sumnjate, uporedite dužinu datoteke u bajtovima s očekivanom vrijednošću, bez ispisivanja same tajne. Razlika od jednog ili dva bajta potpis je nezgode s navodnicima.

Pročitajte fazu iz prve greške

Zadržite prvu konkretnu poruku jednog pokušaja, pa je klasifikujte. Greška lokalne validacije, nedostajući privatni ključ, nedostupan agent za tajne i neuspjeh provjere identiteta na pristupniku četiri su različita ishoda s četiri različita vlasnika. Samo jedan od njih tiče se računa.

Ako pristupnik zaista odbija ispravno dostavljen akreditiv, provjerite račun, pozadinu za provjeru identiteta i svaki potrebni izazov s administratorom. Opšti neuspjeh provjere identiteta ne navodi zabranjeni znak.

Vratite odobrenu vrijednost kroz ispravan mehanizam, umjesto da je svodite na slova i cifre. Politika lozinki pripada operatoru, a zaobilazno rješenje koje je tiho krši nije popravka. Ono i skriva pravi nedostatak od sljedeće osobe, koja će susresti istu grešku sa slabijom lozinkom i bez bolje ideje.

Povezani članci