Dovršite MFA upit, tunel se podiže i zatvaranje terminala ruši vezu sa sobom. To je problem nadzora, ne autentikacije, i OpenConnect već isporučuje prekidač koji ga rješava. Rješenje je pustiti klijenta da se račva u pozadinu nakon završetka pokretanja, kad je interaktivni dio doista gotov. Slijedi niz provjera: prođite ih redom i zaustavite se na prvoj koja ne vrijedi za vaš pristupnik.

Potvrdite što pristupnik zahtijeva pri prijavi

Prije nego upišete naredbu, zapišite put vjerodajnica koji uvodi implementacija. Samo certifikat, lozinka plus token i obilazak preglednikom preko SAML pružatelja ponašaju se različito i pozadinski način ne može preskočiti nijedan. Opcija mijenja što se događa nakon pokretanja, nikad što se događa tijekom njega.

Primamljivo rješenje je automatizirati upit. Omot koji upisuje fiksni odgovor kad prepozna upit za lozinku slomi se onog trena kad pristupnik 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 ispiše cijelo rukovanje. Zabilježite protokol koji se koristi, put certifikata ili tokena, adresu tunela koju poslužitelj dodjeljuje i svako upozorenje prije prihvaćanja veze. Taj je zapis vaša osnovna linija i jedini jeftin način da kasnije razlikujete problem klijenta od promjene na pristupniku. Spremite ga izvan međuspremnika terminala.

Zatim ponovite isti poziv s pozadinskim načinom i dodanom PID datotekom, na primjer openconnect --background --pid-file /run/openconnect.pid vpn.example.net, držeći protokol i mogućnosti autentikacije koje vaš pristupnik zahtijeva u istom retku. OpenConnect priručnik opisuje tu opciju kao nastavak u pozadini nakon završetka pokretanja, i upravo zato interaktivna faza mora završiti prva.

Učinite pokrenuti proces pronalažljivim i zaustavljivim

PID datoteka dokaz je samo dok odgovara živom procesu. Stavite je u direktorij koji posjeduje servisni račun i usporedite zabilježeni broj s tablicom procesa prije slanja signala. Restartovi i padovi ostavljaju datoteku, a zastarjela datoteka uobičajen je razlog da skripta za zaustavljanje javi uspjeh dok je tunel još podignut. Tretirajte provjeru kao dio postupka zaustavljanja, ne kao neobavezan korak.

Pošaljite signal provjerenom PID-u, zatim potvrdite da je sučelje tunela doista nestalo umjesto da vjerujete izlaznom statusu. Ako klijentu trebaju povišene ovlasti za konfiguraciju sučelja, signal mora doći s računa koji ga smije poslati.

Ne slažite pozadinski način 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šćivanje o statusu i rokovi zaustavljanja opisuju nešto što više nije točno. Napišite jedinicu u podržanom prednjem rasporedu i pustite nadzornika da odradi daemonski posao.

Sačuvajte --background za sesije koje osoba pokrene i zatim ode. Ako je zahtjev tunel koji postoji prije nego se bilo tko prijavi, dio koji nedostaje je odobreni neinteraktivni identitet plus plan za njegovo obnavljanje, a nijedna zastavica naredbenog retka ne daje nijedno. Dodavanje zastavice u boot skriptu stvara tunel koji tiho pada na prvoj istekloj vjerodajinci.

Tretirajte kolačić sesije kao vjerodajnicu

OpenConnect dokumentira odvojenu fazu autentikacije kroz --authenticate, a dobiveni materijal može se 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 povijesti ljuske, izvan logova i izvan svakog tiketa koji otvorite. Skripta za predaju također mora sačuvati provjerene podatke o krajnjoj točki koje je klijent dobio uz kolačić; izgubite li ih, kasnije pokretanje može se povezati s hostom na kojem se nikada niste autentificirali, što je gore od veze koja jednostavno padne.

Prođite kroz popis prije nego zatvorite terminal

Četiri stvari trebaju biti istinite: interaktivna prijava završila 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. Kad 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 kad tunel padne bez upozorenja, ta osnovna linija razdvaja promjenu na strani pristupnika od one na strani klijenta.

Povezani članci