Google Outline VPN을 아마존 라이트세일에 설정하는 방법

google outline vpn 구축 방법을 소개해 드립니다.

구글 소속의 지주회사인 알파벳이 자회사로 두고 있는 Jigsaw에서 VPN 서버를 구축할 수 있다는 정보를 우연히 접하고 한번 직접 설치를 해보았습니다. 

직접 해보니 도커를 설치 후 그 위에 스크립트를 사용해 shadowsocks 기반의 VPN 서버를 구축한 뒤 제공해주는 Outline이라는 어플을 내려받아 계 정도 관리하고 클라이언트로 접속도 가능하네요

아이폰과 아이패드에도 어플이 있어서 사용해 보았는데 기존의 Softether VPN 방식은 L2TP 방식으로 접속하면 속도도 생각보다 느릴뿐더러 접속도 가끔 안될 때도 있고 일정 시간이 지나면 자동으로 접속이 끊겨서 다시 접속해주어야 하는 반면 

Outline은 한 번만 접속해 놓으면 계속 접속이 유지되고 체감상 조금 더 빠른 것 같습니다.

결론은 지금 현재 아마존 라이트 세일 (Aws Lightsail)에 구축한 Softether VPN Server보다 핑이나 다운로드 속도가 좀 더 나은 것 같아서 구축 방법을 공유하고자 합니다.

저는 중국에서 거주중 이라서 아마존 라이트세일 ( Aws Lightsail ), 한국 (서울) 리전에 설정해서 연결해 보도록 하겠습니다.

라이트세일을 사용하기 위해서는 먼저 아마존 웹서비스 (Amazon Web Services) 계정이 있어야 합니다.

만약 계정이 없으시면 아래의 링크를 참고하셔서 가입하시면 되겠습니다.




1단계 - 인스턴스와 고정 IP 생성




위에 보시는 것처럼 가운데 인스턴스 생성 버튼을 클릭합니다.





저는 인스턴스 위치는 서울로,  플랫폼은 리눅스 + OS 전용 ( Ubuntu 16.04 LTS)를 선택했습니다.
인스턴스 계획은 제일저렴한 매월 3.5달러 (램512MB, 1vCPU, 20GB SSD, 트래픽 1TB)를 선택합니다.

참고로 라이트세일의 트래픽은 인바운드 아웃바운드 모두 계산됩니다. 
쉽게 말해 데이터를 받고 나가는 모든 용량을 포함한다는 것인데 엄밀히 말하자면 500GB 라고 생각하시면 쉽습니다.

인스턴스 이름 지정은 필요에 맞게 수정하시면 되겠습니다.  

저는 "Ubuntu-512MB-Seoul-Outline" 이라고 입력했습니다.

생성버튼 클릭!





생성 버튼을 클릭하면 위에서처럼 대기 중인 네모 박스가 뜹니다. 시간이 조금 지나면...






이렇게 실행 중으로 바뀝니다.

그럼 이제 고정 아이피를 생성합니다. 

고정 아이피를 생성하는 이유는 특정한 이유로 재부팅 되거나 중지된 후 복구가 되면 내부 아이피가 변하게 됩니다. 

그럼 서버 매니저 + 클라이언트 어플에서 매번 접속 아이피를 새롭게 넣어주어야 하기 때문에 매우 불편합니다. 

라이트 세일에서는 고정 아이피를 계속 연결되어 있다는 전제하에 각 인스턴스에 고정 아이피 1개를 무료로 제공해 줍니다. 

위의 이미지에서 네트워킹 메뉴를 클릭하면...







위와 같은 화면으로 이동하게 되는데 그곳에서 "고정 IP 생성" 클릭





인스턴스에 연결에서 방금 생성한 인스턴스를 선택, 고정 IP 이름을 지정한후 생성버튼 클릭



그럼 바로 얼마 지나지 않아~



위와 같이 생성된 고정 아이피, 인스턴스에 연결된 정보가 나옵니다. 

그럼 이제 기본적으로 서울리전에 우분투 서버가 생성이 되었고 고정 아이피까지 연결이 되었습니다.



2단계 - Outline을 설치하기 위한 사전 작업 

Outline을 사용해서 VPN 서버를 구축하려면 몇 가지 사전 작업이 필요합니다. 

도커를 통해서 시스템이 설치가 되기 때문에 도커가 미리 설치되어 있어야 하고, 그에 맞는 포트도 열어주어야 통신이 가능해지게 됩니다. (도커에 대해서는 웹 서칭을 조금만 하면 나오니 자세한 설명은 생략하겠습니다.)

통신을 위한 포트를 열어주겠습니다.

홈으로 이동후 생성된 인스턴스를 클릭하면 아래와 같은 화면이 나옵니다.





네트워킹을 클릭!





포트를 관리할 수 있는 방화벽 메뉴에서 규칙 편집을 클릭




다른 항목 추가 클릭!





그럼 입력할 수 있는 박스가 나오는데 그곳에...


프로토콜 부분에 TCP 선택 ,  포트범위에 1024-65535 를 입력해 주시고 다시한번~
프로토콜 부분에 UDT 선택, 포트범위는 동일하게 1024 - 65535를 입력해 줍니다. 


참고사항 ( Update : 2019-04-28 )

만약 포트 범위를 개방하는 것이 부담이 되시면 Outline을 설치를 진행하는 과정에서 
개방해야 하는 포트 번호를 알려줍니다. 그때 해당 포트를 열어주시면 됩니다.
( 후에 포트를 지정하기를 원하시면 그냥 PASS~! 하셔도 됩니다. ) 


그럼 아래와 같이 보여집니다.




UDT 포트를 여는 이유는 아이폰과 아이패드에서 VPN으로 접속할 때 위의 포트를 사용하기 때문입니다.  

제가 이 포트를 잘 몰라서 처음에 작업할 때 몇 시간 동안 헤매다가 구글님을 통해서 겨우 알게 되었습니다. 

주의하시기 바랍니다. ㅠㅠ





3단계 - outline 매니저 설치


https://getoutline.org/en/home 에 접속하면 아래와 같은 타이틀 이미지가 보일겁니다.






아래로 조금 스크롤 하다 보면...






위의 운영체제를 선택하고 "GET OUTLINE MANAGER" 버튼을 클릭해서 내려받습니다.
EXE 파일이기 때문에 바이러스 백신에서 거를 수도 있습니다. 
주의하시기 바랍니다.

실행합니다.





그럼 위와 같이 자신이 보유한 서버를 선택하라는 메시지가 나옵니다.  
저는 라이트세일이 아마존이기 때문에  "Amazon Web Services"를 선택하겠습니다.




그럼 위와 같은 내용이 나오는데, 초보자 라면 정말 무슨 말인지 알 수가 없습니다.

저도 처음에 위의 화면에서 몇 초 동안 맨붕이 와서 멍하니 쳐다보고만 있었는데요...

다시 곰곰이 생각해보니 나의 서버에 SSH로 접속해서 위의 스크립트를 설치하라는 내용임을 알 수 있었습니다.

그럼 다이 라이트세일로 돌아가 SSH로 접속을 해보겠습니다. 
(라이트세일에서는 자체 SSH 접속 클라이언트를 제공해주고 있습니다.)

홈 버튼을 클릭해서 메인으로 가서 다시 방금 생성한 인스턴스를 클릭합니다.





그러면 위와같이 "SSH를 사용하여 연결" 버튼이 보일겁니다. 클릭!




그럼 위와 같은 창이 뜨는데 무슨 도스 cmd 창같이 생겼습니다. 

알 수 없는 복잡한 영어가 가득한데, 겁먹지 마시고 찬찬히 둘러봅니다.

SSH에 대한 개념을 모르시는 분은 이곳 블로그의 SSH 소개 포스트를 참고하시기 바랍니다.  (아래 링크 참조)





4단계 - 리눅스에 outline VPN 구축

그럼 이제 위의 창의 커서에서 명령어를 입력하여 outline VPN을 구축해 보겠습니다.

우선 우분투 서버가 방금 생성되었기 때문에 각종 패키지 업데이트를 확인하고 업데이트를 해야 합니다. 

리눅스 서버를 생성 후 처음 접속 후에는 필수입니다. 

sudo su  엔터 (루트 사용자로 전환)

apt update && apt upgrade ( 업데이트 패키지를 업데이트 하고 업그레이드 실행)

아래의 이미지 와같이 입력합니다.




그럼 패키지 업데이트가 시작이 됩니다.




패키지 업데이트 후 업그레이드 할거냐는 질문에?  당연히 Y 입력




여기서 그대로 엔터

그 후에 Outline을 도커를 통해서 설치를 진행할 것이기 때문에 도커를 우선 설치해야 합니다.
도커에 대한 안내는 웹상에 많기 때문에 설명은 생략합니다.





위와 같은 화면이 나오면 패키지 업그레이드가 모두 끝난 겁니다. 

그럼 도커를 설치합니다. 입력후 엔터~

# curl -sS https://get.docker.com/ | sh      




위와 같이 입력후 엔터 ( 시간이 약간 걸릴 수 있으니 기다리세요)




도커가 설치되었습니다.  

위의 창은 그대로 두고 다음 단계로 넘어가겠습니다.




5단계 - Outline을 서버에 연결

이제 Outline 으로 되돌아 갑니다.  




이제 현재 열어 놓고 있는 SSH 클라이언트를 이용해서 Outline을 서버에 연결하겠습니다.

2번 동그라미 네모에 있는 것을 마우스로 드래그해서 복사합니다. (드래그 후 Ctrl + C)

이제 SSH 클라이언트 창에서 복사한 내용을 붙여넣기 해야 하는데 기본적으로 붙여넣기가 안됩니다. 당황하지 마세요!




위의 창에서 우측 하단에 보시면 클립보드 같은 아이콘을 클릭하면 

다시 조그만 창이 위로 올라오는데 그곳에 Ctrl + V로 붙여넣기 합니다.




위와 같은 이미지와 같이 됩니다. 

그 상황에서 클립보드 아이콘을 다시 클릭하면 창은 사라지지만 클립보드에 명령어는 여전히 기억하고 있습니다.

그후 커서에서 마우스 오른쪽 버튼을 누르면 클립보드에 저장되어 있는 명령어가 자동으로 써집니다. 그리고 엔터




위와 같이 나오면 성공!

위의 화면에 녹색 글자가 보이시죠? 그곳을 마우스로 드래그해서 복사 ( Ctrl + C)

다시 하단 좌측의 클립보드를 클릭하면 복사된 내용이 그곳에 기록이 되어 있습니다.

다시 복사!





추가내용 ( Update : 2019-04-28 )

이전 버전은 무조건 1024 - 65535의 넓은 포트 범위를 개방해 줘야 했습니다. 
물론 설치 후에 해당되는 포트를 찾아내어 그것만 개방할 수 있었는데.. 좀 많이 번거롭지요~




지금은 위의 이미지처럼 설치할 때 친절하게 개방해야 할 포트 번호를 알려주네요~

바로 위의 빨간색 네모에 있는 BLOCKED는 지금 현재 방화벽에 해당 포트가 열려 있지 않기 때문에 나오는 메시지입니다. 이미 1024-65535의 포트를 열어 놓으셨다면 ok로 나올 겁니다.

지금 위의 해당 포트를 열어주시거나, 조정해 주세요~!


만약 깜빡 잊고 SSH 콘솔을 닫아 버렸다면, 모든 설정을 마친 후에~




위의 이미지처럼..

아웃라인 매니저의 Setting 설정 메뉴에 가보시면 해당 포트 넘버를 찾을 수 있습니다. 


그럼 다시 본론으로 넘어와서~


복사를 했으면 다시 아래의 이미지 처럼 Outline으로 돌아옵니다.





3번 동그라미 있는곳에 마우스를 한번 클릭후  Ctrl + V로 붙여넣기 !


그리고 DONE 클릭!   




그럼 위와 같이 순식간에 세팅이 완료가 됩니다.   

이제 Outline 클라이언트 프로그램으로 서버에 접속하기 위해서 접속 키를 얻어야 합니다.

위의 키 모양의 아이콘 부분에서 GET CONNECTED 클릭!




CONNECT THIS DEVICE 클릭!




그럼 위와 같은 키가 튀어나오는데  이키가 앞으로 설치할 클라이언트에서 사용할 겁니다.

Copy 버튼 클릭






그럼 위의 화면이 나오는데 이제 Outline 클라이언트 ( 접속 프로그램)을 내려받아서 
그 클라이언트 프로그램으로 이미 생성된 VPN 서버에 접속하면 됩니다.

INSTALLL OUTLINE을 클릭해서 클라이언트 프로그램을 다운로드합니다.

설치하면 아래와 같은 화면이 나옵니다.





미리 복사해논 키를 붙여넣기 합니다.




위의 화면에서 처럼 붙여넣기가 됬습니다.

ADD SERVER 클릭!



CONNECT 클릭!



연결 완료!





우측 하단에 작업표시줄에 Outline 아이콘이 녹색(민트?) 으로 변했습니다. (원래는 회색) 
접속이 완료된 겁니다

그럼 실제로 vpn 서버에 접속이 되어있는지 IP를 추적해 보도록 합니다.

라이트 세일에서 인스턴스를 생성 후 발급받은 고정 아이피를 다시 확인합니다.

그후에 반드시 확인하셔야 할 것은  ( 아래의 링크 참조 )



같은 곳에서 내가 생성한 VPN 서버에 연결된 고정아이피로 접속이 되었는지를 확인해야 합니다.


나의 고정 아이피와 동일한 주소로 접속된 것이 확인되면 성공하신 겁니다.

수고하셨습니다!!

다음 시간에는 아이패드와 아이폰에 연결하는 방법을 알아보도록 하겠습니다.


 

 

■ 추가내용

 

 

 

Outline이 좋은 한가지 점은 그동안 사용했던 VPN 트래픽이 얼마나 되는지 알 수 있습니다.

 

아마존 라이트세일의 가장 저렴한 플랜인 3.5 달러가 1테라 ( 인 바운드 + 아웃 바운드) 이니 500GB 내에서 사용하시면 되겠습니다.

 

미리 가늠해 보기가 수월할듯 합니다.

 



 

만약 VPN을 단기간 사용하셔야 한다든지, 

설정하기가 어려우신 분들은 


아래의 카카오톡 오픈채팅 링크를 통해서 

문의해 주시면 도와드리겠습니다.


저렴한 비용으로 

부담없이 사용하실 수 있도록 

안내해 드릴테니 

부담없이 문의주시면 감사하겠습니다. 



카카오톡 오픈채팅 https://open.kakao.com/o/sIS1t9wb


참여코드는 vpko 입니다.

이 글을 공유하기

댓글

Designed by JB FACTORY