Ieraugot "invalid secrets", parasti rodas viens secinājums: VPN nepatīk pieturzīmes. Šis secinājums parasti ir nepareizs, jo ziņojums bieži nāk no vietējās apstrādes, vēl pirms kāda vārteja ir aplūkojusi kontu. Divi risinājumi piegādā vienu un to pašu paroli — grafiskais lauks un akreditācijas datu fails — un tie sabrūk dažādās vietās. Salīdziniet konteinerus, pirms vienkāršojat paroli, kas visu laiku bija pareiza.

Kļūda nāk pirms vārtejas

Vietējā validācija, aizslēgta noslēpumu krātuve, neesošs aģents un nepareizi formatēts akreditācijas datu fails rada atteices, ko lietotājs piedzīvo kā vienu noraidījumu. Neviens no tiem nav saistīts ar autentifikācijas serveri. Pašas vārtejas noraidījums ir atsevišķs notikums, un tas parasti nāk ar citu ziņojumu un citu laiku. Tas notiek pēc tam, kad tunelis jau pastāv un akreditācijas dati ir pārsūtīti.

Tāpēc pirmais jautājums nav par to, kuras rakstzīmes ir atļautas, bet gan par to, kur mēģinājums apstājās. Klients, kas nav nevienu reizi atvēris savienojumu, nav neviena noraidīts. Pierakstiet posmu, ko novērojāt, jo katrs nākamais solis ir atkarīgs no šīs klasifikācijas.

Šī atšķirība maina arī to, kas to labo. Konteinera problēma pieder ierīcei un tās īpašniekam, bet konta noraidījums — tam, kas uztur autentifikācijas aizmuguri.

Salīdziniet konteinerus, nevis rakstzīmes

GUI paroles lauks, atslēgu piekariņa ieraksts, divu rindu akreditācijas datu fails un automatizācijas noslēpums visi pārnēsā vienu un to pašu vērtību citā aploksnē. Aploksnei ir savi noteikumi, un parasti lūzt tieši tie. Vērtība reti ir problēma; problēma ir vērtības pārvadāšana. Turiet abas idejas atsevišķi, un diagnoze kļūs īsāka.

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

Community OpenVPN 2.6 klienta opcijas apraksta šo divu rindu failu auth-user-pass vajadzībām, tostarp uzvedību, kad paroles rindas nav: klients tā vietā jautā. Šī viena detaļa izskaidro ziņojumu klasi "kāpēc tas jautā paroli, kuru jau norādīju". Tā arī parāda, ka tukša otrā rinda ir nozīmīgs stāvoklis, nevis nekaitīga formatējuma izvēle.

Citēšana ir vēl viens slānis: pēdiņas vienkāršā akreditācijas datu failā tiek saglabātas kā dati, bet čaula tās noņem, pirms programma ko ierauga. Viena un tā pati rakstzīme vienā vietā ir nekaitīga, otrā — strukturāla. Tabula nevar pateikt, kuru konteineru izmantoja jūsu klients, tāpēc pirms rindas izvēles izlasiet paša klienta konfigurāciju.

Arī rindu pārtraukumi ir strukturāli. Fails ar rindās atdalītiem laukiem nevar pārnēsāt vērtību ar jaunu rindu, un tas ir formāta ierobežojums, nevis spriedums par paroles stiprumu. Izmantojiet izvietošanas atbalstīto piegādes mehānismu, nevis apgrieziet noslēpumu, lai tas ietilptu improvizētā failā.

Izveidojiet akreditācijas datu failu bez čaulas bojājumiem

Drošākais vietējais ceļš tur noslēpumu ārpus čaulas vēstures un ārpus procesa argumentu saraksta. Nolasiet abus laukus interaktīvi, pēc tam ierakstiet divas rindas, ko klients gaida. Viss pārējais var palikt konfigurācijas failā, ko ir viegli pārskatīt.

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

Pirmās divas komandas nolasa lietotājvārdu un pēc tam paroli, to neatspoguļojot, trešā ieraksta abas rindas, ceturtā ierobežo faila atļaujas, un pēdējā palaiž klientu ar šo failu. Ņemiet vērā, ka read -r saglabā atpakaļvērstās slīpsvītras, un tieši šāda detaļa pārvērš strādājošu paroli nestrādājošā, ja to izlaiž.

Neveidojiet failu ar necitētu mainīgo vai here-document, pilnu čaulas paplašinājumu. Abi var pārveidot rakstzīmes, pirms tās sasniedz failu, un rezultējošā atteice izskatās kā VPN noraidījums, jo parole diskā patiešām atšķiras no tās, ko zināt. Ja jums ir aizdomas, salīdziniet faila baitu garumu ar gaidīto vērtību, neizdrukājot pašu noslēpumu. Viena vai divu baitu neatbilstība ir citēšanas negadījuma paraksts.

Nolasiet posmu no pirmās kļūdas

Saglabājiet pirmo konkrēto ziņojumu no viena mēģinājuma un klasificējiet to. Vietējā validācijas kļūda, neesoša privātā atslēga, nepieejams noslēpumu aģents un vārtejas autentifikācijas kļūme ir četri dažādi rezultāti ar četriem dažādiem atbildīgajiem. Tikai viens no tiem ir par kontu.

Ja vārteja patiešām noraida pareizi piegādātus datus, kopā ar administratoru pārbaudiet kontu, autentifikācijas aizmuguri un jebkuru obligāto izaicinājumu. Vispārīga autentifikācijas kļūme nenosauc aizliegtu rakstzīmi.

Atjaunojiet apstiprināto vērtību ar pareizo mehānismu, nevis samaziniet to līdz burtiem un cipariem. Paroles politika pieder operatoram, un apietais risinājums, kas to klusi apiet, nav labojums. Tas arī paslēpj īsto defektu no nākamā cilvēka, kurš sastaps to pašu kļūdu ar vājāku paroli.

Saistītie raksti