시중에는 수많은 상용 VPN 서비스가 존재하지만, 많은 경우 직접 VPN을 구축하는 것이 가장 좋은 선택입니다.
서드파티 VPN을 사용하면 데이터가 해당 업체의 서버를 경유하게 되며, 백엔드에서 우리의 데이터가 어떻게 처리되는지 전혀 알 수 없습니다. 프라이버시를 지키고 싶다면 WireGuard를 활용해 자신만의 VPN 서버를 구축해 보는 것을 고려해 보세요.
그렇다면 왜 WireGuard로 VPN을 구축해야 할까요? WireGuard란 정확히 무엇이며, 어떻게 이를 사용해 안전한 네트워크를 만들 수 있을까요?
WireGuard란 무엇인가?
WireGuard는 최신 오픈소스 VPN으로, IPsec이나 OpenVPN 같은 기존 VPN 프로토콜보다 뛰어난 성능을 보여줍니다.
쉽게 말해, 스마트폰이나 데스크톱 같은 기기와 VPN 서버 간의 연결을 암호화하는 데 사용되는 가상 사설망(VPN) 프로토콜입니다.
다행히도 완전히 무료로 사용할 수 있으며, 훨씬 강력한 보안 네트워크 터널을 제공해 네트워크 계층을 암호화합니다.
WireGuard 사용 전 준비물
설치 단계로 넘어가기 전에 다음 준비물이 있는지 확인하세요:
- 리눅스 기반 운영체제: 이 가이드에서는 Ubuntu 20.04 LTS가 설치된 Amazon Lightsail 서버를 사용합니다.
- 로컬 컴퓨터: 이 가이드에서는 Windows 10 64비트 클라이언트를 사용합니다(원격 시스템도 가능).
- WireGuard: 로컬 컴퓨터에 미리 설치되어 있어야 합니다.
우분투 기반 서버를 사용했지만, 다른 배포판에서도 큰 수정 없이 작동할 것입니다. 다만 일부 조정이 필요할 수 있습니다. 또한 원격 서버에 연결하는 경우 로컬 시스템에서 연결할 권한이 있는지 반드시 확인하세요.
새 클라우드 서버 설정 방법
WireGuard 설치를 시작하려면 클라우드 서버가 필요합니다. 클라우드 서버 제공업체와 구성 옵션이 매우 다양하기 때문에 새 서버 설정은 다소 복잡할 수 있습니다.
하지만 간단하게 몇 가지 기본 사항을 안내해 드리겠습니다. 어떤 클라우드 서버를 사용하든 제공업체의 대시보드에서 바로 인스턴스나 드롭릿을 시작하고 중지할 수 있습니다.
그런 다음 위치(가급적 자신과 가까운 곳)를 선택하고, 적절한 사양으로 서버를 구성한 뒤 서버를 실행하세요. 참고로 공유 호스팅을 사용하면 관리형 서버보다 높은 성능을 기대하기 어렵습니다.
참고: 최신 무료 버전의 WireGuard는 리소스 효율성이 크게 향상되어 512MB RAM과 가상 CPU 1개면 충분합니다. 하지만 3대 이상의 기기를 연결하려면 유료 플랜으로 전환하는 것을 강력히 권장합니다.
서버에 WireGuard 설치하기
터미널에서는 Putty를 사용해 서버의 SSH에 연결했습니다. Putty를 처음 사용한다면 Windows에서 SSH를 사용하는 다른 방법들을 미리 확인해 보세요.
클라우드 서버를 시작한 후 아래 단계에 따라 WireGuard를 설치하세요.
1. 서버에 로그인하고 다음 명령어를 실행해 시스템이 최신 상태인지 확인합니다:
sudo apt-get update && sudo apt-get upgrade -y
완료되면 서버에 WireGuard를 설치하고 구성할 수 있습니다.
2. 이제 Angristan의 GitHub 스크립트를 기반으로 한 다음 명령어로 WireGuard를 설치합니다:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
3. 다음 명령어로 스크립트를 실행합니다:
sudo ./wireguard-install.sh
4. 엔터 키를 누르면 즉시 터미널에 일련의 질문이 표시됩니다. 질문에 순서대로 답하거나 기본 답변을 그대로 사용할 수도 있습니다.
5. WireGuard가 성공적으로 설치될 때까지 각 단계에서 Enter 키를 눌러 계속 진행합니다. 설치가 끝나면 아무 키나 눌러 서버에서 WireGuard 구성을 종료할 수 있습니다.
팁: WireGuard 서버에 연결하려는 각 클라이언트마다 이 단계를 반복해야 합니다.
다행히 WireGuard는 대부분의 운영체제용 소프트웨어를 제공하므로 Windows, Linux, macOS, Android 또는 iOS 기기를 연결하는 과정이 매우 간단합니다.
WireGuard 설치 후에는 아래 단계에 따라 추가적인 서버 측 기능을 구성하세요.
WireGuard 클라이언트 구성 방법
마지막으로 WireGuard VPN 서버에 연결하고 테스트할 클라이언트를 구성해야 합니다. 클라이언트가 Windows, macOS, Linux 또는 BSD 중 어느 환경에서 실행되는지는 중요하지 않습니다. WireGuard 클라이언트란 고유한 공개 키를 사용해 VPN 서버에 연결하는 컴퓨터나 기타 기기를 의미합니다. WireGuard 클라이언트를 구성하려면 다음 단계를 따르세요:
- 터미널에 기본 클라이언트 이름을 입력하고 Enter 키를 누릅니다.
- 터미널에 IPv4 및 IPv6 주소가 표시되면 Enter 키를 두 번 더 누릅니다.
- 이 시점에서 구성 파일이 자동으로 생성됩니다. 파일 경로를 기록하거나 복사해 두세요.
참고: 개인 키는 반드시 비밀로 유지해야 합니다. 개인 키에 접근할 수 있는 사람은 누구나 VPN 연결을 설정할 수 있으며, 심지어 이를 악용할 수도 있습니다.
또한 WireGuard는 Android 또는 iOS 기기로 스캔할 수 있는 QR 코드를 생성합니다. 덕분에 서버에서 스마트폰으로 구성 파일을 수동으로 복사하는 번거로움 없이 손쉽게 설정할 수 있습니다.
방화벽 및 IP 포워딩 구성 방법
WireGuard 서버 설정 외에도 로컬 네트워킹과 방화벽을 구성해야 합니다. 이를 통해 서버에 연결할 수 있는 사용자를 더욱 세밀하게 통제할 수 있습니다.
1. 다음 명령어로 시스템 구성 파일을 엽니다:
sudo nano /etc/sysctl.conf
2. 다음 줄에서 "#" 기호를 찾아 삭제합니다: #net.ipv4.ip_forward=1. 이렇게 하면 서버에서 IPv4 주소 포워딩이 활성화됩니다.
3. 마지막으로 변경 사항을 저장하고 아래 명령어를 실행해 변경 사항을 영구적으로 적용합니다:
sudo sysctl -p
이제 WireGuard 서버가 피어 클라이언트들의 트래픽을 전 세계로 전달할 수 있게 됩니다.
기술에 더 익숙하다면 악의적인 공격으로부터 서버를 보호하기 위해 방화벽을 설정할 수도 있습니다. 이를 위해서는 클라우드 서버에 소프트웨어 방화벽을 설치하거나, 서버 제공업체의 인스턴스 설정에서 "방화벽" 기능을 활성화하면 됩니다.
WireGuard로 VPN에 연결하는 방법
클라이언트 자격 증명을 확보하고 서버에 WireGuard를 설치했다면, 이제 VPN에 연결할 차례입니다.
Windows에서 WireGuard VPN 연결하기
1. 터미널에 아래 명령어를 입력하여 현재 디렉터리의 폴더나 파일을 확인합니다:
ls
2. 구성 파일의 파일 이름을 복사합니다. 여기서는 파일 이름이 "wg0-client-windows.conf"이지만, 실제 파일 이름은 사용자마다 다릅니다.
3. 완료되면 아래 명령어로 터미널에서 파일 내용을 읽습니다.
cat wg0-client-windows.conf
"wg0-client-windows.conf"를 자신의 구성 파일 이름으로 교체하는 것을 잊지 마세요.
4. 이 단계에서 WireGuard 구성 정보를 확인할 수 있습니다. 마지막으로 "[Interface]"부터 끝까지 모든 내용을 복사합니다.
5. 이제 Windows에서 WireGuard를 열고 Add Tunnel > Add empty tunnel로 이동합니다.
6. 터널 이름을 지정하고 복사한 텍스트를 편집 상자에 붙여넣습니다. 완료되면 Save 버튼을 클릭합니다.
7. 다음 화면에서 Activate를 클릭하여 VPN에 연결합니다.
Android에서 WireGuard VPN 연결하기
WireGuard는 Android 버전에 관계없이 거의 모든 Android 폰과 호환됩니다. 그리고 iOS 기기의 VPN 연결 단계도 Android 기기와 거의 동일합니다.
WireGuard를 사용해 Android 폰에서 VPN을 구성하려면 다음 단계를 따르세요:
- WireGuard 앱을 다운로드하여 설치합니다.
- 앱을 열고 화면 오른쪽 하단의 플로팅 아이콘을 탭합니다.
- SCAN FROM QR CODE 옵션을 탭합니다.
- 필요한 권한을 허용하고 QR 코드를 스캔합니다.
- 완료되면 새 터널 이름을 입력하고 Create Tunnel을 탭합니다.
- 마지막으로 스위치를 켜서 자신만의 VPN에 연결합니다.
이제 원하는 만큼 WireGuard 서버와 클라이언트를 빠르게 설정하여, 자신 외에는 아무도 통제할 수 없는 암호화된 사설 네트워크를 만들 수 있습니다.
대부분의 VPN 업체 역시 WireGuard 프로토콜을 사용한다는 점을 고려하면, 위 단계를 따라 직접 모든 것을 효과적으로 처리할 수 있는데 굳이 비싼 요금을 지불하면서 데이터에 대한 접근 권한을 넘겨줄 이유가 없습니다.
개인 VPN으로 프라이버시 강화하기
이제 WireGuard를 사용해 자신만의 VPN을 빠르고 쉽게 구성할 수 있습니다. 반면 시간을 투자하고 싶지 않다면 가장 간단한 방법은 VPN 구독료를 지불하는 것입니다.
하지만 더 많은 통제권과 프라이버시를 원한다면 라우터에 VPN을 설치하거나, 나아가 자신만의 VPN 서버를 직접 호스팅해 보는 것도 좋은 선택입니다.
WireGuard의 주목할 만한 장점은 연결 클라이언트 수에 제한이 없다는 것입니다. 즉, 원하는 만큼 많은 클라이언트를 연결할 수 있습니다. 다만 저사양 서버에 클라이언트가 많을수록 속도가 느려진다는 점은 기억해 두세요.