vpn.persistent продолжува да обидува, но не ве држи поврзани
Ова својство бара од VPN услугата да го задржи тунелот при промени на врската. Активацијата, живоста, намерата и однесувањето на kill switch остануваат одделни прашања.
NetworkManager изложува едно својство, vpn.persistent, и луѓето бараат тоа да одговори на четири различни прашања одеднаш. Неговата документација е внимателна: постојаноста важи кога VPN услугата ја поддржува и профилот ја овозможува, а потоа врската се бара да ги преживее промените на врската и прекините до изречно исклучување. Истата документација покажува и дека својството по стандард е false, што повеќето планови за возобновување не го претпоставуваат. Читајте го како барање за обид, а не како ветување за резултат.
На што всушност се обврзува поставката
Вредноста зачувана во профил е упатство за менаџерот, а менаџерот мора да го предаде тоа упатство на VPN приклучок што знае што да прави со него. Ако инсталираниот приклучок го игнорира својството, профилот сепак се активира и дневникот останува тивок, што е најлошото од двата света за секој што подоцна ќе дебагира. Ништо во профилот не може да присили приклучок да имплементира однесување што го нема, затоа единствениот видлив резултат е отсуство.
Затоа условот во документацијата е поважен од прекинувачот. Проверете кој приклучок и кое издание навистина го имате и напишете ја верзијата до описот на врската за следниот човек да не мора повторно да го открива. Политика за возобновување изградена на неимплементирано знаменце пропаѓа точно еднаш во продукција и секогаш во најнезгодниот момент.
Третирањето на својството како обид ја поставува и вистинската очекување за тестирање. Не проверувате дали знаменцето е поставено; проверувате дали нешто се случило кога врската падна. Тоа се различни експерименти и само еден од нив е вреден едно попладне.
Четири прашања споени во едно
Активацијата прашува што воопшто го крева VPN-от. Профилот на NetworkManager може да се врзе за основна врска, одделно управувана OpenVPN услуга има свое стартување, а додавањето трет стартер на тој распоред ви дава два сопственика со различни идеи за тоа кој е главен. Одлучете која компонента го поседува стартувањето пред да додадете уште еден тригер.
Возобновувањето прашува што се случува кога врската се менува или исчезнува, а тоа е тесното прашање што го решава vpn.persistent. Живоста прашува дали клиентот може да препознае дека далечната страна престана да одговара, а наместо тоа одговара однесувањето на keepalive или рестартирање на OpenVPN; двата механизми често се опишуваат со ист збор и се имплементираат на различни места. Тестирајте ги одделно, со различни алатки, инаку едно однесување ќе го припишете на другото.
Намерата прашува дали повторното поврзување воопшто е посакувано, и тоа е прашањето на кое анкетата на состојба не може да одговори. Намерното запирање и прекинот даваат иста неактивна состојба, па сето она што се поврзува повторно при отсуство претпоставува човечка одлука. Претпоставувањето е во ред до моментот кога ќе прегази некого.
Контролна листа што ги држи одделно
Изведете ги настаните по ред наместо да ја читате конфигурацијата и да размислувате за неа, и запишете што покажува секој со временски печат.
Прво, активирајте ја предвидената основна врска и потврдете дека VPN-от се крена преку очекуваниот тригер, а не преку механизам што сте заборавиле дека е инсталиран. Второ, за време на одобрен прекин, споредете ги VPN настаните на менаџерот, состојбата за возобновување на клиентот сопственик и ново барање до приватен ресурс. Трето, исклучете се намерно, почекајте и потврдете дека ништо не го рестартира профилот зад вашиот грб.
Третиот чекор е оној што луѓето го прескокнуваат, и тој најчесто го наоѓа вистинскиот дефект. Чувар што проверува активен профил и се поврзува повторно кога го нема весело ќе го поништи намерното исклучување на корисникот. Од гледна точка на корисникот тоа не е отпорност; тоа е машина што нема да послуша. Прашајте ги пред да додадете таква.
Запишете ги резултатите во истиот документ како описот на врската. Политиката за возобновување е толку добра колку последниот пат кога некој ја видел како намерно пропаѓа. Временските печати ја прават разликата видлива за секој што ќе ги прочита белешките следен.
Автентикацијата е дел од возобновувањето
Повторното поврзување не е само мрежно дејство. Ако одобрениот тек бара нов предизвик, еднократен код или тајна до која контекстот на активација не може да стигне, ниедна поставка за постојаност не може да ја создаде од ништо.
Тоа објаснува познат образец: врската се обновува на машина со отклучен приврзок за клучеви и пропаѓа на истата машина по рестарт. Мрежниот слој го направи точно она што беше побарано, а слојот за акредитиви немаше што да понуди.
Поправете го работниот тек за акредитиви наместо да го скратувате интервалот за повторни обиди. Побрзите обиди кон барање на кое никој не може да одговори создаваат шум во дневникот и лажен впечаток дека нешто се обидува.
Постојаноста не е kill switch
Својството се обидува да ја задржи или возобнови VPN врската. Тоа не одлучува што смеат апликациите да прават додека VPN-от е исклучен, и самото не блокира ништо.
Ако барањето е никаков сообраќај да не излегува надвор од тунелот, тоа е одделна политика со свој механизам, свои тестови и свои режими на откажување. Претпоставката дека постојаноста го покрива тоа ја претвора безбедносната одлука во несреќа.
Запишете ги двете половини во белешките за возобновување: што се обиде VPN-от и каков апликациски сообраќај беше дозволен додека траеше обидувањето.