Kill switch в приложението срещу kill switch във файъруола: какво блокира всеки
Един kill switch затваря приложения, друг инсталира филтри на пакети. Преминете тези проверки по ред и спрете на първата, на която не можете да отговорите честно.
Kill switch в списък с функции не ви казва почти нищо за това какво се случва, когато тунелът падне. Една реализация затваря избрани процеси, друга инсталира филтри на пакети на границата на операционната система, а трета просто се опитва да се свърже отново. Разликата се вижда в секундите след отказ, не на екрана с настройки. Преминете тези проверки по ред и спрете на първата, на която не можете да отговорите честно, защото там свършва реалното ви покритие.
Първо назовете механизма за налагане
Прекратяването на процеси е функция от жизнения цикъл на приложението. То намира избрани програми след установен отказ на тунела и ги затваря. Всичко, което не е основният процес, оцелява: помощни услуги, фонова синхронизация и всяко приложение, стартирано секунда по-късно, имат свой жизнен цикъл и своето време.
Филтрирането на пакети е функция на операционната система. То отказва трафик, който не следва разрешения път, което е по-силно обещание, но само доколкото правилото наистина съвпада. Семейството адреси, интерфейсът, изключените приложения и изключенията решават това, а не етикетът в клиента.
Блокировката преживява ли клиента?
Задайте четири въпроса в този ред: какво се случва при срив, при ръчно излизане, при излизане от профила и при рестартиране. Правило, поддържано от самия клиент, обикновено се премахва при нормално спиране и често остава след срив. Правило, инсталирано в хранилището на платформата, може да се държи обратно: да преживее както клиента, така и понякога деинсталирането.
Затворете клиента по средата на дълго изтегляне и вижте дали трансферът спира, или продължава.
Търсете стандартните дупки
IPv6 е първата. Правило, написано за адреси IPv4, оставя трафика IPv6 незасегнат и много клиенти записват само половината v4. Втората е интерфейсът: USB тетеринг, втори Wi-Fi адаптер и клетъчен модем може да не са включени в правило, ограничено до основната връзка. Изключени приложения и изключенията за локална мрежа са третата.
В Windows можете да прочетете инсталираните правила, вместо да вярвате на превключвателя: Get-NetFirewallRule -DisplayName '*VPN*' и netsh wfp show filters показват какво съществува. В Linux iptables -S, ip6tables -S и nft list ruleset покриват обичайните случаи и сравняването на трите е смисълът.
DNS е обичайното изтичане
Блокирането на TCP, докато UDP 53 остава отворен, ви дава много убедителен kill switch, който все още отговаря на всяка заявка за име на хост. Същото важи, когато DNS се предаде на резолвер на друг интерфейс или когато клиентът блокира само v4, а резолверът е достъпен през v6.
При спрян тунел разрешете едно известно име и вижте дали ще се върне отговор. Ако се върне, трафикът не е напълно блокиран, каквото и да казва иконата за състояние.
Тествайте прехода, не превключвателя
Изключването на VPN от собственото му меню е нормално спиране, а нормалният случай всяка реализация обработва добре. Преходът, който има значение, е грубият: убийте процеса на тунела, извадете мрежата, оставете сървъра да спре да отговаря. След това стартирайте заявка и вижте дали тя се проваля, или тихо използва физическата връзка.
Резултат от един лаптоп не се пренася на телефон или рутер. Различни API на платформите, различни настройки по подразбиране, а на Android разликата е рязка: always-on с блокиране се налага от системата, а не от клиента, затова продължава да работи, когато клиентът не работи. Ръководството за VPN в Android описва това разделение.
Пазете път за връщане
Блокирането на системно ниво има обратен режим на отказ. Филтри, които преживяват клиента, могат да оставят машината напълно без мрежа след деинсталиране, което е обаждане до поддръжката без очевидна причина. Преди да включите какъвто и да е kill switch, който записва правила на платформата, отбележете как се премахва, и пазете пътя за ремонт от доставчика там, където можете да го намерите.
Ако не можете да отговорите на проверките за срив, IPv6, DNS и преход за вашия клиент, третирайте го като превключвател на ниво приложение с известни пропуски и планирайте съответно.