윈도우 방화벽을 사용한 VPN 킬 스위치

VPN 킬 스위치

VPN을 사용하다 보면 예기치 않게 연결이 끊어지는 상황이 발생합니다. 사용자도 모르는 사이에 VPN 연결이 풀리면 실제 IP가 드러나게 됩니다. 이런 경우를 대비하여 유료 VPN 업체에서는 대부분 킬 스위치를 제공합니다. VPN 연결이 끊기면 특정 프로그램 또는 인터넷 연결을 차단하여 실제 IP 노출을 막아줍니다. 자체 연결 차단 기능이 없는 VPN 서비스를 사용할 때에는 윈도우 기본 방화벽을 이용하여 VPN 킬 스위치를 만들 수 있습니다.



윈도우 방화벽

방화벽 설정은 제어판 또는 Windows Defender 보안 센터를 통해 열 수 있습니다. 실행 창에서 wf.msc 를 입력하여 고급 설정 창을 바로 열 수도 있습니다.


내 컴퓨터에서 다른 컴퓨터(서버)로 연결을 요청하는 것이 아웃 바운드 연결이고, 내 컴퓨터가 서버의 역할을 하여 다른 컴퓨터의 접근을 허용할 때 인바운드 연결을 사용합니다. 인바운드 연결은 보안상 아웃바운드 연결보다 엄격하게 관리됩니다.

방화벽을 제어하는 방법에는 크게 두 가지가 있습니다. 화이트 리스트를 사용하여 허용된 것 이외의 연결은 다 차단하는 방법이 첫 번째입니다. 인바운드 연결은 기본적으로 허용된 규칙 외의 연결은 차단하도록 설정되어 있습니다.

두 번째는 블랙 리스트를 제외하고 모든 연결을 허용하는 설정입니다. 윈도우 방화벽의 아웃바운드 규칙은 기본적으로 모두 허용으로 설정되어 있습니다.

윈도우 방화벽은 각 규칙 간의 우선순위를 사용자가 직접 설정할 수 없게 되어있어 원하는 대로 방화벽을 구성하기 어렵습니다. 기본적으로 패킷이 나가거나 들어올 때, 허용 규칙보다 차단 규칙을 먼저 거치게 되어 있습니다. 즉 모든 연결을 차단하는 규칙을 만들게 되면 아무리 다른 허용 규칙을 만들어도 그 규칙들이 적용되지 않습니다. 특정 프로그램에 차단과 허용 두 가지 규칙이 동시에 설정되어 있다면 그 프로그램은 차단됩니다.



VPN 킬 스위치 만들기

VPN 네트워크는 공용 프로필로, 기본 이더넷의 프로필은 개인 프로필로 설정한 후 개인 프로필을 차단하는 방법을 사용합니다. VPN 연결이 네트워크2, 네트워크3과 같이 새로운 네트워크로 추가되어 프로필을 각각 지정할 수 있어야 합니다. 그렇지 않다면 이 방법은 사용할 수 없습니다.

1. 이더넷 프로필을 개인으로 변경
설정 - 네트워크 - 이더넷 에서 네트워크 프로필을 변경할 수 있습니다.


개인 네트워크는 파일 및 프린터 공유 규칙, 네트워크 검색 규칙 등이 추가되며, 공용 네트워크보다 허용하는 것이 많아집니다. 네트워크 프로필을 개인으로 설정한 후 방화벽 고급 설정 (wf.msc) 을 열어 각각의 규칙을 살펴보면 공용으로 설정했을 때 보다 허용하는 규칙들이 많아진 것을 발견할 수 있습니다.

집에서 사용하는 PC라면 그냥 두어도 상관없지만 공유 옵션이 불편하다면 제어판의 고급 공유 설정에서 변경할 수 있습니다. 설정 > 네트워크 > 공유 옵션을 선택하여 제어판을 열면 해당 규칙을 켜고 끌 수 있습니다.


2. VPN 연결을 공용 프로필로 설정
새 VPN 주소를 연결하면 이 네트워크의 프로필을 선택할 수 있는데 항상 공용으로 설정합니다. 아무런 선택을 하지 않는다면 기본으로 공용 프로필로 설정됩니다.

3. 차단 규칙 생성
공용 연결을 제외한 모든 연결(개인 및 도메인 연결)을 차단하는 규칙을 만듭니다. 방화벽 고급 설정을 열면 인바운드와 아웃바운드 규칙이 있는데 각각 차단 규칙을 만들어 줍니다.


새 규칙 > 사용자 지정 > 모든 프로그램 > 모든 프로토콜 > 모든 IP 주소 > 연결 차단 > 도메인, 개인 선택 > 이름 입력

다음 명령어를 사용하면 더 쉽게 만들 수 있습니다.
>netsh advfirewall firewall add rule name="Allow Public Network ONLY" dir=in action=block profile="domain,private" enable=no
>netsh advfirewall firewall add rule name="Allow Public Network ONLY" dir=out action=block profile="domain,private" enable=no

두 규칙은 기본적으로 사용하지 않음으로 두었다가, VPN을 사용할 때 방화벽 고급 설정 창에서 활성화 시켜 사용합니다. 공용 프로필로 지정된 VPN의 연결이 끊기게 되면 개인 프로필로 설정된 원래의 네트워크가 연결되는데 방화벽에서 허용하지 않으므로 인터넷 연결이 끊기게 됩니다.

규칙을 켜고 끄기 불편하다면 다음 명령어를 사용해 배치파일을 만들어 킬 스위치를 편리하게 켜고 끌 수 있습니다.
규칙 사용하기
>netsh advfirewall firewall set rule name="Allow Public Network ONLY" new enable=yes
규칙 끄기
>netsh advfirewall firewall set rule name="Allow Public Network ONLY" new enable=no

VPN 연결이 "새 네트워크" 로 추가되지 않아서 프로필을 따로 설정할 수 없다면 다른 방법을 사용해야 합니다. 이런 경우 윈도우 방화벽을 이용하여 차단 설정을 만들기 어렵기 때문에 서드파티 방화벽 프로그램이나 킬 스위치를 지원하는 유료 VPN 사용을 권장합니다.

댓글

  1. 안녕하세요 리눅스 opev vpn 용 킬 스위치 구성하다 어려워서 포기했는데
    윈도우 용은 생각보다 쉽게 구성되서 좋네요
    그런데 한가지 수동으로 하면 잘 되는데 불편해서
    배치파일 만들어 볼려고 하는데 따라해봐도 적용이 안되는데 뭐가 문제일까요??
    >netsh advfirewall firewall set rule name="Allow Public Network ONLY" new enable=yes
    >netsh advfirewall firewall set rule name="Allow Public Network ONLY" new enable=no

    Allow Public Network ONLY 이름도 동일하게 맞췄습니다 그런데 방화벽 정용이 안됩니다
    바탕화면에 netsh 파일이 생성되긴하는데

    답글삭제
  2. 배치 파일을 만들 때 netsh 앞에 있는 괄호표시 (>) 까지 붙여넣기 하신것 같습니다...
    그리고 netsh 명령어는 관리자 권한으로 실행해야 합니다.
    배치파일을 우클릭 하면 관리자 권한으로 실행할 수 있습니다.

    답글삭제

댓글 쓰기