Aplikazioa ez da VPN-a aktibo dagoela exekutatu behar: zer da hori betearazten duena
Tunela aktibo dagoela aplikazio bat gelditzea ez da kill switch bat. Erabaki nor den modu-aldaketaren jabe, zer blokeatzen duen berrabiarazte bat, eta zer egin dezakeen systemd-ek eta zer ez.
Kill switch-ek eta gainjartzerik ezaren arauek kontrako norabideetan egiten dute, eta horrek azaltzen du zergatik VPN ezarpen arruntek ez duten inoiz bigarrena adierazten. Kill switch-ak erori den tunel bati erantzuten dio, eta baldintza honek, berriz, aktibo dagoen tunel bati erantzuten dio eta aplikazioa koadrotik kanpo mantentzen du. Diseinu-erabaki batek gehiena konpontzen du: aplikazioa gelditzen den, hastea eragozten zaion edo sareko sarbidea soilik kentzen zaion. Aukeratu geruza hori suebaki-arau edo prozesuak hiltzen dituen begizta baten bila joan aurretik, behaketaz betearazten den arauak leiho bat isurtzen baitu abiarazte bakoitzean.
Mitoa: kill switch batek programak abiaraztea eragozten du
Kill switch-ak trafiko-kontrolak dira, eta horretan zintzoak: paketeak onartu edo ukatu egiten dituzte tunelaren egoeraren arabera. Horietako batek ere ez dio uko egiten programa bat hasteari, eta batek ere ez du ikuskatzen zein exekutagailuk ireki zuen socket bat. Mahaigaineko lasterbide batek, programatutako zeregin batek eta atzeko planoko laguntzaile batek sarera iristen dira aplikazioaren izena ezagutzen duen ezeren aurretik igaro gabe. Bi mekanismo horien arteko distantzia da nahasmen gehiena bizi den tokia.
Programa bat has daitekeen benetan erabakitzen duen antolamendua aplikazio-kontrola da. Windowsen horrek AppLocker edo WDAC esan nahi du, eta kudeatutako macOS-en gailuaren profiletik betearazitako baimenduen zerrenda bat. Biak tunelarekiko independenteak dira, eta horregatik bi baldintzak ticket berean batzen dira eta gero ez ditu batak ere betetzen.
Izenda ezazu modua, tresna izendatu aurretik
Idatzi araua hiru egoerako egoera-makina gisa: erabilera arrunta, VPN lan-saioa eta irteera. Debekatutako gainjartzea erdiko egoerari dagokio, ez bezeroaren softwareari.
Egoera aldatzen duenak hiru ekintza ditu ordenan: aplikazioaren lana amaitzea, bere itzaltze arrunta eskatzea, eta instantzia joan dela baieztatzea tunela igo aurretik. Ordena garrantzitsua da beste muturrean ere, lehenengo konektatzen eta gero programa gelditzen duen VPN batek gainjartzea baimendu baitu jada. Baldintzak konexioa ezartzea barne hartzen badu, konektatuta adierazle baten zain egotea berandu da.
Zer egiten duen benetan bi noranzko gatazka batek
Benetan systemd-k kudeatzen dituen bi zerbitzurentzat, Conflicts= simetrikoa da: bata abiarazteak bestea gelditzen du. Unitate-erreferentziak jokabide hori dokumentatzen du eta bereizita eskatzen du ordena esplizitua, batek gelditzea amaitu behar duenean bestea hasi aurretik. Ordena-sarrera horiek gabe gelditzeak eta hasteak lehiatzen dute, eta emaitza denboraren menpe dago.
Hori ez da ukapen-zerrenda bat. Konektatu mendekotasuna alderantziz, eta aplikazioa abiarazteak VPN-a geldituko du, eta hori da susmatu beharreko hutsegitea tunel bat bere kabuz deskonektatzen denean une aurreikuskor batean. Mahaigaineko aplikazio bat ez da systemd unitate bat, eta NetworkManager konexio bat ere ez da unitate bat, beraz eredu hau zuk zeuk biltzen dituzun zerbitzuetarako bakarrik funtzionatzen du.
Egiaztatu trantsizioak, ez soilik lehen abiaraztea
Lau trantsiziok erabakitzen dute baldintzak eusten duen: saiora sartzea aplikazioa martxan dagoela, erdian berriro abiaraztea, VPN hasiera huts egitea, eta deskonexio nahita. Probatu bakoitza eta gorde emaitza unitate-fitxategien ondoan. Beheko komandoek egungo harremana irakurtzen dute eta gero garrantzitsuena den trantsizioa egiten dute.
systemctl show work-vpn.service -p Conflicts -p After
systemctl start work-vpn.service
systemctl is-active office-sync.service
nmcli connection show --active
Hirugarren komandoak aplikazioa inaktibo utzi beharko luke, eta laugarrenak tunel-konexioa soilik zerrendatu beharko luke saio bat martxan dagoen bitartean. Emaitza desberdinak esan nahi du trantsizioa ez dela batere betearazten.
Saioan zehar berrabiaraztea bilgarrian oinarritutako diseinua agerian uzten duen kasua da, mahai gainetik abiatutako lasterbide batek ez baitu inoiz kontsultatzen abiarazte-script bat. Saihesbide hori garrantzitsua bada, betearazpena aplikazio-kontrolari dagokio, ez VPN bezeroari. Dokumentatu saioaren amaiera ere, eta hobetsi berrezarpen deliberatua sartzean gelditutako prozesu guztiak berriro irekitzearen ordez. Erregistratu trantsizio bakoitzaren emaitza unitate-fitxategiak gordetzen dituen ohar berean.