Kad se pojavi poruka o nevažećim tajnama, obično se nameće jedan zaključak: VPN ne voli interpunkciju. Taj je zaključak obično pogrešan, jer poruka često dolazi iz lokalne obrade prije nego što je ijedan pristupnik pogledao račun. Dva načina predaje istu zaporku, grafičko polje i datoteka s podacima za prijavu, zatajuju na različitim mjestima. Usporedite spremnike prije nego što pojednostavite zaporku koja je cijelo vrijeme bila ispravna.

Pogreška nastaje prije pristupnika

Lokalna provjera, zaključana pohrana tajni, nedostajući agent i neispravna datoteka s podacima za prijavu svi proizvode zastoje koje korisnik doživljava kao jedno odbijanje. Nijedan od njih ne uključuje poslužitelj za provjeru identiteta. Odbijanje samog pristupnika zaseban je događaj i obično dolazi s drugom porukom i drugim vremenskim slijedom. Događa se nakon što tunel postoji i podaci za prijavu su preneseni.

Prvo pitanje zato nije koji su znakovi dopušteni, nego gdje se pokušaj zaustavio. Klijent koji nikada nije otvorio vezu nije odbio nitko. Zapišite fazu koju ste vidjeli, jer svaki daljnji korak ovisi o toj klasifikaciji.

Ta razlika mijenja i to kome je popravak namijenjen. Problem spremnika pripada uređaju i njegovu vlasniku, a odbijanje računa onome tko upravlja pozadinskim sustavom za provjeru identiteta.

Usporedite spremnike, a ne znakove

Grafičko polje za zaporku, unos u privjesku ključeva, datoteka s podacima za prijavu u dva retka i tajna u automatizaciji nose istu vrijednost u različitoj ovojnici. Ovojnica ima svoja pravila i upravo se ta pravila obično lome. Vrijednost je rijetko problem; problem je prijenos vrijednosti. 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

Opcije klijenta OpenVPN 2.6 iz zajednice opisuju tu datoteku u dva retka za auth-user-pass, uključujući ponašanje kad retka sa zaporkom nema: klijent tada traži unos. Taj jedan detalj objašnjava čitavu klasu prijava tipa „traži zaporku koju sam već dao”. Također vam kaže da je prazan drugi redak smisleno stanje, a ne bezopasan izbor oblikovanja.

Navodnici su opet zaseban sloj: navodnici unutar obične datoteke s podacima za prijavu pohranjuju se kao podatak, dok ih ljuska uklanja prije nego program išta vidi. Isti je znak bezopasan na jednom mjestu, a strukturni na drugom. Tablica vam ne može reći koji je spremnik vaš klijent upotrijebio, zato pročitajte vlastitu konfiguraciju klijenta prije nego odaberete redak.

Prijelomi redaka također su strukturni. Datoteka s poljima odvojenima recima ne može nositi vrijednost koja sadrži prijelom retka, i to je ograničenje formata, a ne prosudba o jakosti zaporke. Umjesto da tajnu skraćujete kako bi stala u improviziranu datoteku, upotrijebite mehanizam predaje koji postavka podržava.

Sastavite datoteku s podacima za prijavu bez štete od ljuske

Najsigurniji lokalni put drži tajnu izvan povijesti ljuske i izvan popisa argumenata procesa. Pročitajte oba polja interaktivno, zatim zapišite dva retka 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 pa zaporku bez ispisa, treća zapisuje oba retka, četvrta ograničava datoteku, a posljednja pokreće klijenta s tom datotekom. Imajte na umu da read -r čuva obrnute kose crte, a upravo je takav detalj ono što ispravnu zaporku pretvara u neispravnu kad se izostavi.

Izbjegavajte sastavljanje datoteke nezaštićenom varijablom ili here-dokumentom punim proširenja ljuske. Oboje može preobraziti znakove prije nego stignu u datoteku, a rezultat izgleda kao odbijanje VPN-a jer se zaporka na disku doista razlikuje od one koju poznajete. Ako na to sumnjate, usporedite duljinu datoteke u bajtovima s očekivanom vrijednošću, bez ispisivanja same tajne. Razlika od jednog ili dva bajta obilježje je nezgode s navodnicima.

Pročitajte fazu iz prve pogreške

Zadržite prvu konkretnu poruku iz jednog pokušaja, pa je razvrstajte. Pogreška lokalne provjere, nedostajući privatni ključ, nedostupni agent za tajne i neuspjeh provjere identiteta na pristupniku četiri su različita ishoda s četiri različita vlasnika. Samo se jedan od njih odnosi na račun.

Ako pristupnik doista odbija ispravno predane podatke za prijavu, provjerite račun, pozadinski sustav provjere identiteta i svaki potrebni izazov s administratorom. Opći neuspjeh provjere identiteta ne imenuje zabranjeni znak.

Vratite odobrenu vrijednost ispravnim mehanizmom, umjesto da je svodite na slova i znamenke. Pravilo o zaporkama pripada operatoru, a zaobilazno rješenje koje ga tiho izigrava nije popravak. Ono i skriva stvarni nedostatak od sljedeće osobe, koja će istu pogrešku dočekati sa slabijom zaporkom i ništa boljom idejom.

Povezani članci