Dokončíte výzvu MFA, tunel sa zdvihne a zatvorenie terminálu so sebou zhodí spojenie. To je problém dohľadu, nie autentifikácie, a OpenConnect už má prepínač, ktorý ho rieši. Riešením je nechať klienta odbočiť na pozadí po skončení štartu, keď je interaktívna časť naozaj u konca. Nasleduje sled kontrol: prejdite ich po poradí a zastavte sa pri prvej, ktorá pre vašu bránu neplatí.

Potvrďte, čo brána pri prihlásení vyžaduje

Pred zadaním príkazu si zapíšte cestu k povereniam, ktorú nasadenie vynucuje. Len certifikát, heslo plus token a obchádzka prehliadačom cez poskytovateľa SAML sa správajú odlišne a režim na pozadí nemôže žiadny z nich preskočiť. Voľba mení, čo sa deje po štarte, nikdy nie počas neho.

Lákavým riešením je výzvu automatizovať. Obal, ktorý pri rozpoznaní výzvy na heslo napíše pevnú odpoveď, sa zlomí v okamihu, keď brána požiada o jednorazový kód, a nechá poverenie v súbore, ktorý môžu čítať iné účty. Ak reláciu musí schváliť človek, udržte človeka v procese.

Spustite prvú reláciu v popredí a prečítajte výstup

Pripojte sa raz normálne a nechajte vypísať celé nadväzovanie spojenia. Poznamenajte si používaný protokol, cestu k certifikátu alebo tokenu, adresu tunela prideľovanú serverom a každé varovanie pred prijatím spojenia. Tento záznam je vaša základná línia a jediný lacný spôsob, ako neskôr odlíšiť problém klienta od zmeny brány. Uložte ho mimo bufferu terminálu.

Potom zopakujte to isté volanie s režimom na pozadí a pridaným súborom PID, napríklad openconnect --background --pid-file /run/openconnect.pid vpn.example.net, pričom protokol a možnosti autentifikácie, ktoré brána vyžaduje, ponechajte na tom istom riadku. Príručka OpenConnect túto voľbu opisuje ako pokračovanie na pozadí po dokončení štartu, a práve preto musí interaktívna fáza skončiť prvá.

Urobte bežiaci proces dohľadateľným a zastaviteľným

Súbor PID je dôkazom len dovtedy, kým zodpovedá živému procesu. Umiestnite ho do adresára, ktorý vlastní servisný účet, a pred odoslaním signálu porovnajte zaznamenané číslo s tabuľkou procesov. Reštarty a pády súbor zanechajú a zastaraný súbor je obvyklým dôvodom, prečo skript na zastavenie hlási úspech, kým tunel stále beží. Berte kontrolu ako súčasť postupu zastavenia, nie ako voliteľný krok.

Pošlite signál overenému PID a potom potvrďte, že rozhranie tunela skutočne zmizlo, namiesto toho, aby ste verili návratovému kódu. Ak klient potrebuje zvýšené oprávnenia na konfiguráciu rozhrania, signál musí prísť z účtu, ktorý ho smie odoslať.

Nevrstvite režim na pozadí pod supervízora

systemd a podobní supervízori očakávajú, že vlastnia proces, ktorý spustili, preto ich klient, ktorý odbočí, mätie. Supervízor vidí ukončenie spúšťača, kým skutočné spojenie žije ďalej, takže logika reštartu, hlásenie stavu a časové limity zastavenia opisujú niečo, čo už nie je pravda. Napíšte jednotku v podporovanom usporiadaní popredia a nechajte prácu démona na supervízora.

--background si nechajte pre relácie, ktoré človek spustí a potom odíde. Ak je požiadavkou tunel existujúci pred tým, než sa niekto prihlási, chýba schválená neinteraktívna identita plus plán jej obnovy, a žiadny prepínač príkazového riadka neposkytuje ani jedno. Pridanie prepínača do bootovacieho skriptu vytvorí tunel, ktorý pri prvom vypršanom poverení ticho zlyhá.

Berte cookie relácie ako poverenie

OpenConnect dokumentuje samostatnú fázu autentifikácie cez --authenticate a výsledný materiál možno vrátiť pomocou --cookie-on-stdin. Táto dvojica slúži na integračnú prácu a to, čo produkuje, je rovnako citlivé ako heslo, ktoré ho vytvorilo.

Hodnotu držte mimo histórie shellu, mimo logov a mimo každého tiketu, ktorý otvoríte. Skript na odovzdanie musí tiež zachovať overené informácie o koncovom bode, ktoré klient dostal spolu s cookie; ak ich stratíte, neskorší beh sa môže pripojiť k hostiteľovi, ktorého ste nikdy neautentifikovali, čo je horšie než spojenie, ktoré jednoducho zlyhá.

Prejdite zoznam, kým zatvoríte terminál

Štyri veci by mali platiť: interaktívne prihlásenie sa skončilo v popredí, súbor PID ukazuje na proces, ktorý ste overili, otázka supervízora je rozhodnutá jedným či druhým smerom a cookie má plán ukladania, ktorý nie je obyčajný textový súbor. Keď platia všetky štyri, odchod od terminálu je bezpečný a tunel beží ďalej.

Ak niektorá zlyhá, opravte ju predtým, než sa dotknete ostatných, pretože ostatné kontroly to nemôžu vyvážiť. Zachovajte aj záznam popredia z prvého behu: keď tunel nabudúce bez varovania padne, práve táto základná línia oddelí zmenu na strane brány od zmeny na strane klienta.

Súvisiace články