Kako po interaktivni prijavi prestaviti OpenConnect v ozadje
Dokončajte prijavo v ospredju in nato predajte tunel lastnemu načinu v ozadju odjemalca. Preverjanja, ki ga ohranijo najdljivega in ustavljivega.
Dokončate poziv MFA, tunel se dvigne in zaprtje terminala s seboj podre povezavo. To je problem nadzora, ne overjanja, in OpenConnect že ima stikalo, ki ga reši. Rešitev je pustiti odjemalca, da se po končanem zagonu razcepi v ozadje, ko je interaktivni del res končan. Sledi zaporedje preverjanj: pojdite jih po vrsti in ustavite se pri prvem, ki ne velja za vaš prehod.
Potrdite, kaj prehod zahteva ob prijavi
Preden vpišete ukaz, zapišite pot poverilnic, ki jo vsili uvedba. Samo potrdilo, geslo plus žeton in krog brskalnika prek ponudnika SAML se obnašajo različno, način v ozadju pa ne more preskočiti nobenega. Možnost spremeni, kaj se zgodi po zagonu, nikoli med njim.
Zapeljiva rešitev je avtomatizirati poziv. Ovoj, ki ob prepoznavi poziva za geslo vpiše fiksni odgovor, se zlomi v trenutku, ko prehod zahteva enkratno kodo, in pusti poverilnico v datoteki, ki jo lahko berejo drugi računi. Če mora sejo odobriti človek, ohranite človeka v postopku.
Zaženite prvo sejo v ospredju in preberite izhod
Povežite se enkrat običajno in pustite, da se izpiše celoten rokovanje. Zapišite uporabljeni protokol, pot potrdila ali žetona, naslov tunela, ki ga dodeli strežnik, in vsako opozorilo pred sprejetjem povezave. Ta zapis je vaša osnovna linija in edini poceni način, da pozneje ločite težavo odjemalca od spremembe prehoda. Shranite ga izven medpomnilnika terminala.
Nato ponovite isti klic z načinom v ozadju in dodano datoteko PID, na primer openconnect --background --pid-file /run/openconnect.pid vpn.example.net, pri čemer ohranite protokol in možnosti overjanja, ki jih zahteva prehod, v isti vrstici. Priročnik OpenConnect to možnost opisuje kot nadaljevanje v ozadju po končanem zagonu, zato se mora interaktivna faza končati prva.
Poskrbite, da bo delujoči proces najdljiv in ustavljiv
Datoteka PID je dokaz le, dokler ustreza živemu procesu. Namestite jo v imenik, ki je v lasti servisnega računa, in pred pošiljanjem signala primerjajte zabeleženo številko s tabelo procesov. Ponovni zagoni in sesutja pustijo datoteko, zastarela datoteka pa je običajen razlog, da skript za zaustavitev poroča o uspehu, medtem ko tunel še teče. Preverjanje obravnavajte kot del postopka zaustavitve, ne kot izbirni korak.
Pošljite signal preverjenemu PID in nato potrdite, da je vmesnik tunela res izginil, namesto da zaupate izhodnemu stanju. Če odjemalec potrebuje povišane pravice za konfiguracijo vmesnika, mora signal priti z računa, ki ga sme poslati.
Načina v ozadju ne zlagajte pod nadzornika
systemd in podobni nadzorniki pričakujejo, da imajo v lasti proces, ki so ga zagnali, zato jih odjemalec, ki se razcepi, zmede. Nadzornik vidi izhod zagonskega programa, medtem ko resnična povezava živi naprej, zato logika ponovnega zagona, poročanje o stanju in roki za zaustavitev opisujejo nekaj, kar ne drži več. Enoto napišite v podprti postavitvi ospredja in prepustite delo demona nadzorniku.
--background prihranite za seje, ki jih oseba začne in nato odide. Če je zahteva tunel, ki obstaja pred tem, ko se kdo prijavi, manjka odobrena neinteraktivna identiteta in načrt za njeno obnavljanje, nobena zastavica ukazne vrstice pa ne da nobenega od obeh. Dodajanje zastavice v zagonsko skripto ustvari tunel, ki tiho odpove ob prvi potekli poverilnici.
Piškotek seje obravnavajte kot poverilnico
OpenConnect dokumentira ločeno fazo overjanja prek --authenticate, nastali material pa je mogoče vrniti z --cookie-on-stdin. Ta par obstaja za integracijsko delo in kar ustvari, je enako občutljivo kot geslo, ki ga je ustvarilo.
Vrednost hranite izven zgodovine lupine, izven dnevnikov in izven vsake prijave, ki jo odprete. Skript za predajo mora ohraniti tudi preverjene podatke o končni točki, ki jih je odjemalec prejel s piškotkom; če jih izgubite, se lahko poznejši zagon poveže z gostiteljem, ki ga nikoli niste overili, kar je slabše od povezave, ki preprosto odpove.
Pojdite skozi seznam, preden zaprete terminal
Štiri stvari bi morale veljati: interaktivna prijava se je končala v ospredju, datoteka PID kaže na preverjen proces, vprašanje nadzornika je razrešeno v eno ali drugo smer in piškotek ima načrt shranjevanja, ki ni navadna besedilna datoteka. Ko veljajo vse štiri, je odhod od terminala varen in tunel teče naprej.
Če ena odpove, popravite to postavko, preden se dotaknete drugih, ker ostala preverjanja tega ne morejo nadomestiti. Ohranite tudi zapis ospredja prvega zagona: ko bo tunel naslednjič padel brez opozorila, bo prav ta osnovna linija ločila spremembo na strani prehoda od tiste na strani odjemalca.