'2020/07/26'에 해당되는 글 1건
- 2020.07.26 AWS | Lightsail 과 Outline 이용하여 VPN 만들어 보기 9
인터넷 상에서의 정보는 투명해야 하며, 그의 접근이 자율적이며, 접근자의 수준도 같이 높아져야 한다고 생각합니다.
인터넷에 의한 인류의 진화라고 저는 생각합니다.
정보 접근에 있어, 국가 단위로 제한을 가하는 단체들이 있습니다. 진화할 수 있는 기회를 박탈한다고 봅니다.
그래서인지 예전부터 개인 VPN 에 관심이 있었습니다.
VPN 계열에서는 OpenVPN 이 단연 유명한 듯 보입니다. 그렇지만, 설정이 많이 복잡하더군요.
뭐 좋은 것이 없을까 하던 중, AWS 서비스 중에서 쉽게 서버/시스템 구축이 가능한 서비스가 있어, VPN 구축에 활용해 봤습니다.
본 포스트는 제가 조사하여 시행 착오를 겪으며 만들어 낸 내용이 아니라, 전적으로 아래 블로그를 따라한 내용 되겠습니다.
좋은 글을 작성해 주신, 아래 글의 작성자님께 감사의 말씀 드립니다.
* AWS와 Outline으로 나만의 VPN 서버 만들기
- https://brunch.co.kr/@flown/21
1. Lightsail - Instance
AWS 서비스는 물리적인 서버를 구매, 설치하고 인터넷 계약을 하지 않아도 5분 안에 서버를 만들 수 있게 서비스를 제공합니다.
이런 것을 클라우드 서비스라고 합니다. 내 앞에 존재하지 않지만, 인터넷 상으로 시스템과 서비스를 만들어 주는 서비스 이죠.
잘 모르겠고 안보이지만, 실제로 존재하는 뜬 구름같이...
AWS 서비스 중에서도 EC2 라는 것이 있는데, CPU / Memory / Disk 등을 정하면 뚝딱 서버를 만들어 주죠.
다만, EC2 라도 접근 제어라든지, 보안, 네트웍 구성 등, 손이 조금 갑니다.
워낙 클라우드 서비스를 접하게 되는 사람들이 많아지고, 모든 사람이 전문적인 지식을 기대하기 어렵다 보니,
더 쉬운 방법으로 클라우드 서비스를 올릴 수 있는 "Lightsail" 서비스를 AWS 에서 출시 하게 되었습니다.
AWS console 에서 Lightsail 을 선택합니다. 오후에 접속하니 Good afternoon! 이라고 인사하네요.
오전에 접속하면, Good morning! 이라고 합니다. "Create instance" 로 서버/서비스 생성을 시작합니다.
서버의 위치를 정합니다. 한국에 서버를 설치해야, 내가 접속하는 PC 와 속도가 빠르기 때문에 Seoul - ap-northeast-2 를 선택합니다.
Availability Zone 은, 미리 선택된 Zone A - ap-northeast-2a 그대로 놔 뒀습니다.
OS 는 Linux/Unix 를 선택하고, Ubuntu - 18.04 LTS 를 선택.
그 다음으로, 어떤 type 의 서버를 선택할 것인지를 정합니다.
VPN 은 CPU / Memory 는 중요하지 않으나, data 전송량이 관점이므로, 3TB 를 선택했습니다.
저는 동영상 스트리밍에도 사용할 것이라... 어험.
VPN 은 중간 단계에서 중계해주는 역할이므로, 3TB 를 선택하면, 한 달동안 1.5TB 데이터를 사용하겠다의 의미가 됩니다.
그래도 10 USD 밖에 하지 않습니다. 정말 저렴한거죠.
2. Lightsail - Networking
다음으로, 고정된 IP 를 사용하기 위해, "Create static IP" 를 선택합니다.
내가 사용할 때 마다, 변경된 IP 를 매번 확인하고 접속한다면 여간 불편하지 않을 수 없습니다. 고정 IP 를 사용합시다.
IP 는 공공제 이지만, 경쟁하면서 사용하는 유한한 자원이므로, 사용하고 있으면 무료이고, 사용하지 않으면 돈을 냅니다.
사용하면 돈을 내는 일상 생활과는 정 반대 개념입니다.
Instance 이름과, 고정 IP 에 대한 별칭을 정하면 끝입니다.
"Create" 를 누르면 고정 IP 하나가 할당 됩니다.
3. Lightsail - SSH
Instance 에 접속하기 위한 SSH 설정 입니다.
다른 EC2 접속 할 때, 사용하는 ec2-user 유저가 아니라, ubuntu 입니다.
Public Key 를 이용한 SSH 프로그램을 통한 접속이 아니라, "Connect using SSH" 브라우저에서 바로 연결할 수 있습니다.
저는 SSH 어플을 이용해 접속하는 것을 선호하는 지라, 다운로드 한 SSH Key 를 가지고 접속했습니다.
위의 과정이 끝나면, 서버가 하나 만들어 졌습니다. 이쪽 용어로는 인스턴스 하나가 만들어 진거네요.
4. Outline - Manager
VPN 서버의 껍때기는 만들어 졌으니, VPN 전용 어플을 서버에 깔아줘야 합니다.
Outline 이라는 VPN 서버를 사용합니다. 아래 사이트에서 Outline - Manager 를 다운로드 받습니다.
* Outline by Jigsaw
- https://getoutline.org/en/home
설치파일을 받으면 실행 시킵니다.
이 Outline - Manager 는 원격에서 VPN 서버를 모니터링 하고 관리하기 위한 어플 입니다.
Outline 은 언론 기관과 언론인이 안전하게 인터넷에 접속할 수 있게 하기 위해 만들어 졌다고 하네요.
어느 한 나라가 생각나는 대목입니다.
실제 클라우드 상의 서버에서 돌아갈 패키지를 선택하기 위해, 우선 클라우드 업자를 선택합니다.
이미 Amazon Lightsail 이 기본으로 제공되고 있군요. GCP 버전도 있습니다.
Amazon Lightsail 을 선택하면, Lightsail 에서 동작하는 VPN 프로그램을 자동으로 설치하게 도와주는 스크립트를 보여줍니다.
$ sudo apt update $ sudo apt upgrade $ sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"
OS 업데이트 후, 위의 스크립트를 실행하면, Docker 형식으로 VPN 서버가 깔리게 됩니다.
위 화면에서 Y 를 누르고 설치를 진행하고 마무리 합니다.
설치 완료 후, 녹색 부분을 카피해서 Outline Manager 화면으로 돌아와 "여기에 설치 출력을 붙여넣으세요." 에 붙여넣기 합니다.
또한, 포트 번호을 기록해 둡니다. 하나는 Outline Manager 용 port 정보이고, 다른 하나는 VPN 트래픽용 port 정보 입니다.
저의 경우는 Manager - 49742 / TCP 와 VPN traffic - 11383 / TCP, UDP 였습니다.
위의 스샷처럼 Lightsail 의 Firewall 에 등록해 줍니다.
그러면, 아래처럼 Outline Manager 에 Lightsail 에 설치한 VPN 서버가 등록되고, 모니터링이 가능하게 됩니다.
"실험" 부분은 새로 나온 기능처럼 보이며, 3TB 전송 가능한 Lightsail instance 를 설치했지만, 양방향 통신이므로, 1.5TB 를 설정해 놓습니다.
이 수치에 도달하면 자동으로 VPN 기능이 정지될 듯 합니다.
4. Outline - Client
서버가 준비 되었으니, 이제 PC 에서 VPN 접속을 위한 client 를 설치해 봅니다.
Outline Manager (Server) 에서 "내 액세스 키 - 기기 연결" 을 클릭합니다.
하나의 VPN 서버에 여러명이 동시에 사용할 수 있는군요.
액세스 코드 복사하기를 클릭합니다.
키를 받았으니, 이 키를 이용하여 VPN 서버에 접속하는 클라이언트만 있으면 됩니다.
"이 기기 연결하기" 를 클릭하면, 자동으로 클라이언트를 다운로드 받는 페이지로 점프하게 됩니다.
설치파일을 다운받고 설치해 줍니다.
엇!!! OpenVPN ?
그렇습니다. 서버도 클라이언트도 OpenVPN 이 코어인 어플들이었던 것이죠.
OpenVPN 을 날것으로 시작하려면, 많이 복잡합니다. 이 과정들을 docker 나 어플 패키지로 단순화 시켜준 것이 Outline 이었던 것이죠.
언론 탄압이 가해지는 곳에서도 사용할 수 있게끔 만들어 진것 같네요.
일부 기술적인 정보 외에는 개인정보를 가져가지 않는다고 합니다... 만,
가져가도 상관 없습니다. 어느정도 개인 정보는 이미 공공제가 된지 오래...
어플을 깔면, 아까 복사한 액세스 키가 자동으로 감지됩니다. 최신의 COPY 명령어 결과를 찾아보는 듯.
Outline Client 가 서버를 인식하고 등록이 완료 되었습니다.
5. VPN 서버에 연결
Outline Client 에서 "연결" 을 통해, Lightsail 에서 동작하는 우리의 VPN 서버에 연결합니다.
Google 사이트를 통해, VPN 을 켰을 때, IP 가 어떻게 나오는지 확인해 봤습니다.
원래 집이나 사무실에서 할당받았던 IP 가 아니라, VPN 서버의 IP 로 변경되고, 국가/ISP 에서 막아 놨던 사이트들 접속이 원활해 졌습니다.
FIN
마지막으로, 기술을 공유되어야 한다는 GNU 선언문의 일부를 인용하여 마무리 합니다.
GNU, which stands for Gnu's Not Unix.
'Cloud' 카테고리의 다른 글
Wowza | AWS 에 Wowza 설치해 보기 (0) | 2020.07.25 |
---|