Završite MFA upit, tunel se podigne i zatvaranje terminala obori vezu sa sobom. To je problem nadzora, ne autentifikacije, i OpenConnect već isporučuje prekidač koji ga rešava. Rešenje je pustiti klijenta da se račva u pozadinu nakon završetka pokretanja, kada je interaktivni deo zaista gotov. Sledi niz provera: prođite ih redom i zaustavite se na prvoj koja ne važi za vaš gejtvej.

Potvrdite šta gejtvej zahteva pri prijavi

Pre nego što otkucate naredbu, zapišite putanju akreditiva koju uvodi postavka. Samo sertifikat, lozinka plus token i obilazak kroz pregledač preko SAML provajdera ponašaju se različito i pozadinski režim ne može preskočiti nijedan. Opcija menja šta se dešava nakon pokretanja, nikada šta se dešava tokom njega.

Primamljivo rešenje je automatizovati upit. Omotač koji upisuje fiksni odgovor kad prepozna upit za lozinku slomi se onog trenutka kada gejtvej zatraži jednokratni kod i ostavlja akreditiv u datoteci koju drugi računi mogu čitati. Ako osoba mora odobriti sesiju, zadržite osobu u petlji.

Pokrenite prvu sesiju u prednjem planu i pročitajte izlaz

Povežite se jednom normalno i pustite da se ispiše celo rukovanje. Zabeležite protokol koji se koristi, putanju sertifikata ili tokena, adresu tunela koju server dodeljuje i svako upozorenje pre prihvatanja veze. Taj zapis je vaša osnovna linija i jedini jeftin način da kasnije razlikujete problem klijenta od promene na gejtveju. Sačuvajte ga izvan bafera terminala.

Zatim ponovite isti poziv s pozadinskim režimom i dodatom PID datotekom, na primer openconnect --background --pid-file /run/openconnect.pid vpn.example.net, držeći protokol i opcije autentifikacije koje vaš gejtvej zahteva u istom redu. OpenConnect priručnik opisuje tu opciju kao nastavak u pozadini nakon završetka pokretanja, i upravo zato interaktivna faza mora biti završena prva.

Učinite pokrenuti proces pronalažljivim i zaustavljivim

PID datoteka je dokaz samo dok odgovara živom procesu. Stavite je u direktorijum koji poseduje servisni račun i uporedite zabeleženi broj s tabelom procesa pre nego što pošaljete signal. Restartovi i padovi ostavljaju datoteku, a zastarela datoteka je uobičajen razlog da skripta za zaustavljanje javi uspeh dok je tunel još podignut. Tretirajte proveru kao deo procedure zaustavljanja, ne kao opcioni korak.

Pošaljite signal proverenom PID-u, zatim potvrdite da je interfejs tunela zaista nestao umesto da verujete izlaznom statusu. Ako klijentu trebaju povišene privilegije za konfiguraciju interfejsa, signal mora doći s računa koji ga sme poslati.

Ne slažite pozadinski režim pod nadzornikom

systemd i slični nadzornici očekuju da poseduju proces koji su pokrenuli, zato klijent koji se račva zbunjuje ih. Nadzornik gleda kako pokretač izlazi dok prava veza živi dalje, pa logika restarta, izveštavanje o statusu i rokovi zaustavljanja opisuju nešto što više nije tačno. Napišite jedinicu u podržanom prednjem rasporedu i pustite nadzornika da radi daemonski posao.

Sačuvajte --background za sesije koje osoba pokrene i zatim ode. Ako je zahtev tunel koji postoji pre nego se bilo ko prijavi, deo koji nedostaje je odobreni neinteraktivni identitet plus plan za njegovo obnavljanje, a nijedan flag naredbenog reda ne daje nijedno. Dodavanje flaga u boot skriptu stvara tunel koji tiho pada na prvom isteklom akreditivu.

Tretirajte kolačić sesije kao akreditiv

OpenConnect dokumentuje odvojenu fazu autentifikacije kroz --authenticate, a dobijeni materijal se može vratiti s --cookie-on-stdin. Taj par postoji za integracijski rad, a ono što proizvodi osetljivo je kao i lozinka koja ga je stvorila.

Držite vrednost izvan istorije ljuske, izvan logova i izvan svakog tiketa koji otvorite. Skripta za predaju takođe mora sačuvati proverene informacije o krajnjoj tački koje je klijent dobio uz kolačić; izgubite li ih, kasnije pokretanje može se povezati s hostom na kojem se nikada niste autentifikovali, što je gore od veze koja jednostavno padne.

Prođite kroz listu pre nego zatvorite terminal

Četiri stvari treba da budu istinite: interaktivna prijava završena je u prednjem planu, PID datoteka pokazuje na proces koji ste proverili, pitanje nadzornika rešeno je na jednu ili drugu stranu i kolačić ima plan skladištenja koji nije obična tekstualna datoteka. Kada sve četiri važe, odlazak od terminala je bezbedan i tunel nastavlja da radi.

Ako jedna od njih padne, popravite tu stavku pre nego dirate ostale, jer preostale provere to ne mogu nadoknaditi. Sačuvajte i zapis prednjeg plana iz prvog pokretanja: sledeći put kada tunel padne bez upozorenja, ta osnovna linija razdvaja promenu na strani gejtveja od one na strani klijenta.

Povezani članci