Završite MFA upit, tunel se podigne i zatvaranje terminala obori vezu sa sobom. To je problem nadzora, a ne autentifikacije, i OpenConnect već isporučuje prekidač koji ga rješava. Rješenje je pustiti klijenta da se račva u pozadinu nakon što se pokretanje završi, kada je interaktivni dio zaista gotov. Slijedi niz provjera: prođite ih po redu i zaustavite se na prvoj koja ne vrijedi za vaš gejtvej.

Potvrdite šta gejtvej zahtijeva pri prijavi

Prije nego otkucate naredbu, zapišite putanju vjerodajnica koju uvodi postava. Samo certifikat, lozinka plus token i obilazak kroz preglednik preko SAML provajdera ponašaju se različito i pozadinski režim ne može preskočiti nijedan od njih. Opcija mijenja šta se dešava nakon pokretanja, nikada šta se dešava tokom njega.

Primamljivo rješ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 vjerodajnicu 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 cijelo rukovanje ispiše. Zabilježite protokol koji se koristi, putanju certifikata ili tokena, adresu tunela koju server dodjeljuje i svako upozorenje prije prihvatanja veze. Taj zapis je vaša osnovna linija i jedini jeftin način da kasnije razlikujete problem klijenta od promjene na gejtveju. Sačuvajte ga izvan bafera terminala.

Zatim ponovite isti poziv s pozadinskim režimom i dodanom PID datotekom, na primjer openconnect --background --pid-file /run/openconnect.pid vpn.example.net, zadržavajući protokol i opcije autentifikacije koje vaš gejtvej zahtijeva 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 direktorij koji posjeduje servisni račun i uporedite zabilježeni broj s tablicom procesa prije nego pošaljete signal. Restartovi i padovi ostavljaju datoteku za sobom, a zastarjela datoteka je uobičajen razlog da skripta za zaustavljanje javi uspjeh dok je tunel još podignut. Tretirajte provjeru kao dio procedure zaustavljanja, a ne kao opcionalni korak.

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

Ne slažite pozadinski režim pod nadzornikom

systemd i slični nadzornici očekuju da posjeduju 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, izvješ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 zahtjev tunel koji postoji prije nego se bilo ko prijavi, dio 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 prvoj istekloj vjerodajnici.

Tretirajte kolačić sesije kao vjerodajnicu

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 osjetljivo je kao i lozinka koja ga je stvorila.

Držite vrijednost izvan historije ljuske, izvan logova i izvan svakog tiketa koji otvorite. Skripta za predaju također mora sačuvati provjerene informacije o krajnjoj točki koje je klijent dobio uz kolačić; ispustite 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 prije nego zatvorite terminal

Četiri stvari trebaju biti istinite: interaktivna prijava završena je u prednjem planu, PID datoteka pokazuje na proces koji ste provjerili, pitanje nadzornika riješeno je na jednu ili drugu stranu i kolačić ima plan pohrane koji nije obična tekstualna datoteka. Kada sve četiri vrijede, odlazak od terminala je siguran i tunel nastavlja raditi.

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

Povezani članci