Hoe om OpenConnect ná interaktiewe aanmelding in die agtergrond te laat loop
Voltooi die aanmelding in die voorgrond en gee dan die tonnel aan die kliënt se eie agtergrondmodus oor. Die kontroles wat dit vindbaar en stopbaar hou.
Jy voltooi die MFA-aansoek, die tonnel kom op, en die sluit van die terminaal neem die verbinding saam af. Dit is 'n toesigprobleem, nie 'n verifikasieprobleem nie, en OpenConnect lewer reeds die skakelaar wat dit oplos. Die oplossing is om die kliënt na die agtergrond te laat vertak nadat die opstart klaar is, wanneer die interaktiewe deel werklik verby is. Hier volg 'n reeks kontroles: werk dit in volgorde deur en stop by die eerste een wat nie vir jou poort geld nie.
Bevestig wat die poort by aanmelding vereis
Voordat jy 'n opdrag tik, skryf neer watter geloofsbriefpad die ontplooiing afdwing. Slegs 'n sertifikaat, wagwoord plus 'n token, en 'n blaaierrondgang deur 'n SAML-verskaffer gedra hulle elkeen anders, en agtergrondmodus kan nie een daarvan oorslaan nie. Die opsie verander wat ná die opstart gebeur, nooit wat daartydens gebeur nie.
Die verleidelike oplossing is om die aansoek te outomatiseer. 'n Omhulsel wat 'n vaste antwoord tik sodra dit 'n wagwoordaansoek herken, breek die oomblik wanneer die poort 'n eenmalige kode vra, en dit laat 'n geloofsbrief in 'n lêer wat ander rekeninge kan lees. As 'n mens die sessie moet goedkeur, hou die mens in die kring.
Voer die eerste sessie in die voorgrond uit en lees die uitset
Maak een keer normaal verbinding en laat die hele handdruk druk. Let op die protokol wat gebruik word, die sertifikaat- of tokenpad, die tonneladres wat die bediener toeken, en elke waarskuwing voordat die verbinding aanvaar word. Daardie transkripsie is jou basislyn en die enigste goedkoop manier om later 'n kliëntprobleem van 'n poortverandering te onderskei. Stoor dit buite die terminaal se buffer.
Herhaal dan dieselfde opdrag met agtergrondmodus en 'n PID-lêer bygevoeg, byvoorbeeld openconnect --background --pid-file /run/openconnect.pid vpn.example.net, en hou die protokol- en verifikasie-opsies wat jou poort vereis op dieselfde reël. Die OpenConnect-handleiding beskryf dié opsie as voortsetting in die agtergrond nadat die opstart voltooi is, en dit is juis waarom die interaktiewe fase eerste klaar moet wees.
Maak die lopende proses vindbaar en stopbaar
'n PID-lêer is slegs bewyse terwyl dit by 'n lewende proses pas. Sit dit in 'n gids wat die diensrekening besit, en vergelyk die aangetekende nommer met die prosestabel voordat jy enigiets sein. Herstarts en ineenstortings laat die lêer agter, en 'n verouderde lêer is die gewone rede waarom 'n stopscript sukses rapporteer terwyl die tonnel nog op is. Beskou die kontrole as deel van die stopprosedure, nie as 'n opsionele stap nie.
Sein die geverifieerde PID en bevestig dan dat die tonnelkoppelvlak werklik verdwyn het eerder as om die uittredestatus te vertrou. As die kliënt verhoogde regte nodig het om die koppelvlak te konfigureer, moet die sein van 'n rekening kom wat dit mag stuur.
Moenie agtergrondmodus onder 'n toesighouer stapel nie
systemd en soortgelyke toesighouers verwag om die proses te besit wat hulle begin het, en daarom verwar 'n kliënt wat weg vertak hulle. Die toesighouer sien 'n lanseerder uitgaan terwyl die werklike verbinding voortleef, so herbeginlogika, statusverslaggewing en stoptydlimiete beskryf iets wat nie meer waar is nie. Skryf die eenheid in die ondersteunde voorgrondreëling en laat die toesighouer die daemonwerk doen.
Hou --background vir sessies wat 'n mens begin en dan wegstap. As die vereiste 'n tonnel is wat voor enigiemand se aanmelding bestaan, is die ontbrekende stuk 'n goedgekeurde nie-interaktiewe identiteit plus 'n plan om dit te vernuwe, en geen opdragreëlvlag lewer een van die twee nie. Om die vlag by 'n selflaaiscript te voeg, lewer 'n tonnel wat stilweg faal by die eerste vervalde geloofsbrief.
Behandel die sessiekoekie as 'n geloofsbrief
OpenConnect dokumenteer 'n aparte verifikasiefase deur --authenticate, en die resulterende materiaal kan met --cookie-on-stdin teruggegee word. Daardie paar bestaan vir integrasiewerk, en wat dit lewer is net so sensitief soos die wagwoord wat dit geskep het.
Hou die waarde uit die skulpgeskiedenis, uit logs en uit enige kaartjie wat jy oopmaak. 'n Oorhandigingscript moet ook die geverifieerde eindpuntinligting bewaar wat die kliënt saam met die koekie ontvang het; laat dit val en 'n latere lopie kan aan 'n gasheer koppel waaraan jy nooit geverifieer het nie, wat erger is as 'n verbinding wat bloot faal.
Werk deur die lys voordat jy die terminaal sluit
Vier dinge moet waar wees: die interaktiewe aanmelding het in die voorgrond klaargemaak, die PID-lêer wys na 'n proses wat jy geverifieer het, die toesighouervraag is een of ander kant toe besleg, en die koekie het 'n stoorplan wat nie 'n gewone tekslêer is nie. Wanneer al vier geld, is wegstap van die terminaal veilig en bly die tonnel loop.
As een daarvan faal, maak daardie item reg voordat jy die ander aanraak, want die oorblywende kontroles kan dit nie vergoed nie. Bewaar ook die voorgrondtranskripsie van jou eerste lopie: die volgende keer wanneer die tonnel sonder waarskuwing val, is daardie basislyn wat 'n poortverandering van 'n kliëntverandering skei.