vpn.persistent se stále snaží, ale neponechává vás připojené
Vlastnost žádá službu VPN, aby udržela tunel napříč změnami spojení. Aktivace, životnost, záměr a chování kill switch zůstávají oddělenými otázkami.
NetworkManager vystavuje jednu vlastnost, vpn.persistent, a lidé po ní chtějí, aby současně odpověděla na čtyři různé otázky. Její dokumentace je opatrná: perzistence se uplatní, když ji služba VPN podporuje a profil ji povolí, a spojení se pak žádá, aby přežilo změny spojení a výpadky až do výslovného odpojení. Stejná dokumentace také ukazuje, že vlastnost má ve výchozím nastavení hodnotu false, což většina plánů obnovy nepředpokládá. Čtěte to jako žádost o pokus, nikoli jako slib výsledku.
K čemu nastavení skutečně zavazuje
Hodnota uložená v profilu je pokyn pro správce a správce musí tento pokyn předat zásuvnému modulu VPN, který ví, co s ním dělat. Pokud nainstalovaný modul vlastnost ignoruje, profil se přesto aktivuje a protokol zůstane tichý, což je to nejhorší z obou světů pro každého, kdo bude později ladit. Nic v profilu nemůže přinutit modul implementovat chování, které nemá, takže jediným viditelným výsledkem je absence.
Proto je podmínka v dokumentaci důležitější než přepínač. Zkontrolujte, který modul a vydání skutečně máte, a napište verzi vedle popisu spojení, aby ji příští člověk nemusel znovu objevovat. Politika obnovy postavená na neimplementovaném příznaku selže v produkci přesně jednou a vždy v nejméně vhodnou chvíli.
Přístup k vlastnosti jako k pokusu také nastavuje správné očekávání pro testování. Nekontrolujete, zda je příznak nastaven; kontrolujete, zda se něco stalo, když spojení spadlo. To jsou různé experimenty a jen jeden z nich stojí za odpoledne.
Čtyři otázky sloučené do jedné
Aktivace se ptá, co VPN vůbec zvedne. Profil NetworkManager lze připojit k základnímu spojení, samostatně spravovaná služba OpenVPN má vlastní spouštění a přidání třetího spouštěče k tomuto uspořádání vám dá dva vlastníky s různými představami o tom, kdo velí. Rozhodněte, která komponenta vlastní spouštění, než přidáte další spouštěč.
Obnova se ptá, co se stane, když se spojení změní nebo zmizí, což je úzká otázka, kterou vpn.persistent řeší. Životnost se ptá, zda klient pozná, že vzdálená strana přestala odpovídat, a místo toho na ni odpovídá chování keepalive nebo restartu OpenVPN; oba mechanismy se často popisují stejným slovem a implementují na různých místech. Testujte je odděleně, různými nástroji, jinak přisoudíte jedno chování druhému.
Záměr se ptá, zda je opětovné připojení vůbec žádoucí, a to je otázka, na kterou dotazování stavu nedokáže odpovědět. Úmyslné zastavení a výpadek vytvářejí stejný neaktivní stav, takže cokoli, co se při absenci připojuje znovu, hádá o lidském rozhodnutí. Hádání je v pořádku až do chvíle, kdy někoho přejede.
Kontrolní seznam, který je drží oddělené
Provádějte události v pořadí, místo abyste četli konfiguraci a uvažovali o ní, a zaznamenejte, co každá ukazuje, s časovým razítkem.
Za prvé aktivujte zamýšlené základní spojení a potvrďte, že VPN naskočila přes spouštěč, který jste očekávali, a ne přes mechanismus, na který jste zapomněli, že je nainstalovaný. Za druhé během schváleného přerušení porovnejte události VPN správce, stav obnovy vlastnického klienta a nový požadavek na soukromý zdroj. Za třetí se záměrně odpojte, počkejte a potvrďte, že vám nic nespouští profil za zády.
Třetí krok lidé přeskakují a právě on nejčastěji najde skutečnou závadu. Hlídač, který dotazuje aktivní profil a při jeho nepřítomnosti se znovu připojí, vesele zruší úmyslné odpojení uživatele. Z pohledu uživatele to není odolnost; je to stroj, který neposlechne. Zeptejte se jich, než nějaký přidáte.
Zapište výsledky do stejného dokumentu jako popis spojení. Politika obnovy je jen tak dobrá, jak naposledy, kdy ji někdo viděl úmyslně selhat. Časová razítka dělají rozdíl viditelným pro každého, kdo si poznámky přečte příště.
Ověřování je součástí obnovy
Opětovné připojení není čistě síťový akt. Pokud schválený tok vyžaduje novou výzvu, jednorázový kód nebo tajemství, ke kterému se kontext aktivace nedostane, žádné nastavení perzistence ho nedokáže vytvořit z ničeho.
To vysvětluje známý vzorec: spojení se obnoví na stroji s odemčenou klíčenkou a selže na stejném stroji po restartu. Síťová vrstva udělala přesně to, co se po ní žádalo, a vrstva přihlašovacích údajů neměla co nabídnout.
Opravte pracovní postup přihlašovacích údajů místo zkracování intervalu opakování. Rychlejší pokusy proti výzvě, na kterou nikdo nedokáže odpovědět, vytvářejí šum v protokolu a falešný dojem, že se něco zkouší.
Perzistence není kill switch
Vlastnost se snaží udržet nebo obnovit vztah VPN. Nerozhoduje, co smějí aplikace dělat, když je VPN mimo provoz, a sama nic neblokuje.
Pokud je požadavkem, aby žádný provoz neodcházel mimo tunel, je to samostatná politika s vlastním mechanismem, vlastním testováním a vlastními režimy selhání. Předpoklad, že to perzistence pokrývá, mění bezpečnostní rozhodnutí v nehodu.
Zaznamenejte obě poloviny do poznámek k obnově: co VPN zkusila a jaký provoz aplikací byl povolen, dokud pokus probíhal.