추가 소프트웨어 없는 Windows 킬 스위치: 프로필인가 경로인가?
방화벽 프로필은 네트워크 범주를 따르고, 경로는 어댑터를 따른다. 둘을 비교한 뒤 터널이 사라지고 아이콘이 거짓말하는 장애 상황을 시험하라.
다운로드 도중 클라이언트가 죽고 트레이 아이콘이 사라진다. 전송은 집 연결을 통해 계속된다. 바로 이 순서가 킬 스위치가 존재하는 이유이며, Windows는 두 번째 제품 없이도 그에 가깝게 만들 수 있다.
알아 둘 만한 방법이 두 가지다. 실패하는 지점이 다르고, 어느 쪽도 완전한 답은 아니다.
방법 하나: 프로그램을 한 프로필에서만 허용하기
Windows 방화벽은 규칙을 Domain, Private, Public 프로필로 한정한다. 요령은 터널 어댑터에 한 범주를, 물리 어댑터에 다른 범주를 주는 것이다. 그런 다음 보호할 프로그램을 터널 프로필에서 허용하고 다른 모든 곳에서는 차단하는 아웃바운드 규칙을 쓴다. 방화벽이 읽는 것은 범주이지 어댑터 이름이 아니다.
먼저 VPN 연결을 Private로, 물리 네트워크를 Public로 설정한다. 그런 다음 원하지 않는 프로필에 적용되는 차단 규칙을 프로그램에 추가한다. 이후 규칙이 따르는 그 할당을 Get-NetConnectionProfile로 확인한다.
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
약점은 구조적이다. 프로필 규칙은 범주를 따른다. 그래서 Windows가 호텔 네트워크를 다시 분류하면 차단이 효력을 잃을 수 있고, 그때 규칙 목록에는 아무 변화도 나타나지 않는다.
방법 둘: 물리 기본 경로를 제거하기
경로 방식은 더 거칠고 감사하기가 훨씬 쉽다. 물리 게이트웨이를 적어 두고, VPN이 더 낮은 메트릭으로 자체 기본 경로를 설치하게 한 뒤 물리 기본 경로를 삭제한다. 그러면 다른 무엇도 트래픽을 실을 수 없다.
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"
클라이언트가 죽으면 VPN 경로는 그 어댑터와 함께 사라진다. 기계는 유출되는 대신 오프라인이 되며, 그것이 바로 킬 스위치가 만들어야 할 결과다.
일주일을 버티는지를 두 가지 세부가 결정한다. 링크가 흔들릴 때마다 DHCP가 게이트웨이를 되돌려 놓는다. 고정 주소를 쓰는 물리 어댑터라면 그 놀라움을 피할 수 있다. VPN 서버 자체의 주소도 계속 도달 가능해야 한다. 그 호스트 경로가 없으면 클라이언트는 차단을 촉발한 끊김 이후 다시는 연결할 수 없다.
방법 셋: 게이트웨이 없이 영구 호스트 경로 하나
세 번째 선택지는 어댑터 설정에서 게이트웨이를 지우는 것으로 시작한다. 그다음 VPN 종단점으로 가는 영구 경로 하나가 그 자리를 대신한다. 이후 터널이 올라올 때까지 기계는 서버와만 이야기할 수 있다.
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
게이트웨이를 되돌리면 평범한 인터넷이 돌아오고, 이것이 깔끔한 켜기와 끄기 스위치가 된다. 인터페이스 이벤트를 감시하는 스크립트에 의존하지 않는다. 네트워크가 어떻게 분류되는지도 상관하지 않는다.
대가는 터널이 내려가 있는 동안의 완전한 고립이다. 업데이트가 멈추고, 이 연습을 촉발한 다운로드 자체도 멈춘다. 업무용 노트북에서는 흔히 옳고, 개인 기계에서는 의도적으로 내려야 하는 결정이다.
지구본 아이콘이 아무것도 증명하지 못하는 이유
Windows는 Microsoft 종단점에 대한 검사로 도달 가능성을 보고한다. 그 검사는 당신의 터널에 대해 아무 말도 하지 않는다. 연결된 터널이 인터넷 없음을 보고하는 지구본 뒤에 앉아 있을 수 있고, 죽은 터널이 건강한 연결을 보여 줄 수도 있다.
클라이언트 프로세스를 죽여 시험하라. 그런 다음 번호로 공개 주소에 도달을 시도하되, 이름 조회는 캐시에서 답할 수 있으므로 아이콘도 DNS 응답도 증거가 아니다.
실제 단절 뒤에 기록할 것
시험은 단일 점검이 아니라 순서로 수행하라. 연결을 끊는 대신 프로세스를 죽이고, 그다음 두 주소 체계에서 숫자 주소를 시도하라. 이후 클라이언트를 되돌리고 남겨 둔 경로로 여전히 자기 서버에 닿는지 확인하라.
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"
절전 뒤, Wi-Fi 변경 뒤, 유선에서 무선으로 옮긴 뒤 같은 순서를 반복하라. 프로필 방식과 DHCP 동작이 동시에 무너지는 곳이 바로 이런 전환이다. 책상에서 통하는 규칙이 호텔에서도 통한다고 볼 수 없다.
모든 규칙과 경로 옆에 되돌리는 절차를 적어 두라. Microsoft는 아웃바운드 규칙 생성 방법을 Windows 방화벽 규칙 참조에 문서화하고 있으며, 그것이 화면 캡처만 있는 안내서보다 나은 출처다.