OpenConnectin siirtäminen taustalle interaktiivisen kirjautumisen jälkeen
Viimeistele kirjautuminen etualalla ja luovuta tunneli asiakkaan omaan taustatilaan. Tarkistukset, jotka pitävät sen löydettävänä ja pysäytettävänä.
MFA-kysely päättyy, tunneli nousee, ja terminaalin sulkeminen vie yhteyden mukanaan. Kyse on valvontaongelmasta, ei todennuksesta, ja OpenConnectissa on jo kytkin, joka ratkaisee sen. Ratkaisu on antaa asiakkaan haarautua taustalle käynnistyksen päätyttyä, kun interaktiivinen osa on todella ohi. Seuraavassa on tarkistusketju: käy ne järjestyksessä ja pysähdy ensimmäiseen, joka ei pidä yhdyskäytäväsi kohdalla.
Vahvista, mitä yhdyskäytävä vaatii kirjautuessa
Ennen kuin kirjoitat komennon, kirjaa käyttöönoton vaatima tunnistautumispolku. Vain varmenne, salasana ja token sekä selainkierros SAML-tarjoajan kautta käyttäytyvät eri tavoin, eikä taustatila voi ohittaa mitään niistä. Valinta muuttaa sitä, mitä tapahtuu käynnistyksen jälkeen, ei koskaan sitä, mitä tapahtuu sen aikana.
Kiusaus on automatisoida kysely. Kääre, joka kirjoittaa kiinteän vastauksen tunnistaessaan salasanakyselyn, hajoaa heti kun yhdyskäytävä pyytää kertakäyttökoodin, ja jättää tunnistetiedon tiedostoon, jonka muut tilit voivat lukea. Jos ihmisen on hyväksyttävä istunto, pidä ihminen mukana.
Aja ensimmäinen istunto etualalla ja lue tuloste
Yhdistä kerran normaalisti ja anna koko kättelyn tulostua. Kirjaa käytettävä protokolla, varmenteen tai tokenin polku, palvelimen antama tunneliosoite ja jokainen varoitus ennen yhteyden hyväksymistä. Se tallenne on lähtökohtasi ja ainoa halpa tapa erottaa myöhemmin asiakasongelma yhdyskäytävän muutoksesta. Tallenna se terminaalin puskurin ulkopuolelle.
Toista sitten sama kutsu taustatilalla ja lisätyllä PID-tiedostolla, esimerkiksi openconnect --background --pid-file /run/openconnect.pid vpn.example.net, pitäen yhdyskäytäväsi vaatimat protokolla- ja todennusasetukset samalla rivillä. OpenConnectin käsikirja kuvaa vaihtoehdon taustalla jatkamiseksi käynnistyksen päätyttyä, ja juuri siksi interaktiivinen vaihe on saatava ensin valmiiksi.
Tee käynnissä olevasta prosessista löydettävä ja pysäytettävä
PID-tiedosto on todiste vain niin kauan kuin se vastaa elävää prosessia. Sijoita se palvelutilin omistamaan hakemistoon ja vertaa tallennettua numeroa prosessitauluun ennen signaalin lähettämistä. Uudelleenkäynnistykset ja kaatumiset jättävät tiedoston, ja vanhentunut tiedosto on tavallinen syy siihen, että pysäytyskomento ilmoittaa onnistumisesta tunnelin ollessa yhä pystyssä. Käsittele tarkistus osana pysäytysmenettelyä, älä valinnaisena vaiheena.
Lähetä signaali vahvistetulle PID:lle ja varmista sitten, että tunnelin liitäntä on todella kadonnut, sen sijaan että luottaisit poistumistilaan. Jos asiakas tarvitsee korotetut oikeudet liitännän määrittämiseen, signaalin on tultava tililtä, jolla on lupa lähettää se.
Älä pinoa taustatilaa valvojan alle
systemd ja vastaavat valvojat odottavat omistavansa käynnistämänsä prosessin, minkä vuoksi haarautuva asiakas hämmentää niitä. Valvoja näkee käynnistäjän poistuvan, kun taas todellinen yhteys jatkuu, joten uudelleenkäynnistyslogiikka, tilanneraportointi ja pysäytysaikakatkaisut kuvaavat jotain, mikä ei enää pidä paikkaansa. Kirjoita yksikkö tuettuun etualarakenteeseen ja anna valvojan tehdä daemonityö.
Säästä --background istuntoihin, jotka ihminen aloittaa ja jättää. Jos vaatimus on tunneli, joka on olemassa ennen kuin kukaan kirjautuu, puuttuva pala on hyväksytty ei-interaktiivinen identiteetti ja suunnitelma sen uusimiseksi, eikä mikään komentorivivalitsin tarjoa kumpaakaan. Valitsimen lisääminen käynnistyskomentoon tuottaa tunnelin, joka epäonnistuu hiljaa ensimmäisellä vanhentuneella tunnistetiedolla.
Kohtele istuntokeksiä tunnistetietona
OpenConnect dokumentoi erillisen todennusvaiheen --authenticate:n kautta, ja syntyvä aineisto voidaan palauttaa --cookie-on-stdin:lla. Pari on integraatiotyöhön, ja se mitä se tuottaa on yhtä arkaluontoista kuin sen luonut salasana.
Pidä arvo poissa komentohistoriasta, lokeista ja jokaisesta avaamastasi tikusta. Luovutusskriptin on myös säilytettävä vahvistetut päätepistetiedot, jotka asiakas sai keksin mukana; jos ne katoavat, myöhempi ajo voi yhdistää isäntään, jota et koskaan todennut, mikä on pahempaa kuin yksinkertaisesti epäonnistuva yhteys.
Käy lista läpi ennen kuin suljet terminaalin
Neljän asian on oltava totta: interaktiivinen kirjautuminen päättyi etualalla, PID-tiedosto osoittaa vahvistamaasi prosessiin, valvojakysymys on ratkaistu suuntaan tai toiseen ja keksillä on tallennussuunnitelma, joka ei ole tavallinen tekstitiedosto. Kun kaikki neljä pitävät, terminaalista poistuminen on turvallista ja tunneli jatkaa toimintaansa.
Jos yksi epäonnistuu, korjaa se ennen kuin kosket muihin, koska muut tarkistukset eivät voi korvata sitä. Tallenna myös ensimmäisen ajon etualatallenne: seuraavan kerran kun tunneli putoaa varoittamatta, juuri se lähtökohta erottaa yhdyskäytävän puolen muutoksen asiakkaan puolen muutoksesta.