Algo 및 클라우드 호스팅으로 자신의 VPN을 호스팅하는 방법

0
498

VPN에 연결된 스마트 폰과 노트북의 디지털 그림.

전 세계의 기업이 온라인 활동을 보호하기 위해 VPN 서비스를 판매하고 있지만 VPN 공급자를 정말로 신뢰할 수 있습니까? 원하는 경우 오픈 소스 Algo 소프트웨어와 원하는 클라우드 호스팅 공급자를 사용하여 자체 가상 사설망을 만들 수 있습니다.

VPN 및 신뢰

개인 정보 보호 정책이 회사 블로그의 보안 감사에 대해 말하거나 자랑하는 내용에 관계없이 VPN이 온라인에서 수행하는 모든 작업을 모니터링하는 것을 막을 수는 없습니다. 결국 VPN 서비스를 선택하는 것은 모두 신뢰로 귀결됩니다.

익명의 온라인 서비스를 신뢰하지 않는 경우 한 가지 대안은 자체 VPN 서버를 실행하는 것입니다. 이전에는 어려운 작업 이었지만 보안 회사 Trail of Bits의 오픈 소스 프로젝트 Algo 덕분에 이제 자신 만의 VPN을 쉽게 만들 수 있습니다.

한 달에 $ 5로 자신의 풀 타임 VPN 서버를 실행하고 제어 할 수 있습니다. 더 좋은 점은 Algo를 사용하여 필요에 따라 VPN 서버를 설정 및 해체하고 그 과정에서 비용을 절약 할 수 있습니다.

Algo를 설정하려면 명령 줄을 사용해야합니다. 문제가 되더라도 걱정하지 마십시오. 모든 단계를 안내해드립니다.

이 지침은 많이 보일 수 있지만 가능한 한 많이 설명하고 있기 때문입니다. Algo로 VPN을 몇 번 만들었 으면 오래 걸리지 않을 것입니다. 또한 Algo의 설치 환경을 한 번만 설정하면됩니다. 그 후 몇 번의 키 입력으로 새 VPN 서버를 만들 수 있습니다.

하지만 Algo의 스크립트가 아무 일도하지 않는다는 것을 믿을 수 있습니까? 음, 좋은 소식은 Algo의 코드가 누구나 볼 수 있도록 GitHub에 공개되어 있다는 것입니다. 또한 많은 보안 전문가가 Algo 프로젝트에 관심을 갖고있어 악행 가능성이 적습니다.

관련 : VPN이란 무엇이며 왜 필요합니까?

Algo가 할 수있는 것과 할 수없는 것

VPN은 특히 공항이나 커피 숍의 공용 Wi-Fi 네트워크에서 온라인 활동을 보호하는 좋은 방법입니다. VPN은 웹 브라우징을 더 안전하게 만들고 동일한 로컬 Wi-Fi 네트워크에있을 수있는 악의적 인 행위자를 방해합니다. VPN은 ISP가 급류와 같은 특정 종류의 트래픽을 제한하는 경우에도 도움이 될 수 있습니다.

하지만 조심해, 해적! 자신의 VPN을 통해 booty를 다운로드하는 것은 좋은 생각이 아닙니다. 활동이 더 쉽게 추적 될 수 있기 때문입니다.

또한 VPN을 통해 Netflix를 시청하려면 다른 곳을 찾아야합니다. Algo는 작동하지 않습니다. 그러나 Netflix를 지원하는 많은 상용 서비스가 있습니다.

Algo의 전제 조건

Algo VPN 서버를 가동하고 실행하려면 Unix Bash 셸이 필요합니다. Mac 또는 Linux 시스템에서는 터미널 프로그램을 사용할 수 있지만 Windows에서는 Linux 용 하위 시스템을 활성화해야합니다. Windows 10에서 Linux Bash 셸을 설치하고 사용하는 방법은 다음과 같습니다.

또한 클라우드 서버 호스팅 제공 업체의 계정이 필요합니다. Algo는 다음을 모두 지원합니다.

  • DigitalOcean
  • Amazon Lightsail
  • Amazon EC2
  • Vultr
  • 마이크로 소프트 애저
  • Google Compute Engine
  • 스케일 웨이
  • Hetzner 클라우드
  • OpenStack 및 CloudStack 인스턴스에도 설치됩니다.

이러한 서비스를 한 번도 사용 해본 적이 없다면 매우 사용자 친화적 인 DigitalOcean을 권장합니다. 이 튜토리얼에서 사용하는 서비스이기도합니다. 다른 공급자를 사용하는 경우 프로세스가 약간 다릅니다.

DigitalOcean 계정을 사용할 준비가되면 로그인 한 다음 기본 대시 보드에서 “계정”제목 아래의 왼쪽 레일에서 “API”를 선택합니다.

다음 페이지에서 “새 토큰 생성”을 클릭하십시오. 액세스 토큰은 사용자 이름과 암호없이 계정 리소스에 대한 액세스를 허용하는 긴 문자 및 숫자 문자열입니다. 새 토큰의 이름을 지정해야합니다. 일반적으로 “algo”또는 “ian-algo”(이름이 Ian 인 경우)와 같이 사용중인 응용 프로그램의 이름을 따서 이름을 지정하는 것이 좋습니다.

DigitalOcean의 "응용 프로그램 및 API"메뉴에있는 "토큰 / 키"탭.
DigitalOcean의 “응용 프로그램 및 API”메뉴.

새 토큰이 생성 된 후이를 복사하여 데스크탑의 텍스트 문서에 붙여 넣으십시오. 몇 분 안에 필요합니다.

환경 설정

바탕 화면으로 돌아가서 새 터미널 창을 열고 다음을 입력하십시오. cd ( “change directory”의 경우 Unix 세계에서 폴더라고 부름) Enter를 누르십시오. 이렇게하면 터미널의 홈 디렉토리에서 작업 할 수 있습니다.

이 글을 쓰는 시점에서 Algo는 Python 3.6 이상이 필요합니다. 터미널 프로그램에 다음을 입력하십시오.

python3 --version

다음과 같은 응답을 받으면 Python 3.6.9, 당신은 갈 수 있습니다; 그렇지 않은 경우 Python 3을 설치해야합니다.

Mac에 Python 3을 설치하려면 Homebrew 패키지 관리자를 사용할 수 있습니다. Homebrew가 준비되면 터미널 창에 다음 명령을 입력하십시오.

brew install python3

Windows에서 Ubuntu Linux 또는 WSL을 사용하는 경우 기본적으로 Python 3이 있어야합니다. 그렇지 않은 경우 설치 방법은 Linux 버전에 따라 다릅니다. 온라인에서“Install Python 3 on [insert your version of Linux here]”을 참조하십시오.

다음으로 Python3의 Virtualenv를 설치하여 Algo를위한 격리 된 Python 환경을 만들어야합니다. Mac의 Bash에 다음을 입력하십시오.

python3 -m pip install --upgrade virtualenv

Ubuntu Linux 및 WSL에서 명령은 다음과 같습니다.

sudo apt install -y python3-virtualenv

이 튜토리얼은 Ubuntu 및 관련 배포판에 맞게 조정하고 있지만이 지침은 약간의 변경 사항이있는 다른 Linux 버전에서도 작동합니다. 예를 들어 CentOS를 사용하는 경우 다음을 사용하여 지침을 대체 할 수 있습니다. aptdnf.

다음으로 Algo를 wget 명령. Mac에는 없습니다 wget 기본적으로 설치되므로 Homebrew를 통해 가져 오려면 다음을 입력하십시오.

brew install wget
터미널 창의 wget 유틸리티.
Algo 설치 파일을 가져 오는 wget 유틸리티.

이제 Algo의 파일을 다운로드 해 보겠습니다.

wget https://github.com/trailofbits/algo/archive/master.zip

wget 완료되면 터미널의 홈 디렉토리에 “master.zip”이라는 압축 파일이 있습니다. 그것을 확인합시다 ls.

나타나는 파일 및 폴더 목록에 “master.zip”이 표시되면 문제가없는 것입니다. 그렇지 않은 경우 실행 해보십시오. wget 다시.

이제 파일의 압축을 풀어야하므로 다음을 입력합니다.

unzip master.zip

완료되면 ls 다시. 이제 홈 디렉토리에 “algo-master”라는 새 폴더가 표시됩니다.

거의 조치를 취할 준비가되었지만 먼저 격리 된 환경을 설정하고 몇 가지 종속성을 추가로 설치해야합니다. 이번에는 “algo-master”폴더에서 작업하겠습니다.

폴더로 전환하려면 다음을 입력하십시오.

cd ~/algo-master

이 명령으로 거기에 있는지 확인하십시오.

pwd

이것은 “작업 디렉토리 인쇄”를 나타내며 다음과 같은 내용을 보여줍니다. /home/Bob/algo-master 또는 /Users/Bob/algo-master. 이제 우리는 올바른 위치에 있으므로 모든 것을 준비합시다.

복사하여 붙여 넣거나 아래 명령을 한 줄에 입력하십시오 (끝까지 Enter 키를 누르지 마십시오).

python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt

터미널 창에서 작동하는 Bash 터미널.

이것은 실행을 준비하기 위해 Algo 디렉토리 내에서 많은 작업을 트리거합니다.

다음으로 VPN의 사용자 이름을 지정해야합니다. 지금 모두 이름을 지정하지 않으면 보안 키 (보안 수준이 낮음)를 유지하거나 나중에 처음부터 새 서버를 시작해야합니다.

어느 쪽이든 터미널에 다음을 입력하십시오.

nano config.cfg

터미널 창의 Algo 구성 파일.

사용자에게 친숙한 명령 줄 텍스트 편집기 인 Nano가 열립니다. Algo 구성 파일에는 많은 정보가 포함되어 있지만 “사용자”라는 부분에만 관심이 있습니다. 기본 사용자 이름 (전화, 노트북, 데스크톱)을 제거하고 VPN에서 원하는 각 장치의 이름을 입력하기 만하면됩니다.

예를 들어, 본인, Bill 및 Mary를위한 VPN을 만드는 경우 구성 파일은 다음과 같습니다.

users: - Ian_PC - Bill_Mac - Mary_PC - Ian_Android - Bill_iPhone - Mary_iPhone

모든 사람의 이름을 지정한 후 Ctrl + O를 눌러 파일을 저장 한 다음 Ctrl + X를 눌러 종료합니다.

우리는 거의 조치를 취할 준비가되었지만 먼저 Windows 사용자는 약간의 우회를해야합니다. WSL은 일반적으로 Algo 폴더에 대한 올바른 사용자 권한을 설정하지 않아 Ansible을 혼란스럽게합니다 (Algo가 서버 배포에 사용하는 도구).

WSL에서 다음을 입력하여 홈 디렉터리로 돌아갑니다.

cd

그런 다음 다음을 입력하십시오.

chmod 755 -R ~/algo-master

Algo 폴더로 돌아가려면 다음을 입력하십시오.

cd ~/algo-master

Algo 실행

터미널 창에서 실행되는 Algo 설정 파일.

그리고 지금이 진실의 순간입니다.

로부터 algo-master 폴더에서 터미널 창에 다음을 입력하십시오.

./algo

Algo 구성이 실행되기 시작해야합니다. 어떤 클라우드 공급자를 사용할 것인지 물으면 제대로 작동하는지 알 수 있습니다. 우리의 경우 DigitalOcean의 숫자 (1)를 선택합니다.

Algo가 실패하면 여기에서 예측할 수없는 여러 가지 이유가있을 수 있습니다. 오류가 디렉토리가 “세계 쓰기 구성 가능”이라고 표시되면 위의 지침에 따라 권한을 변경하십시오.

다른 오류가 발생하면 GitHub의 Algo 프로젝트 저장소에서 문제 해결 페이지를 확인하십시오. 오류 메시지를 복사하여 Google에 붙여 넣어 검색 할 수도 있습니다. 해당 오류를 처음으로받는 사람이 아닐 가능성이 높으므로 도움이 될 포럼 게시물을 찾아야합니다.

다음으로 이전에 DigitalOcean 계정에서 복사 한 액세스 토큰을 입력하라는 메시지가 표시됩니다. 복사하여 터미널에 붙여 넣으십시오. Bash는 암호 및 보안 문구 항목에 대한 문자를 표시하지 않기 때문에 아무것도 표시되지 않습니다. 붙여 넣기를 누른 다음 Enter 키를 누르기 만하면 괜찮습니다.

실패하면 모든 사람이 Bash에서 수행하는 페이스트를 엉망으로 만들 수 있습니다. 다시 시도하려면 다음을 입력하십시오.

./algo

Algo가 실행 중일 때 묻는 질문에 답하십시오. 서버 이름을 지정하려는 것과 같이 모두 매우 간단합니다 (이름에 “algo”를 사용하는 것이 좋습니다).

다음으로 Mac 및 iOS 장치에 대해 “주문형 연결”을 활성화할지 묻는 메시지가 표시됩니다. 이러한 장치를 사용하지 않는 경우 아니요에 N을 입력합니다. 또한 나중에 더 많은 사용자를 추가하기 위해 PKI 키를 유지할 것인지 묻습니다. 일반적으로 여기에도 N을 입력합니다.

그게 다야! Algo는 이제 서버를 가동하고 실행하는 데 약 15 ~ 30 분이 걸립니다.

Algo 사용

WireGuard 로고.

Algo가 설정을 마치면 터미널은 명령 줄 프롬프트로 돌아갑니다. 이는 VPN을 사용할 준비가되었음을 의미합니다. 많은 상용 서비스와 마찬가지로 Algo는 VPN 세계에서 가장 인기있는 새로운 기능인 WireGuard VPN 프로토콜을 사용합니다. 이는 우수한 보안과 더 빠른 속도를 제공하고 작업하기가 더 쉽기 때문입니다.

다음에 수행 할 작업의 예로 Windows에서 Algo를 활성화합니다. 다른 기기를 설정하려면 GitHub의 Algo 저장소를 참조하세요.

먼저 WireGuard 사이트에서 일반 Windows 데스크톱 클라이언트를 설치합니다. 다음으로, 우리는 PC에 대한 설정 파일을 프로그램에 공급해야합니다. 구성 파일은 다음 위치의 algo-master 폴더에 저장됩니다. ~/algo-master/configs/[VPN server IP address]/wireguard/.

VPN 클라이언트 장치를 구성하는 파일에는 .CONF 및 .PNG의 두 가지 유형이 있습니다. 후자는 QR 코드를 스캔 할 수있는 휴대폰과 같은 장치 용 QR 코드입니다. .CONF (구성) 파일은 데스크톱 WireGuard 클라이언트 용 텍스트 파일입니다.

Mac과 Ubuntu에서는 찾기가 어렵지 않습니다. algo-master 명령 줄 외부의 폴더. Mac에서는 algo-master 홈 폴더에 있습니다. Finder> 이동> 홈을 사용하면됩니다. Ubuntu에서는 Nautilus를 열 수 있으며 홈 폴더에 있습니다.

그러나 Windows에서 WSL은 나머지 OS와 별개입니다. 이러한 이유로 명령 줄을 사용하여 파일을 복사하는 것이 더 쉽습니다.

이전 예제를 사용하여 “Mary-PC.conf”구성 파일을 Windows 10 PC에서 사용하려고한다고 가정 해 보겠습니다. 명령은 다음과 같습니다.

cp ~/algo-master/configs/[VPN server IP address]/wireguard/Mary-PC.conf /mnt/c/Users/[your Windows user account name]/Desktop/

사이의 공간에 유의하십시오. Mary-PC.conf/mnt/; 이것이 Bash가 복사 할 파일의 위치와 이동 위치를 아는 방법입니다. 대소 문자도 중요하므로 지정된 곳에 대문자를 입력해야합니다.

Windows에서는 “C : “드라이브에서 C를 대문자로 사용하는 것이 당연하지만 Bash에서는 그렇지 않습니다. 또한 괄호 안의 비트를 PC의 실제 정보로 바꾸는 것을 잊지 마십시오.

예를 들어 사용자 폴더가 “C : “가 아닌 “D : “드라이브에있는 경우 /mnt/c//mnt/d/.

파일이 복사되면 WireGuard for Windows 클라이언트를 엽니 다. “파일에서 터널 가져 오기”를 클릭 한 다음 데스크톱에서 구성 파일을 선택합니다. 완료되면 “활성화”를 클릭합니다.

몇 초 만에 나만의 VPN에 연결됩니다!