vpn.persistent sa stále snaží, ale neudrží vás pripojených
Táto vlastnosť žiada službu VPN, aby udržala tunel pri zmenách spojenia. Aktivácia, životnosť, zámer a správanie kill switch zostávajú oddelenými otázkami.
NetworkManager vystavuje jednu vlastnosť, vpn.persistent, a ľudia po nej žiadajú, aby súčasne odpovedala na štyri rôzne otázky. Jej dokumentácia je opatrná: trvalosť sa uplatní, keď ju služba VPN podporuje a profil ju povolí, a spojenie sa potom žiada, aby prežilo zmeny spojenia a výpadky až do výslovného odpojenia. Tá istá dokumentácia tiež ukazuje, že vlastnosť má predvolenú hodnotu false, čo väčšina plánov obnovy nepredpokladá. Čítajte to ako žiadosť o pokus, nie ako sľub výsledku.
K čomu nastavenie skutočne zaväzuje
Hodnota uložená v profile je pokyn pre správcu a správca musí tento pokyn odovzdať zásuvnému modulu VPN, ktorý vie, čo s ním robiť. Ak nainštalovaný modul vlastnosť ignoruje, profil sa aj tak aktivuje a protokol zostane tichý, čo je to najhoršie z oboch svetov pre každého, kto bude neskôr ladiť. Nič v profile nemôže prinútiť modul implementovať správanie, ktoré nemá, takže jediným viditeľným výsledkom je neprítomnosť.
Preto je podmienka v dokumentácii dôležitejšia ako prepínač. Skontrolujte, ktorý modul a ktoré vydanie skutočne máte, a napíšte verziu vedľa popisu spojenia, aby ju ďalší človek nemusel znovu objavovať. Politika obnovy postavená na neimplementovanej vlajke zlyhá v produkcii presne raz a vždy v najnevhodnejšom momente.
Pristupovať k vlastnosti ako k pokusu nastavuje aj správne očakávanie pre testovanie. Nekontrolujete, či je vlajka nastavená; kontrolujete, či sa niečo stalo, keď spojenie spadlo. Sú to rôzne experimenty a len jeden z nich stojí za popoludnie.
Štyri otázky zlúčené do jednej
Aktivácia sa pýta, čo VPN vôbec zdvihne. Profil NetworkManager možno pripojiť k základnému spojeniu, samostatne spravovaná služba OpenVPN má vlastné spúšťanie a pridanie tretieho spúšťača k tomuto usporiadaniu vám dá dvoch vlastníkov s rôznymi predstavami o tom, kto velí. Rozhodnite, ktorý komponent vlastní spúšťanie, skôr než pridáte ďalší spúšťač.
Obnova sa pýta, čo sa stane, keď sa spojenie zmení alebo zmizne, a to je úzka otázka, ktorou sa zaoberá vpn.persistent. Životnosť sa pýta, či klient dokáže rozpoznať, že vzdialená strana prestala odpovedať, a namiesto toho na to odpovedá správanie keepalive alebo reštartu OpenVPN; oba mechanizmy sa často opisujú tým istým slovom a implementujú na rôznych miestach. Testujte ich oddelene, rôznymi nástrojmi, inak pripíšete jedno správanie druhému.
Zámer sa pýta, či je opätovné pripojenie vôbec žiaduce, a to je otázka, na ktorú prieskum stavu nedokáže odpovedať. Úmyselné zastavenie a výpadok vytvárajú rovnaký neaktívny stav, takže čokoľvek, čo sa pri neprítomnosti pripája znova, hádže o ľudskom rozhodnutí. Hádanie je v poriadku až do chvíle, keď niekoho prejde.
Kontrolný zoznam, ktorý ich drží oddelene
Vykonávajte udalosti v poradí, namiesto čítania konfigurácie a uvažovania o nej, a zaznamenajte, čo každá ukazuje, s časovou pečiatkou.
Po prvé, aktivujte zamýšľané základné spojenie a potvrďte, že VPN naskočila cez spúšťač, ktorý ste očakávali, a nie cez mechanizmus, o ktorom ste zabudli, že je nainštalovaný. Po druhé, počas schváleného prerušenia porovnajte udalosti VPN správcu, stav obnovy vlastníckeho klienta a novú požiadavku na súkromný zdroj. Po tretie, úmyselne sa odpojte, počkajte a potvrďte, že vám nič nespúšťa profil za chrbtom.
Tretí krok je ten, ktorý ľudia preskakujú, a práve on najčastejšie nájde skutočnú chybu. Strážca, ktorý sondovuje aktívny profil a pri jeho neprítomnosti sa znova pripojí, veselo zruší úmyselné odpojenie používateľa. Z pohľadu používateľa to nie je odolnosť; je to stroj, ktorý neposlúchne. Opýtajte sa ich, skôr než nejaký pridáte.
Zapíšte výsledky do toho istého dokumentu ako popis spojenia. Politika obnovy je len taká dobrá, ako naposledy, keď ju niekto videl úmyselne zlyhať. Časové pečiatky robia rozdiel viditeľným pre každého, kto si poznámky prečíta nabudúce.
Overovanie je súčasťou obnovy
Opätovné pripojenie nie je čisto sieťový úkon. Ak schválený tok vyžaduje novú výzvu, jednorazový kód alebo tajomstvo, ku ktorému sa kontext aktivácie nedostane, žiadne nastavenie trvalosti ho nedokáže vytvoriť z ničoho.
To vysvetľuje známy vzor: spojenie sa obnoví na stroji s odomknutou kľúčenkou a zlyhá na tom istom stroji po reštarte. Sieťová vrstva urobila presne to, o čo sa žiadalo, a vrstva prihlasovacích údajov nemala čo ponúknuť.
Opravte pracovný postup prihlasovacích údajov namiesto skracovania intervalu opakovania. Rýchlejšie pokusy proti výzve, na ktorú nikto nedokáže odpovedať, vytvárajú šum v protokole a falošný dojem, že sa niečo skúša.
Trvalosť nie je kill switch
Vlastnosť sa snaží udržať alebo obnoviť vzťah VPN. Nerozhoduje, čo smú aplikácie robiť, kým je VPN vypnutá, a sama nič neblokuje.
Ak je požiadavkou, aby žiadna premávka nevychádzala mimo tunela, je to samostatná politika s vlastným mechanizmom, vlastnými testami a vlastnými režimami zlyhania. Predpoklad, že to trvalosť pokrýva, mení bezpečnostné rozhodnutie na nehodu.
Zaznamenajte obe polovice do poznámok k obnove: čo VPN skúsila a aká premávka aplikácií bola povolená, kým pokus prebiehal.