Je li --key-password u OpenConnectu lozinka vašeg VPN računa?
OpenConnectov --key-password otključava lokalni privatni ključ. Lozinka računa se autentificira na pristupniku i jedna nikada ne zamjenjuje drugu.
Pročitajte naziv opcije doslovno. Ona imenuje ključ, a zabuna počinje kada se datoteka koja se otključava pobrka s računom koji se autentificira. Zalijepite lozinku računa u tu opciju i klijent će njome pokušati otvoriti datoteku ključa, što ne uspijeva iz razloga koji nemaju veze s prijavom na VPN.
Zbunjujuće je to što jedna veza može legitimno trebati obje tajne. Autentifikacija klijentskim certifikatom može zahtijevati šifrirani ključ, a isti pristupnik može i nakon prihvaćanja certifikata provesti razmjenu autentifikacije korisnika. Nijedna tajna ne zadovoljava drugu fazu, a neuspjeh u jednoj izvana izgleda vrlo slično neuspjehu u drugoj.
Dvije tajne, dva različita posla
Čitajte uloge kao pristup datoteci nasuprot dopuštanju pristupa mreži. Lozinka ključa dešifrira PEM privatni ključ naveden u --sslkey kako bi se mogao predstaviti TLS klijentski certifikat. To dešifriranje odvija se lokalno, unutar procesa klijenta, i sama lozinka nikada ne putuje do pristupnika. Pristupnik vidi certifikat i potpis napravljen ključem. OpenConnect priručnik drži --key-password uz --certificate i --sslkey, a u verzijama koje mogu koristiti ključ u TPM-u ista opcija umjesto toga nosi lozinku korijenskog ključa pohrane.
Lozinka računa je drukčija po vrsti. Ona ulazi u razmjenu autentifikacije: obrazac s korisničkim imenom i lozinkom, token, SAML krug ili neku kombinaciju koju pristupnik oglašava. Neke instalacije je uopće ne traže kada je certifikat jedini faktor, a neke je traže i nakon certifikata, jer certifikat dokazuje uređaj, a račun dokazuje osobu.
Miješanje dvaju stvara zavaravajuće pogreške. Pristupnik koji odbija prijavu obično javlja neuspjeh autentifikacije, dok pogrešna lozinka ključa obično pada ranije, kada TLS sloj ne može pročitati datoteku ključa. To su različite faze s različitim ispravcima, a nazivi su dovoljno slični da ih ljudi zamijene i zatim love pogrešan zapisnik. Zabilježite koji se upit pojavio prije nego što promijenite bilo koju postavku, jer je tekst upita najjeftinija dijagnostika koju imate.
Kada je lozinka ključa doista potrebna
Opcija ima smisla samo kada postoji šifrirani ključ koji treba otključati. Ako se povezujete korisničkim imenom i lozinkom i bez klijentskog certifikata, --key-password nema na što djelovati i njegovo uključivanje ništa ne mijenja. Ako se povezujete s --certificate i --sslkey, vlastiti format datoteke ključa odlučuje hoće li se lozinka uopće tražiti.
Obje tajne u jednoj naredbi uobičajene su u upravljanim okruženjima: certifikat uređaja u šifriranom ključu plus prijava za svakog korisnika. Ispravan slijed je pustiti klijent da lokalno zatraži lozinku ključa, dovršiti rukovanje certifikatom i zatim odvojeno obraditi upit pristupnika za račun. Pokušaj da se obje unaprijed popune jednom ponovno korištenom skriptom mjesto je gdje zabuna obično počinje.
Korisna dijagnostika je pogledati kada se kvar događa. Ako se klijent zaustavi prije nego počne ikakva mrežna autentifikacija, posumnjajte u datoteku ključa, njezin format ili lozinku. Ako je TLS sesija uspostavljena i pristupnik zatim odbije korisnika, ključ je odradio svoj posao i problem je u razmjeni za račun.
Držite obje tajne izvan povijesti ljuske
Argumente naredbenog retka drugi lokalni korisnici mogu čitati kroz tablicu procesa i često se hvataju u povijest ljuske, skripte i transkripte podrške. OpenConnect može čitati lozinku računa sa standardnog ulaza pomoću --passwd-on-stdin, a lozinka ključa može doći iz interaktivnog upita ili agenta umjesto iz argumenta. Nijedan mehanizam sam po sebi ne čini tajnu sigurnom, ali oba je drže izvan najizloženijih mjesta.
Datoteke zaslužuju istu pažnju. Skripta koja lozinku zapisuje u privremenu datoteku trebala bi je stvoriti s ograničenim ovlastima, izbrisati je pri izlasku i izbjegavati direktorije čitljive svima. Lozinka koja preživi sesiju u privremenom direktoriju kopija je koju ste zaboravili napraviti. Varijable okoline vidljive su podređenim procesima i često ih ispisuju alati za otklanjanje pogrešaka, pa nisu besplatna nadogradnja u odnosu na argumente.
Dijagnostički izlaz je tiho curenje. Zapisi klijenta pri većoj razini pojedinosti mogu prikazati tijela zahtjeva ili vrijednosti opcija, a kopirani transkript terminala lako se zalijepi u tiketu, pa pročitajte izlaz prije nego što ga podijelite.
Mrtva tipka na radnoj površini druga je vrsta kvara
Unos VPN-a na radnoj površini koji pokaže vrtnju i zatim ništa obično uopće nije problem autentifikacije. Tipka pripada mrežnom upravitelju, programčiću proizvođača ili dodatku koji pokreće OpenConnect u vaše ime, a komponenta koja nedostaje ili nečitljiv profil mogu proizvesti upravo taj simptom. Pronađite koji proces tipka pokreće i pročitajte njegovu pogrešku prije nego dirate vjerodajnice.
Primamljivo je olabaviti provjeru certifikata ili isključiti provjeru kada GUI odbija povezivanje. To pretvara kvar integracije klijenta u sniženje sigurnosti i rijetko popravlja problem pokretanja. Sačuvajte provjeru poslužitelja netaknutom, potvrdite da profil pokazuje na namjeravani pristupnik i provjerite je li pomoćnik koji GUI očekuje doista instaliran.
Kratak popis provjera razdvaja slučajeve. Lokalni kvar prije nego izađe ikakav paket upućuje na ključ ili instalaciju klijenta. Odbijanje pristupnika nakon TLS sesije upućuje na razmjenu za račun. Tipka koja nikada ne pokrene klijent upućuje na integraciju s radnom površinom. Tri različita kvara, od kojih je jedan lozinka koju ste upravo htjeli zalijepiti u pogrešno polje.