공유기 아래 있는 VPN 서버 이용하기

공유기 아래 있는 VPN 서버 이용하기
Photo by Petter Lagson / Unsplash

오래 전에 사용하다가 가동을 중지한 시놀로지 서버를 다시 VPN 서버로 이용하고자 새로 설치하고 인터넷을 연결했습니다. 전에 사용할 때는 외부에서 인터넷이 들어오면 모뎀으로 연결되고, 거기에서 바로 시놀로지 서버로 인터넷을 연결하였기 때문에 VPN 서버를 운용함에 있어서 아무런 문제가 없었습니다.

그런데, 현재 인터넷 환경에서는 공유기를 무려 2대나 거쳐야 하는 무지막지한 상황이라서 내부 네트워크에서는 VPN 서버로 연결이 잘 되지만, 외부에서는 VPN 서버로의 연결이 되지 않는 상황에 처했습니다. 어떻게 해결해야 하는지 많은 시도를 해보았고, 결국 해답을 찾았습니다. 서버 뿐만 아니라 클라이언트에서도 설정을 해줘야만 하네요. 본 글에서는 L2TP/IPsec 방식의 VPN 서버를 다룹니다.

1. VPN 서버 설정

시놀로지 패키지에는 아주 훌륭하게도 손쉽게 VPN 서버를 설치할 수 있는 VPN 패키지를 제공합니다.

VPN 서버를 설치한 다음에 L2TP/IPsec 방식에 대해서 설정을 진행합니다.

서버 설정은 이게 전부입니다. 필요한 경우에는 vpn 전용으로 사용자 계정을 하나 추가해두는 것도 좋습니다. 저는 별도 계정을 만든 다음에 모든 기능에 대해서 접근 거부를 해놓고 오직 vpn만 이용 가능하도록 설정하였습니다.

포트 포워딩

시놀로지 NAS를 공유기 아래에 설치해놨기 때문에 VPN 서버로 접근하기 위해서는 반드시 포트 포워딩이 필요합니다. 아래 글들을 참고하여 TCP 1701, UDP 1701, 500, 4500 포트 4개를 NAS로 포워딩해야 합니다.

포트 포워딩이란?
과거에는 집에 보통 컴퓨터 한 대만 사용하고 스마트폰이 없었기 때문에 인터넷을 설치한다고 하더라도 모뎀만 있으면 컴퓨터에 인터넷을 연결할 수 있었습니다. 최근 들어서는 가족 구성원 한 명마다 컴퓨터를 사용하거나 스마트폰을 이용한 인터넷을 위해서 유무선 공유기가 하나씩은 다 있을 겁니다. 단순히 인터넷을 사용하기만 한다면 공유기는 아무런 문제를 일으키지 않습니다. 하지만, 내가 어떤
포트 포워딩 설정하기 - DIR-842 공유기
기본적으로 모든 공유기의 포트 포워딩 설정은 비슷합니다. 그래서 이 글을 통해 타 공유기에서도 적용 가능하니까 참고하시기 바랍니다. 제가 사용하는 공유기는 디링크 사의 DIR-842 이므로 이를 기준으로 작성합니다. 모든 공유기에서 포트 포워딩의 설정은 똑같습니다. 1. 공유기에 접속한다. 2. 포트 포워딩 메뉴를 찾는다. 3. 포트 포워딩을 설정한다. 이것만 완료하면 끝입니다. DMZ 설정은

이 중에서 주 포트는 UDP 500으로 포트 오픈 확인을 해보면 열려있다고 나와야 합니다.

2. VPN 클라이언트 설정

Windows 10에서는 별도의 VPN 클라이언트 없이도 이미 내장된 VPN 기능이 존재합니다. 윈도우의 설정 - 네트워크 및 인터넷 - VPN에 들어가보면 아래와 같이 VPN 설정을 할 수 있습니다.

[VPN 연결 추가] 버튼을 눌러서 앞서 설정한 서버를 추가합니다.

여기서 연결 이름은 본인이 인지하기 쉬운 VPN 이름을 정해주시면 됩니다. 서버 주소는 앞서 설정한 VPN 서버의 주소를 지정하면 됩니다. 아이피일 수도 있고 도메인일 수도 있습니다. VPN 종료는 L2TP/IPsec으로 하는데, 미리 공유한 키가 있으므로 이걸로 진행합니다. 해당 키를 넣고, 그 아래에는 서버에서 설정한 VPN 계정을 입력하면 됩니다.

그리고 저장을 한 다음에 연결을 해보면 연결이 안될 겁니다. 만약에 공유기 없이 VPN 서버를 설치했다면 문제 없이 동작합니다. 공유기가 있어도 DDNS 등을 설정하고 그 주소를 통해서 VPN 서버를 이용하면 제대로 동작할 수 있습니다. 하지만 DDNS도 없고 포트 포워딩만 해놨으면 대부분의 경우에는 VPN 서버로 연결 자체가 되지 않습니다.

UDP Encapsulation

이처럼 VPN 서버가 공유기 아래 있을 때에는 UDP Encapsulation이라는 방법을 통해서 서버 연결이 가능합니다. 이 기술에 대한 구체적인 내용은 생략하도록 하겠습니다. [링크] Windows에서는 Regedit을 이용하여 레지스트리 하나만 추가하면 손쉽게 UDP Encalsulation을 이용할 수 있습니다. [링크1, 링크2]

먼저, [윈도우 키 + R] 키를 눌러 실행창을 열고 regedit을 입력하여 실행합니다. 또는 시작버튼 옆의 검색에 입력해서 Regedit을 실행해도 됩니다. 그리고 아래 경로를 선택합니다.

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent 

그러면 레지스트리 목록이 나타나는데, 우클릭을 하여 새로 만들기 > DWORD(32비트) 값을 선택합니다. 이름과 값은 아래와 같이 설정합니다.

  • 이름: AssumeUDPEncapsulationContextOnSendRule
  • 값 : 2

정상적으로 설정을 마치면 아래와 같이 되어야 합니다.

이제 컴퓨터를 재부팅하고 앞서 설정한 VPN 연결을 다시 시도해봅니다. 아까와는 달리, 정상적으로 연결이 될 것입니다. 이렇게 해서 공유기 아래 있는 VPN 서버를 이용할 수 있습니다.