Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

VPN 서버 직접 만드는 방법: 클라우드(AWS)부터 공유기 활용까지 완벽 가이드

오늘날 VPN은 온라인 활동과 개인 정보를 제3자의 감시로부터 보호해 주는 필수적인 도구가 되었습니다. 최고의 VPN 업체들은 더 좋은 서비스를 제공하기 위해 치열하게 경쟁하고 있지만, 아무리 뛰어난 상용 VPN 서비스라도 완벽하지 않습니다. 그렇기 때문에 손에 있는 제한된 자원만으로 직접 VPN 서버를 구축하는 방법을 알아두면 큰 도움이 됩니다.

물론 자신만의 VPN 서버를 만들려면 약간의 추가 노력이 필요하지만, 그 대가로 중개업체 없이 순수하게 내 데이터만 오가는 환경을 얻을 수 있습니다. VPN 서버 설정을 마친 후에는 반드시 VPN이 정상적으로 작동하는지 확인하는 것도 잊지 마세요.

  • 클라우드 서비스 활용: Amazon Web Services(AWS) 등에서 VPN 서버를 생성하고, 각 기기를 클라이언트로 설정해 연결할 수 있습니다.
  • VPN 지원 공유기 활용: VPN 기능을 내장한 공유기가 있다면 가정용 네트워크에 바로 VPN 서버를 구축할 수 있습니다.
  • 펌웨어 플래싱: VPN 전용 공유기가 없더라도 공유기 펌웨어를 교체(플래싱)하면 VPN 서버를 운영할 수 있습니다.

클라우드에서 VPN 서버 만드는 방법

직접 VPN 서비스를 구축하는 일은 어려워 보이지만, 클라우드 기반 솔루션을 이용하면 생각보다 훨씬 간단합니다. 컴퓨터나 라우터를 별도로 준비할 필요 없이, 웹 양식에 정보와 결제 수단만 입력하면 시스템이 나머지를 알아서 처리해 줍니다.

1단계: Amazon Web Services 계정 만들기

  • AWS(Amazon Web Services) 페이지로 이동하여 'Create an AWS Account'를 클릭하고 계정을 생성합니다.
  • 생성한 계정으로 로그인합니다.
  • [Security, Identity & Compliance] 패널에서 [Services] → [IAM] 메뉴로 이동합니다.
  • [Users] → [Add User]를 차례로 클릭합니다.
  • 사용자 이름을 입력하고 'Programmatic Access'를 선택한 뒤 [Next]를 누릅니다.
  • 'Attach Existing Policies Directly'를 선택합니다.
  • 검색창에 'admin'을 입력해 Administrator Access 정책에 체크하고 [Next]를 클릭합니다.
  • [Download CSV] 버튼을 클릭해 CSV 파일을 저장합니다. 이 파일에는 나중에 필요한 중요한 인증 정보가 담겨 있으니 잘 보관하세요.

2단계: Algo 및 의존성 패키지 설치

Windows PC에 Algo를 설치하는 데는 몇 분 정도 걸립니다. 안내에 따라 Algo를 다운로드하고, 명령줄로 설치 및 설정을 진행하면 됩니다.

Windows 10에서 설치하기

  • [설정] → [업데이트 및 보안]으로 이동합니다.
  • [개발자용] 메뉴에서 '개발자 모드'를 활성화합니다.
  • [제어판] → [프로그램]으로 이동합니다.
  • 'Windows 기능 켜기/끄기'를 열고 목록을 스크롤해 'Linux용 Windows 하위 시스템'을 선택한 뒤 [확인]을 누릅니다.
  • 설치가 완료되면 컴퓨터를 재시작합니다.
  • 검색창에 'Bash'를 입력해 Linux Bash가 설치되었는지 확인하고, Bash를 실행한 뒤 몇 가지 질문에 답하며 소프트웨어 설치를 마칩니다.

설치가 끝나면 다음 명령어를 입력합니다.

sudo apt-get update && sudo apt-get install python-pip python-setuptools build-essential libssl-dev libffi-dev python-dev python-virtualenv git -y

다음으로 저장소를 클론(clone)합니다.

git clone https://github.com/trailofbits/algo && cd algo
  • 'nano config.cfg'를 입력하고 Enter를 눌러 사용자 목록 파일을 엽니다.
  • 화면에 나타난 텍스트 에디터에 VPN 사용을 허가할 사용자 이름들을 입력합니다.
  • Ctrl+X를 눌러 목록을 저장하고 에디터를 종료합니다.
  • 터미널에 './algo'를 입력하면 설치가 시작됩니다.
  • Amazon EC2 Provider 번호는 2번입니다. AWS를 이용할 경우 2를 입력합니다.
  • VPN 이름을 입력하고 서버 위치를 선택합니다. (실제 위치에 가까운 서버를 고르면 먼 지역보다 성능이 더 좋습니다.)
  • 앞서 AWS에서 다운로드한 CSV 파일을 열어 AWS Access Key와 Secret Key를 복사한 뒤, 요구되는 입력란에 붙여넣습니다.
  • 'VPN On Demand' 항목에서 Yes를 선택하면 VPN이 자동으로 작동하도록 설정할 수 있습니다.

Linux 및 macOS에서 설치하기

아래 안내는 macOS 전 기종에서 동작하며, Linux의 경우 Debian 배포판 기준입니다. 다른 리눅스 배포판은 명령어가 다를 수 있으니 유의하세요.

  • Algo를 다운로드하고 algo-master zip 파일의 압축을 해제합니다.
  • Linux/macOS 터미널에 'cd'를 입력한 뒤, algo-master 폴더를 터미널 창으로 드래그 앤 드롭합니다. 아래와 같은 형태가 됩니다.
cd /Users/hammalfarooq/Downloads/algo-master

Linux에서 실행할 명령어:

$ sudo apt-get update && sudo apt-get install \
build-essential \
libssl-dev \
libffi-dev \
python-dev \
python-pip \
python-setuptools \
python-virtualenv -y

macOS에서 실행할 명령어:

$ python -m ensurepip --user
$ python -m pip install --user --upgrade virtualenv

이어서 나머지 Algo 의존성 패키지를 설치합니다.

$ python -m virtualenv --python=`which python2` env &&
source env/bin/activate &&
python -m pip install -U pip virtualenv &&
python -m pip install -r requirements.txt

macOS를 사용한다면 cc 컴파일러 설치가 추가로 필요할 수 있습니다.

  • 'sudo nano config.cfg'를 입력해 VPN 사용 허가 사용자 목록을 작성하고, Ctrl+X로 저장·종료합니다.
  • 같은 터미널에 './algo'를 입력해 설치를 시작합니다.
  • Amazon EC2 Provider는 2번이므로 2를 입력합니다.
  • VPN 이름과 서버 위치를 지정합니다. (내 실제 위치와 가까울수록 속도가 빠릅니다.)
  • AWS에서 받은 CSV 파일을 열어 Access Key와 Secret Key를 요구되는 곳에 붙여넣습니다.
  • 'VPN On Demand'에서 Yes를 선택해 자동 연결을 설정하거나, 아니면 수동으로 운영할 수 있습니다.

3단계: 기기별 VPN 프로필 설정

새 기기에 VPN을 설정하려면 프로필만 등록하면 됩니다.

Apple 기기(Mac / iOS)

  • Mac: configs 폴더 안 algo-master 폴더에 있는 .mobileconfig 파일을 더블클릭하면 설치가 시작되며 프로필이 생성됩니다.
  • iOS: .mobileconfig 파일을 이메일이나 AirDrop으로 iPhone/iPad에 전송해 열고, 프로필을 설치해 VPN에 연결합니다. 연결을 해제하고 싶을 때는 해당 프로필을 삭제하면 됩니다.

Android 기기

  • Google Play 스토어에서 strongSwan VPN Client를 설치합니다.
  • configs 폴더에서 P12 파일을 찾아 Android 기기로 전송합니다.
  • strongSwan 앱으로 P12 파일을 열고 VPN에 연결하면 끝납니다.

Windows 기기

  • config 폴더에서 PEM, P12, PS1 파일을 복사해 다른 위치에 붙여넣습니다.
  • PEM 파일을 '신뢰할 수 있는 루트 인증 기관' 폴더에 가져오기(Import)합니다.
  • Windows PowerShell을 열고 PEM, P12, PS1 파일을 붙여넣은 디렉터리로 이동합니다.
  • 다음 명령어를 입력하고 Enter를 누릅니다.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
  • Powershell 스크립트 파일명을 입력하고 Enter를 누릅니다.
  • 마지막으로 아래 명령어를 입력해 설정을 마무리합니다.
Set-ExecutionPolicy Restricted -Scope CurrentUser

이제 성공적으로 VPN에 연결되었으며, 모든 트래픽이 안전하게 암호화됩니다!

VPN 지원 공유기로 VPN 서버 만드는 방법

이 방법의 전제 조건은 'VPN 공유기'가 무엇이고 일반 공유기와 어떻게 다른지 아는 것입니다. VPN 기능을 지원하는 자신의 공유기를 사용하는 것이 가장 쉬운 VPN 구축 방법이지만, 해당 기능이 없는 공유기라면 이 방법은 적용되지 않습니다.

  • 공유기 관리 페이지에서 'VPN'을 검색해 호환 여부를 확인합니다.
  • 설명서를 잃어버렸다면 브라우저에 192.168.0.1 또는 192.168.1.1을 입력해 관리자 페이지에 접속한 뒤, 설정 화면에서 VPN 섹션을 찾으면 됩니다.
  • VPN 섹션에서 안내에 따라 VPN 서버를 설정합니다.
  • VPN 프로토콜을 지정하고 사용자 이름과 비밀번호를 입력한 뒤, 공유기를 재시작해 설정을 적용합니다.
  • 각 기기에서 VPN을 사용하려면 공유기 설정 파일을 내려받아 기기에 설치(추출)합니다.

펌웨어 플래싱으로 VPN 서버 만드는 방법

가정용 네트워크에 VPN을 구축하는 또 다른 방법은 공유기의 펌웨어를 교체(플래싱)하는 것입니다. 플래싱은 사전 조사가 반드시 필요한 작업이므로 신중하게 접근해야 합니다. 요약하자면, VPN 호스팅 같은 기능을 포함한 운영체제를 공유기에 새로 설치하는 것입니다.

플래싱 전에는 반드시 내 공유기가 DD-WRT 또는 OpenWrt를 지원하는지 호환성을 확인하세요.

공유기 플래싱 절차

  • 내 공유기에 맞는 호환 펌웨어를 PC에 다운로드하고, 공유기와 컴퓨터를 연결합니다.
  • 이더넷 케이블 한쪽 끝은 공유기 LAN 포트에, 다른 한쪽 끝은 컴퓨터 LAN 포트에 꽂습니다.
  • 브라우저에서 공유기 설정 페이지에 접속합니다.
  • 펌웨어 업그레이드 섹션으로 이동합니다.
  • 1단계에서 내려받은 펌웨어로 공유기를 플래싱합니다. 안내 문구를 꼼꼼히 따르세요.

VPN 서버 생성

  • 공유기 설정 페이지로 이동해 안내에 따라 자신만의 VPN 서버를 만듭니다.
  • 설정 페이지에서 VPN 섹션을 찾아 들어갑니다.
  • VPN 프로토콜을 활성화합니다. (권장 프로토콜: OpenVPN)
  • 플래싱 시 선택한 펌웨어 종류(DD-WRT 또는 OpenWrt)에 맞는 명령어를 실행합니다.

VPN 서버 및 클라이언트 설정

  • 먼저 공유기 방화벽 설정에서 인바운드(inbound) VPN 연결을 허용하도록 변경합니다.
  • VPN 서버가 클라이언트와 안전한 채널로 통신할 수 있도록 인증서를 발급합니다.
  • VPN 클라이언트 프로파일링을 위한 개인 키(Private Key)와 인증서를 생성합니다.
  • OpenVPN 소프트웨어를 설치합니다.
  • 인증서와 개인 키를 VPN 클라이언트에게 발급해 프로파일링 과정을 완료합니다.
  • VPN 서버에 접속할 기기들에 클라이언트 프로필을 설정합니다.
  • 권한이 있는 VPN 클라이언트가 이제 내 VPN 서버에 접속할 수 있습니다.

나만의 VPN 서버를 만들어야 하는 이유

수천 개의 VPN 업체가 파격적인 조건으로 서비스를 내놓는 요즘에도, 직접 VPN 서버를 운영하면 얻을 수 있는 확실한 장점들이 있습니다.

월간 VPN 요금 절약

자체 VPN 서버를 운영하면 매달 계좌에서 빠져나가던 구독료를 모두 아낄 수 있으며, VPN의 기본적인 보안 효과는 그대로 누릴 수 있습니다. 다만 킬 스위치(Kill Switch), 이중 암호화, 멀티홉(Multi-Hop)처럼 상용 VPN이 제공하는 부가 기능은 사용할 수 없다는 점은 감안해야 합니다.

어디서든 집 네트워크 접속

집 공유기에 VPN을 구축해 두면 마치 집에 있는 것처럼 내부 자원을 이용할 수 있습니다. 집에 있는 프린터로 문서를 출력하거나 개인 파일에 접속하는 등, 유선 연결 상태에서 가능했던 거의 모든 작업을 원격 VPN 연결로도 처리할 수 있습니다.

제3자의 추적 방지

내 웹 서핑 기록이 VPN 업체에 의해 기록·감시되는 것이 불편하다면, 자체 VPN 서버가 확실한 해결책입니다. 물론 철저한 무로그(no-log) 정책을 지키는 상용 서비스가 필요하다면 ExpressVPN 같은 업체를 선택할 수도 있습니다.

직접 만들지 말아야 할 이유

모든 사람이 VPN 서버를 직접 구축할 필요는 없습니다. 믿을 만한 상용 VPN 서비스라면 이미 높은 수준의 보안과 프라이버시를 제공하며, 특별한 사유가 없다면 굳이 직접 만들 이유가 적습니다.

느려지는 인터넷 속도

VPN은 트래픽을 암호화·우회시키기 때문에, 평균적인 대역폭을 사용하는 환경이라면 인터넷 속도가 느려질 수 있습니다. 가정용 공유기는 VPN 서버 구축에 유용하지만 항상 충분한 대역폭을 갖추고 있지는 않습니다. 원래 인터넷 속도가 느린 환경이라면 자체 VPN 서버 운영이 속도 저하를 더욱 심화시킬 수 있습니다.

집 IP 하나뿐인 제한된 선택지

상용 VPN은 여러 국가·도시의 서버를 제공해 스트리밍 라이브러리를 열거나 지역 기반 게임의 지역을 우회하는 데 활용할 수 있게 해줍니다. 반면 자체 VPN 서버는 내 집 네트워크의 IP 주소 하나만 사용할 수 있다는 한계가 있습니다.

상용 VPN의 부가 기능 부재

상용 VPN은 단순히 인터넷 트래픽을 암호화하는 것을 넘어, 온라인 프라이버시를 지켜 주는 다양한 기능을 함께 제공합니다. 킬 스위치, 이중 암호화, 멀티홉 같은 기능은 대부분 기본 요금제에 포함되어 있으며, 웹에서 익명성과 보안을 유지하는 데 큰 도움이 됩니다.

마무리

VPN 서버를 직접 만들기 전에, 정말로 그럴 필요가 있는지 우선순위를 따져보세요. 제한된 자원으로 자체 VPN 서버를 구축하면 지속적인 유지 관리, 누수 검사, 올바른 설정 작업 등 추가 노력이 계속 필요합니다. 반대로 조금만 검색해 보면 합리적인 가격의 신뢰할 만한 상용 VPN 서비스도 충분히 찾을 수 있습니다.

이 글에 대한 생각이 있으신가요? 아래 댓글로 의견을 남기거나, Twitter나 Facebook에서 이야기를 이어가 주세요.

함께 읽으면 좋은 글: