글로벌 게임 퍼블리싱을 위한 해외 유저 테스트 VPN 서비스

🧐 | 2023-05-17

안녕하세요, 넷마블 보안실 보안기술팀 최종훈입니다.

글로벌 게임 퍼블리싱

넷마블은 전 세계 다양한 국가에서 즐길 수 있는 게임을 퍼블리싱합니다. 같은 게임이더라도 서비스 권역 국가마다 법적 규제가 다르기에 특정 국가에서는 접속할 수 없도록 막아야 하는 경우도 생기고, 거꾸로 특정 국가에서만 접속할 수 있게 제한해야 하는 서비스도 있습니다. (블랙리스트와 화이트리스트 방식이 적절히 섞여 있습니다.) 즉, 각 국가별 환경에 적절히 맞춰서 서비스(언어, 게임 서버 등)를 제공해야 합니다.

그래서 국가별 접속 제한 설정이 의도한 대로 동작하는지 확인하는 단계를 거쳐야 합니다. 물론, 직접 그 국가에서 게임에 접속해 보는 것이 가장 정확한 방법입니다. 하지만, 이 방법은 많은 시간과 비용을 소모하는 비효율적인 방법이기도 합니다.

넷마블컴퍼니 직원이라면 넷마블 보안기술팀에서 구축한 ‘해외 유저 테스트 VPN’ 서비스를 활용해, 어디서나 다양한 디바이스로 해외 유저 대상 서비스를 테스트할 수 있습니다.

이 글에서는 ‘해외 유저 테스트 VPN’을 구축한 후기를 공유드리려 합니다.

디바이스 IP 주소가 해외 IP 주소라면

전 세계에 드넓게 펼쳐진 유저들은 인터넷에 연결된 자신의 디바이스(스마트폰, 태블릿, PC 등)로 넷마블 게임에 접속합니다. 이때 인터넷에 연결된 디바이스에는 IP 주소가 부여됩니다. 만약 이 IP 주소가 해외 IP 주소가 된다면, 디바이스 언어 설정과 별개로 물리적 접속 자체는 해외 국가에서 접속한 것으로 인식할 수 있습니다.

즉, 서비스를 제공하는 서버는 디바이스 IP 주소를 기준으로 유저의 국가를 구분한다고 할 수 있습니다. (이 IP 주소는 국제기구(IANA)에 의해 국가별로 구분돼 있습니다.) 국내에서 내가 사용하는 디바이스 IP 주소를 해외 IP 주소로 바꿀 수 있다면, 한국에서도 해외에서 접속하는 것처럼 보이게 할 수 있다는 의미가 됩니다.

NAT와 VPN을 활용하면 디바이스 IP 주소를 해외 IP 주소로 변경할 수 있습니다.

디바이스 IP 주소를 변경하는 기술을 흔히 ‘NAT(네트워크 주소 변환, Network Address Translation)’라고 합니다. 우리가 구성한 ‘해외 유저 테스트 VPN’도 결국 NAT를 이용해서 디바이스 IP 주소를 해외 IP 주소로 변환했습니다.

또한 디바이스의 물리적 위치와 상관없이 디바이스에서 발생하는 모든 네트워크 트래픽을 NAT가 제공하는 서버로 전달하기 위해서는, 디바이스와 NAT 서버 사이를 VPN(가상 사설망, Virtual Private Network)으로 연결해야 합니다.

즉, ‘해외 유저 테스트 VPN’은 IP 주소를 변환하는 NAT와, 디바이스 트래픽을 NAT 서버로 전달하는 VPN을 함께 엮어야 구현할 수 있습니다.

SoftEther VPN

NAT와 VPN 기능을 제공하는 다양한 제품이 있습니다. 그중 보안기술팀에서 구성한 제품은 ‘SoftEther VPN’ 입니다. ‘SoftEther VPN’은 NAT와 VPN 기능을 제공하는 오픈 소스입니다. RADIUS(Remote Authentication Dial-In User Service) 인증 기능을 지원하는 덕분에, 넷마블 임직원이 사용하는 2차 인증 수단인 옥타(OKTA)와 연동할 수 있습니다.

또한, 윈도우, 맥OS, iOS, 안드로이드 디바이스를 모두 지원하며, 처음 릴리즈된 2014년 이래 지금까지(마지막 릴리즈: 2023년 3월 4.41 버전) 지속적으로 기능 및 보안 패치를 제공하는 안정적인 제품입니다.

해외 유저 테스트용 VPN

해외 리전 VM에 SoftEther VPN 서버 설치

SoftEther VPN 서버는 디바이스 IP를 SoftEther VPN이 설치된 서버가 할당받은 해외 IP로 변경하는 주소변환(NAT)기능을 수행합니다.

SoftEther VPN 서버는 디바이스 IP를 해외 IP로 변경하는 NAT 기능을 수행합니다. SoftEther VPN 서버가 해외 IP를 할당받는 가장 쉬운 방법은 서버 자체가 해외 리전에 설치돼 있으면 됩니다. 그래서 클라우드를 활용해 일본, 미국, 대만, 캐나다, 프랑스, 브라질, 싱가포르, 인도네시아, 태국, 중국 등 여러 국가에 리전별로 VM을 구성했습니다.

VM에 SoftEther VPN 서버 S/W을 설치하는것은 매우 쉽습니다. (윈도우 서버라면 설치 안내에 따라 Next 버튼만 누르면 5분 내 설치 완료할 수 있습니다. 리눅스에서도 크게 다르지 않습니다.)

VPN 서버 설정

VPN – L2TP over IPsec

유저 디바이스에서 발생하는 트래픽을 NAT 서버로 안전하게 전달하기 위해서는 VPN이 필요합니다. SoftEther VPN은 L2TP over IPsec 기능을 통해 안전한 VPN 기능을 제공합니다. L2TP(Layer Two Tunneling Protocol)가 VPN 기능을 제공하지만, L2TP 자체로는 암호화 기능이 없기 때문에, 디바이스와 서버 사이 통신이 유출될 위험이 있습니다. 이를 보완하려면 패킷 암호화 기능을 제공하는 표준 프로토콜인 IPSec(Internet Protocol Security)을 L2TP와 함께 사용해야 합니다.

기본 설정을 그대로 따르면, 디바이스에서 발생하는 모든 트래픽이 해외 유저 테스트용 VPN 서버에 VPN을 타고 옵니다. 필요하다면, 디바이스 트래픽 중 일부 목적지(게임 서버 도메인 등)만 VPN 서버로 도달하도록 설정(Split Tunneling)할 수도 있습니다. 하지만 현실적으로 게임 서버 도메인 이외에도 다양한 CDN 도메인들이 존재하죠. 그래서 서비스 관련 모든 목적지 IP와 도메인을 파악한 후, 분리 제어 관리하기는 어려울 수밖에 없습니다. (접속 트래픽을 모니터링한다는 가정하에서는 우선 모든 트래픽을 VPN 장비로 전달하도록 허용한 후, 사용 추이를 보면서 분리 제어하는 것도 한 가지 팁입니다.)

NAT – SecureNAT & SecureDHCP

VPN을 통해 유입된 유저 트래픽의 IP 주소를 원하는 해외 국가 IP 주소로 변경하기 위해서는 NAT를 활용해야 합니다. SoftEther VPN에서는 SecureNAT 기능을 통해 트래픽 주소를 변환합니다. 디바이스가 VPN서버에 접속하면, 디바이스에서 발생한 모든 트래픽은 VPN을 통해 할당받은 게이트웨이 주소(VPN 서버의 주소)로 전달됩니다. 그리고 SecureNAT 기능을 통해 유저 트래픽의 출발지 IP 주소(Source IP)는 VPN 서버가 할당받은 해외 IP 주소로 변경됩니다.

게임 서버는 디바이스의 IP 주소를 해외 유저 테스트용 VPN 서버를 구성한 리전(Region) 기준 국가의 IP 주소로 인식합니다. 디바이스 IP 주소가 VPN 서버 IP로 변경돼 목적지 게임 서버로 전달되기 때문입니다. 이제 게임 서버는 물리적인 디바이스 위치가 아닌, VPN 서버가 할당된 국가 설정에 맞춰서 서비스를 제공하게 됩니다.

Authentication(인증) – RADIUS + OKTA

우리가 구성한 ‘해외 유저 테스트용 VPN 서비스’는 넷마블 임직원을 대상으로 제공합니다. 그래서 무분별한 접속을 막기 위해, VPN 접속 시에 정상적인 사용자인지 인증하는 단계가 필요합니다.

‘SoftEther VPN’은 RADIUS 방식으로 동작하는 사용자 인증 기능을 지원합니다. RADIUS(Remote Authentication Dial-In User Service)는 중앙 집중식 인증 및 권한 부여를 사용해 네트워크를 보호하는 네트워크 프로토콜 중 하나로, 많은 애플리케이션에서 사용자를 인증하기 위해 사용합니다. 사용자 정보를 관리하는 RADIUS 서버에게 사용자 관리 및 인증을 위임하면, ‘해외 유저 테스트용 VPN’에 접속할 사용자 정보(넷마블 임직원 정보)를 VPN 서버가 관리하지 않아도 됩니다.

넷마블에서는 통합 인증 솔루션으로 OKTA를 사용합니다. OKTA가 RADIUS 서버 역할을 제공하므로, 애플리케이션 인증을 OKTA로 통합할 수 있습니다. 해외 유저 테스트용 VPN 서비스 사용을 위한 사용자 인증 정보는 OKTA RADIUS 에이전트를 통해 OKTA로 전달되며, OKTA의 2차 인증까지 통과해야만, 해외 유저 테스트용 VPN 서비스에 접속할 수 있습니다. 인증을 OKTA로 통합했기 때문에, OKTA가 제공하는 사용자 로그인 제어나 접속기록 로깅도 함께 활용할 수 있습니다.

디바이스 설정

윈도우, 맥OS, 안드로이드, iOS

넷마블에서 퍼블리싱하는 게임은 다양한 디바이스 플랫폼에서 실행할 수 있습니다. 그래서 해외 유저 테스트용 VPN도 다양한 디바이스 플랫폼에서 실행할 수 있어야 합니다.

‘SoftEther VPN’은 다양한 디바이스 환경(윈도우, 맥OS, 안드로이드, iOS)을 지원합니다. 디바이스 자체에 내장된 VPN 연결 설정이 L2TP를 지원하는 경우(대부분 디바이스가 지원함), 별도 클라이언트 설치 없이 해외 유저 테스트용 VPN에 접속할 수 있습니다.

L2TP를 지원하지 않는 OS(안드로이드 12 이상)에서는 접속용 앱(OpenVPN 등)을 활용하면 접속할 수 있습니다. 결국, 넷마블 임직원이라면 누구나 어느 디바이스에서든 해외 유저 테스트용 VPN 서비스를 사용할 수 있습니다.

엑스박스(xBox)나 플레이스테이션(PlayStation)에서도 OKTA 인증을 거쳐서 쓸 방법을 제한적으로 제공하고 있습니다.

운영을 위한 접속자 모니터링

서비스를 운영한다면, 사용자 접속 현황, 사용량, 비용 등은 필수로 모니터링해야 하는 지표입니다. ‘SoftEther VPN’은 사용자 접속 기록을 자체 로깅합니다. OKTA와 인증을 연동했기 때문에, 사용자 접속 기록은 OKTA를 통해서도 모니터링할 수 있습니다. 보안기술팀에서는 보안장비 상태 모니터링을 위해 운영 중인 NMS(Zabbix)와 SNMP를 연동해, 동시 접속 중인 사용자 및 트래픽을 모니터링하고 있습니다.

해외 유저 테스트용 VPN은 클라우드 VM 형태로 구성했으므로, 클라우드 VM의 서버 가동 비용과 사용 트래픽을 모니터링할 수 있어, 비용과 트래픽도 함께 관리 범위에 넣어둘 수 있습니다.

서비스 권역 확대와 성능 개선을 향해

보안기술팀에서는 넷마블 임직원이라면 누구나 어디서든 다양한 디바이스 환경에서 해외 유저 서비스를 테스트할 수 있는 환경을 제공하고자, 2022년 5월에 ‘해외 유저 테스트용 VPN’ 서비스를 오픈했습니다.

한국 접속을 차단해야 하는 해외 게임이나 마브렉스 월렛 등 테스트 용도로 넷마블의 다양한 부서에서 활용하고 있습니다. 앞으로 서비스 제공 국가를 확대하고, 접속 성능 향상을 위한 작업을 이어갈 예정입니다. 사용자 접속 프로그램과 통합 관리 페이지도 추가 개발해 지속해서 서비스를 개선해 나갈 예정입니다.

다음 기회에 새로운 이야기로 돌아오겠습니다. 많은 관심 부탁드립니다.

감사합니다.