vpn.persistent vztraja pri poskušanju, ne drži pa vas povezanih
Lastnost prosi storitev VPN, da obdrži tunel ob spremembah povezave. Aktivacija, živost, namera in vedenje kill switcha ostajajo ločena vprašanja.
NetworkManager izpostavi eno lastnost, vpn.persistent, in ljudje od nje zahtevajo, da hkrati odgovori na štiri različna vprašanja. Njena dokumentacija je skrbna: trajnost velja, ko jo storitev VPN podpira in profil omogoči, povezava pa se nato prosi, da preživi spremembe povezave in izpade do izrecne prekinitve. Ista dokumentacija pokaže tudi, da ima lastnost privzeto vrednost false, česar večina načrtov obnovitve ne predpostavlja. Berite jo kot prošnjo za poskus, ne kot obljubo rezultata.
H čemu se nastavitev res zavezuje
Vrednost, shranjena v profilu, je navodilo za upravitelja, upravitelj pa mora to navodilo predati vtičniku VPN, ki ve, kaj naj z njim stori. Če nameščeni vtičnik lastnost prezre, se profil vseeno aktivira in dnevnik ostane tih, kar je najslabše iz obeh svetov za vsakogar, ki bo pozneje odpravljal napake. Nič v profilu ne more prisiliti vtičnika, da izvede vedenje, ki ga nima, zato je edini viden rezultat odsotnost.
Zato je pogoj v dokumentaciji pomembnejši od stikala. Preverite, kateri vtičnik in katero izdajo v resnici imate, in različico zapišite poleg opisa povezave, da je naslednja oseba ne bo morala znova odkrivati. Politika obnovitve, zgrajena na neuresničeni zastavici, spodleti v produkciji natanko enkrat in vedno v najbolj neprikladnem trenutku.
Obravnavanje lastnosti kot poskusa postavi tudi pravo pričakovanje za testiranje. Ne preverjate, ali je zastavica nastavljena; preverjate, ali se je kaj zgodilo, ko je povezava padla. To sta različna poskusa in samo eden od njiju je vreden popoldneva.
Štiri vprašanja, zlita v eno
Aktivacija vpraša, kaj VPN sploh dvigne. Profil NetworkManager je mogoče vezati na osnovno povezavo, ločeno upravljana storitev OpenVPN ima lasten zagon, in dodajanje tretjega zaganjalnika tej ureditvi vam da dva lastnika z različnimi predstavami o tem, kdo vodi. Odločite se, katera komponenta ima zagon, preden dodate še en sprožilec.
Obnovitev vpraša, kaj se zgodi, ko se povezava spremeni ali izgine, in to je ozko vprašanje, ki ga obravnava vpn.persistent. Živost vpraša, ali lahko odjemalec prepozna, da je oddaljeni konec prenehal odgovarjati, in namesto tega na to odgovori vedenje keepalive ali ponovnega zagona OpenVPN; oba mehanizma se pogosto opisujeta z isto besedo in izvajata na različnih mestih. Testirajte ju ločeno, z različnimi orodji, sicer boste eno vedenje pripisali drugemu.
Namera vpraša, ali je ponovna povezava sploh zaželena, in to je vprašanje, na katero anketa stanja ne more odgovoriti. Namerna ustavitev in izpad ustvarita enako neaktivno stanje, zato vse, kar se ob odsotnosti znova poveže, ugiba o človeški odločitvi. Ugibanje je v redu do trenutka, ko nekoga povozi.
Kontrolni seznam, ki jih ločuje
Izvajajte dogodke po vrsti, namesto da berete konfiguracijo in razmišljate o njej, in zabeležite, kaj vsak pokaže, s časovnim žigom.
Najprej aktivirajte predvideno osnovno povezavo in potrdite, da se je VPN dvignil prek sprožilca, ki ste ga pričakovali, in ne prek mehanizma, za katerega ste pozabili, da je nameščen. Drugič, med odobreno prekinitvijo primerjajte dogodke VPN upravitelja, stanje obnovitve odjemalca lastnika in novo zahtevo do zasebnega vira. Tretjič, namerno se odpojite, počakajte in potrdite, da nič ne znova zažene profila za vašim hrbtom.
Tretji korak je tisti, ki ga ljudje preskočijo, in prav ta najpogosteje najde resnično napako. Čuvaj, ki anketira aktivni profil in se znova poveže, ko ga ni, bo veselo razveljavil namerno odklopitev uporabnika. Z uporabnikovega stola to ni odpornost; to je stroj, ki ne bo ubogal. Vprašajte jih, preden dodate enega.
Rezultate zapišite v isti dokument kot opis povezave. Politika obnovitve je le toliko dobra, kolikor je bila zadnja priložnost, ko jo je kdo videl namerno spodleteti. Časovni žigi naredijo razliko vidno vsakomur, ki bo zapiske prebral naslednjič.
Preverjanje pristnosti je del obnovitve
Ponovna povezava ni zgolj omrežno dejanje. Če odobreni tok potrebuje nov izziv, enkratno kodo ali skrivnost, do katere kontekst aktivacije ne more priti, nobena nastavitev trajnosti tega ne more ustvariti iz nič.
To pojasnjuje znan vzorec: povezava se obnovi na stroju z odklenjenim obeskom za ključe in spodleti na istem stroju po ponovnem zagonu. Omrežna plast je naredila natanko to, kar je bilo zahtevano, plast poverilnic pa ni imela česa ponuditi.
Popravite potek dela s poverilnicami, namesto da skrajšate interval ponovnih poskusov. Hitrejši poskusi proti pozivu, na katerega nihče ne more odgovoriti, ustvarjajo hrup v dnevniku in lažen vtis, da se nekaj poskuša.
Trajnost ni kill switch
Lastnost poskuša ohraniti ali obnoviti odnos VPN. Ne odloča, kaj smejo aplikacije početi, medtem ko je VPN izklopljen, in sama ne blokira ničesar.
Če je zahteva, da noben promet ne zapusti tunela, je to ločena politika z lastnim mehanizmom, lastnimi testi in lastnimi načini odpovedi. Predpostavka, da trajnost to pokriva, spremeni varnostno odločitev v nesrečo.
Zabeležite obe polovici v zapiskih o obnovitvi: kaj je VPN poskusil in kateri promet aplikacij je bil dovoljen, medtem ko je poskus potekal.