다운로드
프라이버시··7 분 소요

VPN 킬 스위치란 무엇인가?

언어: EnglishالعربيةDeutschEspañolفارسیFrançaisहिन्दीBahasa IndonesiaItaliano日本語PolskiPortuguêsРусскийไทยTürkçeУкраїнськаTiếng Việt简体中文繁體中文

VPN 킬 스위치는 VPN 터널이 예기치 않게 끊어졌을 때 네트워크 트래픽을 차단하는 기능입니다. 이 글에서는 킬 스위치가 실제로 어떤 일을 하는지, 운영체제 수준에서 어떻게 구현되는지, 그리고 이 기능이 올바르게 작동하는지 확인하는 방법을 설명합니다.

정의

킬 스위치는 VPN이 명목상 활성화되어 있는 동안 보호되지 않은 인터페이스를 통해 트래픽이 기기 밖으로 나가는 것을 막는 네트워크 수준의 제어 장치입니다. 네트워크 변경, 서버 장애, 또는 그 밖의 어떤 이유로든 VPN 터널이 끊어지면, 킬 스위치는 트래픽이 조용히 기본 네트워크 인터페이스로 되돌아가지 않도록 보장합니다.

이 기능은 때로 “네트워크 잠금”, “상시 보호”, 또는 “인터넷 킬 스위치”라고도 불립니다. 이름과 관계없이 동작은 동일합니다.

킬 스위치가 존재하는 이유

VPN 터널이 항상 완벽하게 안정적인 것은 아닙니다. 네트워크 변경 — Wi-Fi에서 셀룰러로 전환, 액세스 포인트 간 이동, 터널 통과 — 은 연결을 잠시 끊을 수 있습니다. 서버 점검, 간헐적인 피어링 문제, 또는 드문 프로토콜 오류도 연결 끊김을 유발할 수 있습니다.

킬 스위치가 없으면 운영체제는 사용 가능한 인터페이스를 통해 트래픽을 전달합니다. 사용자 입장에서는 기기가 정상적으로 계속 작동하는 것처럼 보이지만 — 웹 페이지가 열리고, 애플리케이션이 연결됩니다 — 트래픽은 이제 VPN이 아니라 로컬 네트워크와 ISP를 거쳐 흐르고 있습니다.

프라이버시를 위해서나 위치 기반 서비스 이용을 위해 VPN에 의존하는 사용자에게 이런 조용한 우회는 VPN을 사용하는 목적을 무너뜨립니다. 킬 스위치는 연결이 조용히 우회되는 대신 중단되도록 보장합니다.

구현 방식

킬 스위치의 구현은 플랫폼마다 다릅니다. 크게 두 가지 접근 방식이 있습니다.

시스템 수준 구현

VPN을 기본 지원하는 플랫폼에서는 킬 스위치가 운영체제에 의해 적용됩니다. iOS에서는 Network Extension 프레임워크가 “includeAllNetworks” 옵션을 제공하는데, 이는 적절한 라우팅 규칙과 결합되면 터널 외의 어떤 인터페이스를 통해서도 트래픽이 기기 밖으로 나가는 것을 막습니다. 이는 커널 수준에서 적용되며 백그라운드에서 실행되는 것을 포함한 모든 애플리케이션에 적용됩니다.

Linux에서는 킬 스위치가 일반적으로 방화벽 규칙 — iptables 또는 nftables — 을 사용해 구현되며, VPN 서버 주소로 향하는 패킷을 제외한 모든 트래픽을 차단합니다. 이 규칙은 터널이 수립될 때 추가되고 의도적으로 연결을 끊을 때 제거됩니다.

애플리케이션 수준 구현

일부 VPN 애플리케이션은 킬 스위치를 애플리케이션 자체 내에서 구현하여, 터널을 모니터링하고 연결 끊김에 대응해 라우팅이나 방화벽 규칙을 조정합니다. 애플리케이션 수준 구현은 더 유연하지만 정책을 적용하기 위해 애플리케이션이 계속 활성 상태로 있어야 합니다.

시스템 수준 적용은 VPN 애플리케이션이 비정상 종료되거나 강제 종료되어도 계속 작동하기 때문에 일반적으로 더 안정적입니다.

킬 스위치의 종류

킬 스위치는 트래픽을 얼마나 적극적으로 차단하는지에 따라 달라지는 여러 모드로 설정할 수 있습니다.

  • 상시 킬 스위치. VPN이 활성으로 연결되어 있지 않을 때는 애플리케이션이 실행되지 않은 경우를 포함해 항상 트래픽이 차단됩니다. 가장 강력한 보장을 제공하지만 비활성화하려면 명시적인 조치가 필요합니다.
  • 세션 킬 스위치. 트래픽은 활성 VPN 세션 중에만 차단됩니다. 사용자가 수동으로 연결을 끊으면 킬 스위치는 비활성화되고 일반 트래픽이 재개됩니다.
  • 애플리케이션별 킬 스위치. 일부 데스크톱 플랫폼에서 제공되며, 이 모드는 VPN이 끊겼을 때 특정 애플리케이션을 차단하면서 나머지는 정상적으로 계속 작동하도록 허용합니다. 이 설정은 민감한 데이터를 다루는 도구에 유용하지만, 세분화는 복잡성을 더합니다.

킬 스위치가 작동하는 시점

킬 스위치는 운영체제가 보통 장애로 취급하지 않는 상황을 처리하도록 설계되었습니다. 흔한 작동 조건은 다음과 같습니다:

  • 네트워크 중단이나 서버 측 점검으로 인해 VPN 서버에 도달할 수 없게 됩니다.
  • 기기의 네트워크 인터페이스가 변경되고 — 예를 들어 Wi-Fi에서 셀룰러로 전환 — 터널이 빠르게 재수립되지 않습니다.
  • 프로토콜 수준의 오류로 인해 터널이 종료됩니다.
  • 로컬 네트워크가 VPN 서버로 오가는 패킷을 누락하는데, 여기에는 특정 캡티브 포털 상황도 포함됩니다.

이러한 각 상황에서 킬 스위치는 터널이 재수립되거나 사용자가 명시적으로 킬 스위치를 비활성화할 때까지 트래픽을 중단합니다.

한계

킬 스위치는 방어적 기능이지 완전한 해결책은 아닙니다. 두 가지 한계는 짚어둘 가치가 있습니다.

전환이 항상 즉각적인 것은 아닙니다. 터널이 끊긴 순간과 킬 스위치가 완전히 작동하는 순간 사이에는 이론적으로 트래픽이 누출될 수 있는 작은 시간 창이 존재할 수 있습니다. 잘 설계된 시스템에서는 이 창이 실질적으로 무시할 수 있을 만큼 짧지만 — 보통 몇 밀리초 정도 — 항상 0인 것은 아닙니다. 시스템 수준 구현은 애플리케이션 수준 구현보다 이 창을 더 안정적으로 닫습니다.

DNS 누출은 별개의 문제입니다. 킬 스위치는 보호되지 않은 인터페이스를 통해 IP 트래픽이 나가는 것을 막지만, DNS 요청은 때때로 시스템 기본 설정을 통해 터널을 우회할 수 있습니다. 완전한 설정은 킬 스위치와 터널을 통한 DNS 라우팅을 모두 사용합니다. Snap VPN은 둘 다 기본값으로 설정합니다.

작동 확인

킬 스위치는 터널 장애를 시뮬레이션하고 트래픽이 차단되는지 확인하는 방식으로 검증할 수 있습니다.

  1. VPN에 연결하고 IP 조회 서비스에 서버 주소가 표시되는지 확인합니다.
  2. 애플리케이션을 통해 연결을 끊지 않은 채로 VPN이 사용 중인 네트워크 인터페이스를 비활성화합니다 — 예를 들어 터널이 활성 상태일 때 Wi-Fi를 끕니다.
  3. 웹 페이지를 불러와 봅니다. 킬 스위치가 제대로 작동한다면, 페이지는 터널이 재수립되거나 킬 스위치를 의도적으로 비활성화할 때까지 로드되지 않아야 합니다.

iOS에서는 VPN 프로필이 적절한 옵션으로 설정되어 있을 때 킬 스위치가 시스템 수준에서 적용됩니다. Snap VPN은 킬 스위치를 기본값으로 활성화하며 이를 선택적 설정으로 노출하지 않습니다 — 이 기능은 무심코 비활성화될 수 있는 설정이 아니라 표준 구성의 일부입니다.

VPN 설정과 VPN에 무엇을 기대할 수 있는지에 대한 자세한 내용은 VPN 입문 글 iPhone 설정 가이드를 참고하세요.