Malvalidaj sekretoj estas problemo de la ujo, ne regulo pri pasvorto
Malakceptita legitimilo eble neniam atingis la enirejon. Unue komparu la enigan ujon, la aŭtentigan stadion kaj la konton mem.
Vidi «malvalidajn sekretojn» kutime kondukas al unu konkludo: la VPN ne ŝatas interpunkcion. Tiu konkludo kutime malĝustas, ĉar la mesaĝo ofte venas de loka prilaborado antaŭ ol iu enirejo rigardis la konton. Du dezajnoj transdonas la saman pasvorton, grafika kampo kaj legitimila dosiero, kaj ili malsukcesas sur malsamaj lokoj. Komparu la ujojn antaŭ ol simpligi pasvorton, kiu ĉiam estis en ordo.
La eraro venas antaŭ la enirejo
Loka validado, ŝlosita sekreta konservejo, mankanta agento kaj misformita legitimila dosiero ĉiuj produktas malsukcesojn, kiujn uzanto spertas kiel unu malakcepton. Neniu el ili implikas la aŭtentigan servilon. La propra malakcepto de la enirejo estas aparta okazaĵo, kaj ĝi kutime alvenas kun malsama mesaĝo kaj malsama tempo. Ĝi okazas post kiam tunelo ekzistas kaj legitimiloj estis transdonitaj.
Do la unua demando ne estas, kiuj signoj estas laŭleĝaj, sed kie la provo haltis. Kliento, kiu neniam malfermis konekton, ne estis malakceptita de iu. Notu la stadion, kiun vi observis, ĉar ĉiu posta paŝo dependas de tiu klasifiko.
La distingo ankaŭ ŝanĝas, kiu ĝin riparas. Problemo de la ujo apartenas al la aparato kaj ĝia posedanto, dum malakcepto de konto apartenas al tiu, kiu funkciigas la aŭtentigan fonprogramaron.
Komparu la ujojn, ne la signojn
Grafika pasvorta kampo, ero en la ŝlosilĉeno, legitimila dosiero kun du linioj kaj sekreto por aŭtomatigo portas ĉiu la saman valoron en malsama koverto. La koverto havas siajn proprajn regulojn, kaj ĝuste tiuj reguloj kutime rompiĝas. La valoro malofte estas la problemo; la transporto de la valoro estas. Tenu la du ideojn apartaj kaj la diagnozo mallongiĝos.
| Where the value stops | What you see | What you check | Who owns the fix |
|---|---|---|---|
| GUI field or managed profile | A validation message before any connection opens | The selected authentication mode and whether the field holds the secret or the username | The device owner or the profile author |
| Keychain or secret agent | A prompt that keeps reappearing, or an agent error | Whether the agent is unlocked and holds an entry for this profile | The user who owns the keychain |
| Two-line credential file | A prompt for a password that was already supplied | Line count, line order and whether a trailing newline is present | Whoever generated the file |
| Shell argument or environment | Works interactively but fails in automation | Whether the shell expanded, trimmed or logged the value | Whoever wrote the automation |
Klientaj agordoj de la komunumo OpenVPN 2.6 priskribas tiun dulinean dosieron por auth-user-pass, inkluzive de la konduto kiam mankas la pasvorta linio: tiam la kliento demandas mem. Tiu unu detalo klarigas tutan klason de raportoj de la tipo «ĝi demandas pasvorton, kiun mi jam donis». Ĝi ankaŭ diras al vi, ke malplena dua linio estas signifa stato, ne sendanĝera formatiga elekto.
Citado estas denove aparta tavolo: citiloj ene de ordinara legitimila dosiero estas konservataj kiel datumoj, dum ŝelo forigas ilin antaŭ ol la programo vidas ion ajn. La sama signo estas sendanĝera en unu loko kaj struktura en la alia. Tabelo ne povas diri al vi, kiun ujon via kliento uzis, do legu la propran agordon de la kliento antaŭ ol elekti vicon.
Ankaŭ liniaj rompoj estas strukturaj. Dosiero kun linie apartigitaj kampoj ne povas porti valoron enhavantan novan linion, kaj tio estas limigo de la formato, ne juĝo pri pasvorta forteco. Uzu la subtenatan liveran mekanismon de la deplojo anstataŭ tondi la sekreton por ke ĝi taŭgu en improvizitan dosieron.
Kreu la legitimilan dosieron sen damaĝo de la ŝelo
La plej sekura loka vojo tenas la sekreton ekster la ŝela historio kaj ekster la argumenta listo de la procezo. Legu ambaŭ kampojn interage, poste skribu la du liniojn, kiujn la kliento atendas. Ĉio alia povas resti en agorda dosiero, kiun oni facile revizias.
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
La unuaj du komandoj legas la uzantnomon kaj poste la pasvorton sen montri ĝin, la tria skribas ambaŭ liniojn, la kvara limigas la dosieron, kaj la lasta lanĉas la klienton kun tiu dosiero. Rimarku, ke read -r konservas malantaŭajn oblikvojn, kaj tio estas ĝuste la speco de detalo, kiu igas funkciantan pasvorton malsukcesa kiam ĝi mankas.
Evitu konstrui la dosieron per senkvota variablo aŭ per here-dokumento plena de ŝelaj etendoj. Ambaŭ povas transformi signojn antaŭ ol ili atingas la dosieron, kaj la rezulta malsukceso aspektas kiel malakcepto de VPN ĉar la pasvorto sur la disko vere malsamas de la pasvorto, kiun vi konas. Se vi tion suspektas, komparu la bajtan longon de la dosiero kun la atendata valoro, sen presi la sekreton mem. Diferenco de unu aŭ du bajtoj estas la subskribo de kvota akcidento.
Legu la stadion el la unua eraro
Konservu la unuan konkretan mesaĝon de unu provo, poste klasifiku ĝin. Loka validada eraro, mankanta privata ŝlosilo, neatingebla sekreta agento kaj aŭtentiga malsukceso ĉe la enirejo estas kvar malsamaj rezultoj kun kvar malsamaj posedantoj. Nur unu el ili temas pri la konto.
Se la enirejo vere malakceptas ĝuste transdonitan legitimilon, kontrolu la konton, la aŭtentigan fonprogramaron kaj ajnan postulatan defion kun la administranto. Ĝenerala aŭtentiga malsukceso ne nomas malpermesitan signon.
Restarigu la aprobitan valoron per la ĝusta mekanismo anstataŭ redukti ĝin al literoj kaj ciferoj. La pasvorta politiko apartenas al la operatoro, kaj ĉirkaŭvojo, kiu silente ĝin malplenumas, ne estas riparo. Ĝi ankaŭ kaŝas la veran difekton de la sekva persono, kiu renkontos la saman eraron kun pli malforta pasvorto kaj sen pli bona ideo.