Kill switch w Windows bez dodatkowego oprogramowania: profile czy trasy?
Profile zapory podążają za kategorią sieci, trasy za adapterem. Porównaj oba podejścia, a potem sprawdź przypadek awarii, gdy tunelu nie ma, a ikona kłamie.
Klient ginie w połowie pobierania, a ikona w zasobniku znika. Transfer trwa dalej przez domowe łącze. Właśnie ta sekwencja jest powodem istnienia kill switcha, a Windows potrafi się do niego zbliżyć bez drugiego produktu.
Warto znać dwie metody. Zawodzą w różnych miejscach i żadna nie jest pełną odpowiedzią.
Metoda pierwsza: zezwolić programowi tylko na jednym profilu
Zapora Windows ogranicza reguły do profili Domain, Private i Public. Sztuczka polega na daniu adapterowi tunelu jednej kategorii, a adapterowi fizycznemu innej. Potem piszesz regułę wychodzącą, która zezwala chronionemu programowi na profilu tunelu i blokuje go wszędzie indziej. Zapora czyta kategorię, a nie nazwę adaptera.
Najpierw ustaw połączenie VPN na Private, a sieć fizyczną na Public. Potem dodaj regułę blokującą dla programu, obowiązującą dla profili, których nie chcesz. Następnie potwierdź przypisanie za pomocą Get-NetConnectionProfile, bo reguła podąża właśnie za tym przypisaniem.
Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory
New-NetFirewallRule -DisplayName 'Block browser off VPN' -Direction Outbound `
-Program 'C:\Program Files\Mozilla Firefox\firefox.exe' -Action Block -Profile Public
New-NetFirewallRule -DisplayName 'Allow browser on VPN' -Direction Outbound `
-Program 'C:\Program Files\Mozilla Firefox\firefox.exe' -Action Allow -Profile Private
Słabość jest strukturalna. Reguła profilu podąża za kategorią, więc gdy Windows przeklasyfikuje sieć hotelową, blokada może przestać obowiązywać. Nic na liście reguł się wtedy nie zmienia.
Metoda druga: usunąć fizyczną trasę domyślną
Podejście oparte na trasach jest bardziej toporny i znacznie łatwiejszy do audytu. Zanotuj fizyczną bramę, pozwól VPN zainstalować własną trasę domyślną z niższą metryką, a następnie usuń fizyczną trasę domyślną. Nic innego nie może już przenosić ruchu.
route print -4
route delete 0.0.0.0 mask 0.0.0.0 192.168.50.1
route print -4 | findstr /c:"0.0.0.0"
Gdy klient ginie, trasa VPN odchodzi razem ze swoim adapterem. Maszyna przechodzi w tryb offline zamiast wyciekać, i dokładnie to ma wytwarzać kill switch.
Dwa szczegóły decydują, czy przetrwa tydzień. DHCP przywraca bramę za każdym razem, gdy łącze drgnie. Fizyczny adapter ze statycznym adresem unika tej niespodzianki. Adres samego serwera VPN też musi pozostać osiągalny. Bez tej trasy do hosta klient nigdy nie połączy się ponownie po zerwaniu, które uruchomiło blokadę.
Metoda trzecia: bez bramy, jedna trwała trasa do hosta
Trzecia opcja zaczyna się od wyczyszczenia bramy w ustawieniach adaptera. Potem zastępuje ją jedna trwała trasa do punktu końcowego VPN. Maszyna może wtedy rozmawiać z serwerem i z niczym innym, dopóki tunel się nie podniesie.
route -p add 198.51.100.44 mask 255.255.255.255 192.168.50.1 metric 1
route print -4 | findstr 198.51.100.44
Przywrócenie bramy przywraca zwykły internet, co czyni to czystym włącznikiem i wyłącznikiem. Nie zależy od skryptu obserwującego zdarzenia interfejsu. Nie interesuje go też, jak sieć jest kategoryzowana.
Ceną jest całkowita izolacja, gdy tunel nie działa. Aktualizacje się zatrzymują, a wraz z nimi samo pobieranie, które wywołało to ćwiczenie. Na laptopie służbowym to często słuszne, a na maszynie prywatnej to decyzja, którą trzeba podjąć świadomie.
Dlaczego ikona globusa niczego nie dowodzi
Windows zgłasza osiągalność przez sondę do punktu końcowego Microsoftu. Ta sonda nie mówi nic o twoim tunelu. Połączony tunel może siedzieć za globusem, który zgłasza brak internetu, a martwy może pokazywać zdrowe połączenie.
Sprawdź, zabijając proces klienta, a potem spróbuj osiągnąć publiczny adres po numerze. Zapytanie o nazwę może zostać obsłużone z pamięci podręcznej, więc ani ikona, ani odpowiedź DNS nie są dowodem.
Co zapisać po prawdziwym zerwaniu
Wykonaj test jako sekwencję, a nie jako jedno sprawdzenie. Zabij proces zamiast się rozłączać, potem spróbuj adresu numerycznego w obu rodzinach. Następnie przywróć klienta i potwierdź, że nadal dociera do własnego serwera przez zachowaną trasę.
taskkill /IM openvpn-gui.exe /F
ping -4 198.51.100.44
ping -6 2606:4700:4700::1111
route print -4 | findstr /c:"0.0.0.0"
Powtórz sekwencję po uśpieniu, po zmianie Wi-Fi i po przejściu z kabla na bezprzewodowe. To właśnie przy tych przejściach zawodzą jednocześnie metoda profilu i zachowanie DHCP. Reguła, która trzyma się na biurku, nie musi trzymać się w hotelu.
Zapisz krok cofnięcia obok każdej reguły i trasy. Microsoft dokumentuje tworzenie reguł wychodzących w swojej referencji reguł zapory Windows, i to lepsze źródło niż poradnik oparty tylko na zrzutach ekranu.