Algo 및 Cloud Hosting으로 자신의 VPN을 호스팅하는 방법
게시 됨: 2022-01-29전 세계의 회사에서 온라인 활동을 보호하기 위해 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을 통해 전리품을 다운로드하는 것은 좋은 생각이 아닙니다. 활동이 사용자를 더 쉽게 추적할 수 있기 때문입니다.
또한 VPN을 통해 Netflix를 시청하려면 다른 곳을 찾아야 합니다. Algo는 해당 VPN과 작동하지 않습니다. 그러나 Netflix를 지원하는 많은 상용 서비스가 있습니다.
알고에 대한 전제 조건
Algo VPN 서버를 시작하고 실행하려면 Unix Bash 셸이 필요합니다. Mac 또는 Linux 시스템에서는 터미널 프로그램을 사용할 수 있지만 Windows에서는 Linux용 하위 시스템을 활성화해야 합니다. 다음은 Windows 10에서 Linux Bash 셸을 설치하고 사용하는 방법입니다.
클라우드 서버 호스팅 제공업체의 계정도 필요합니다. Algo는 다음을 모두 지원합니다.
- 디지털오션
- 아마존 라이트세일
- 아마존 EC2
- 벌트르
- 마이크로소프트 애저
- 구글 컴퓨트 엔진
- 스케일웨이
- 헤츠너 클라우드
- OpenStack 및 CloudStack 인스턴스에도 설치됩니다.
이러한 서비스를 한 번도 사용해 본 적이 없다면 매우 사용자 친화적인 DigitalOcean을 권장합니다. 이 튜토리얼에서 사용하는 서비스이기도 합니다. 다른 공급자를 사용하는 경우 프로세스가 약간 다릅니다.
DigitalOcean 계정을 사용할 준비가 되면 로그인한 다음 기본 대시보드의 "계정" 제목 아래 왼쪽 레일에서 "API"를 선택합니다.
다음 페이지에서 "새 토큰 생성"을 클릭합니다. 액세스 토큰은 사용자 이름과 비밀번호 없이 계정 리소스에 대한 액세스를 허용하는 긴 문자 및 숫자 문자열입니다. 새 토큰의 이름을 지정해야 합니다. 일반적으로 "algo" 또는 "ian-algo"(이름이 Ian인 경우)와 같이 사용 중인 응용 프로그램의 이름을 따서 이름을 지정하는 것이 좋습니다.

새 토큰이 생성되면 복사하여 데스크탑의 텍스트 문서에 붙여넣습니다. 몇 분 안에 필요할 것입니다.
환경 설정
바탕 화면으로 돌아가서 새 터미널 창을 열고 cd
(Unix 환경에서는 폴더를 "변경 디렉토리"라고 함)를 입력하고 Enter 키를 누릅니다. 이렇게 하면 터미널의 홈 디렉토리에서 작업하고 있는지 확인할 수 있습니다.
이 글을 쓰는 시점에서 Algo는 Python 3.6 이상이 필요합니다. 터미널 프로그램에 다음을 입력합니다.
python3 --버전
Python 3.6.9
와 같은 응답을 받으면 잘 된 것입니다. 그렇지 않은 경우 Python 3을 설치해야 합니다.
Mac에 Python 3을 설치하려면 Homebrew 패키지 관리자를 사용할 수 있습니다. Homebrew를 사용할 준비가 되면 터미널 창에 다음 명령을 입력합니다.
양조 설치 python3
Windows에서 Ubuntu Linux 또는 WSL을 사용하는 경우 기본적으로 Python 3이 있어야 합니다. 그렇지 않은 경우 설치 방법은 Linux 버전에 따라 다릅니다. 지침을 보려면 온라인에서 "[여기에 Linux 버전 삽입]에 Python 3 설치"를 검색하십시오.
다음으로 Algo를 위한 격리된 Python 환경을 만들기 위해 Python3의 Virtualenv를 설치해야 합니다. Mac의 Bash에 다음을 입력합니다.
python3 -m pip install --upgrade virtualenv
Ubuntu Linux 및 WSL에서 명령은 다음과 같습니다.
sudo apt install -y python3-virtualenv
우리는 이 튜토리얼을 Ubuntu 및 관련 배포판에 맞게 조정하고 있지만 이 지침은 약간의 변경이 있는 다른 Linux 버전에서도 작동합니다. 예를 들어 CentOS를 사용하는 경우 apt
를 사용하여 지침을 dnf
로 대체합니다.
다음으로 wget
명령으로 Algo를 다운로드해야 합니다. Mac에는 기본적으로 wget
이 설치되어 있지 않으므로 Homebrew를 통해 가져오려면 다음을 입력하십시오.
양조 설치 wget

이제 Algo의 파일을 다운로드해 보겠습니다.
wget https://github.com/trailofbits/algo/archive/master.zip
wget
이 완료되면 터미널의 홈 디렉토리에 "master.zip"이라는 압축 파일이 있습니다. ls
로 확인해보자.
나타나는 파일 및 폴더 목록에 "master.zip"이 표시되면 문제가 해결된 것입니다. 그렇지 않은 경우 wget
을 다시 실행하십시오.
이제 파일의 압축을 풀어야 하므로 다음을 입력합니다.
master.zip의 압축을 풉니다.
완료되면 ls
를 다시 누르십시오. 이제 홈 디렉토리에 "algo-master"라는 새 폴더가 표시되어야 합니다.
거의 작업할 준비가 되었지만 먼저 격리된 환경을 설정하고 몇 가지 종속성을 추가로 설치해야 합니다. 이번에는 "algo-master" 폴더 안에서 작업할 것입니다.

다음을 입력하여 폴더로 전환합니다.
cd ~/algo-master
이 명령으로 거기에 있는지 확인하십시오.
암호
이것은 "print working directory"를 의미하며 /home/Bob/algo-master
또는 /Users/Bob/algo-master
와 같은 것을 보여주어야 합니다. 이제 올바른 위치에 있으므로 모든 준비를 합시다.
한 줄에 아래 명령을 복사하여 붙여넣거나 입력합니다(끝날 때까지 Enter 키를 누르지 마십시오).
python3 -m virtualenv --python="$(command -v python3)" .env && 소스 .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r 요구 사항.txt
이것은 실행을 준비하기 위해 Algo 디렉토리 내에서 많은 작업을 트리거합니다.
다음으로 VPN 사용자의 이름을 지정해야 합니다. 지금 이름을 지정하지 않으면 보안 키(보안 수준이 낮음)를 유지하거나 나중에 처음부터 새 서버를 시작해야 합니다.
어느 쪽이든 터미널에 다음을 입력합니다.
나노 구성.cfg
그러면 사용자 친화적인 명령줄 텍스트 편집기인 Nano가 열립니다. Algo 구성 파일에는 많은 정보가 있지만 "users"라는 부분에만 관심이 있습니다. 기본 사용자 이름(전화, 랩톱, 데스크톱)을 제거하고 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-master
폴더에서 터미널 창에 다음을 입력합니다.
./알고
Algo 구성이 실행을 시작해야 합니다. 사용하려는 클라우드 제공업체를 묻는 메시지가 표시되면 작동 중임을 알 수 있습니다. 이 경우 DigitalOcean에 대해 숫자(1)를 선택합니다.
Algo가 실패하면 여기에서 예측할 수 없는 여러 가지 이유가 있을 수 있습니다. 오류에 디렉터리가 "세계 쓰기 구성 가능"이라고 표시되면 위의 지침에 따라 권한을 변경하십시오.
다른 오류가 발생하면 GitHub의 Algo 프로젝트 리포지토리에서 문제 해결 페이지를 확인하세요. 오류 메시지를 복사하여 Google에 붙여넣어 검색할 수도 있습니다. 해당 오류를 받는 첫 번째 사람이 아닐 가능성이 높으므로 도움이 될 포럼 게시물을 찾아야 합니다.
그런 다음 이전에 DigitalOcean 계정에서 복사한 액세스 토큰을 요청합니다. 복사하여 터미널에 붙여넣습니다. Bash는 비밀번호 및 보안 문구 항목에 대한 문자를 표시하지 않기 때문에 아무 것도 표시되지 않습니다. 붙여넣기를 누르고 Enter 키를 누르기만 하면 문제가 없습니다.
실패하면 모든 사람이 Bash에서 수행하는 붙여넣기를 엉망으로 만들 수 있습니다. 다시 시도하려면 다음을 입력하세요.
./알고
Algo가 실행 중일 때 Algo가 묻는 질문에 답하십시오. 서버 이름을 지정하려는 것처럼 모두 매우 간단합니다(이름에 "algo"를 사용하는 것이 좋습니다).
다음으로, Mac 및 iOS 장치에 대해 "주문형 연결"을 활성화할 것인지 묻습니다. 해당 장치를 사용하지 않는 경우 N을 입력하십시오. 또한 나중에 더 많은 사용자를 추가하기 위해 PKI 키를 유지할 것인지 묻습니다. 일반적으로 여기에도 N을 입력합니다.
그게 다야! 이제 Algo가 서버를 가동하고 실행하는 데 약 15~30분이 소요됩니다.
알고 사용하기
Algo가 설정을 마치면 터미널이 명령줄 프롬프트로 돌아갑니다. 이는 VPN을 사용할 준비가 되었음을 의미합니다. 많은 상용 서비스와 마찬가지로 Algo는 VPN 세계에서 가장 인기 있는 새로운 WireGuard VPN 프로토콜을 사용합니다. 이는 보안이 우수하고 속도가 빠르며 작업하기가 더 쉽기 때문입니다.
다음에 수행할 작업의 예로 Windows에서 Algo를 활성화하겠습니다. 다른 장치를 설정하려면 GitHub에서 Algo 리포지토리를 참조할 수 있습니다.
먼저 WireGuard 사이트에서 일반 Windows 데스크톱 클라이언트를 설치합니다. 다음으로, 우리는 PC용 설정 파일을 프로그램에 공급해야 합니다. 구성 파일은 ~/algo-master/configs/[VPN server IP address]/wireguard/
의 algo-master 폴더 깊숙이 저장됩니다.
VPN 클라이언트 장치를 구성하기 위한 파일에는 .CONF 및 .PNG의 두 가지 유형이 있습니다. 후자는 QR 코드를 스캔할 수 있는 휴대폰과 같은 장치용 QR 코드입니다. .CONF(구성) 파일은 데스크탑 WireGuard 클라이언트용 텍스트 파일입니다.
Mac 및 Ubuntu에서는 명령줄 외부에서 algo-master
폴더를 찾는 것이 어렵지 않아야 합니다. Mac에서 algo-master
는 홈 폴더에 있습니다. Finder > 이동 > 홈을 사용하여 이동하세요. Ubuntu에서 노틸러스를 열 수 있으며 홈 폴더에 있습니다.
그러나 Windows에서 WSL은 나머지 OS와 별개입니다. 이러한 이유로 명령줄을 사용하여 파일을 복사하는 것이 더 쉽습니다.
이전 예를 사용하여 "Mary-PC.conf" 구성 파일이 Windows 10 PC에서 사용되기를 원한다고 가정해 보겠습니다. 명령은 다음과 같습니다.
cp ~/algo-master/configs/[VPN 서버 IP 주소]/wireguard/Mary-PC.conf /mnt/c/Users/[Windows 사용자 계정 이름]/Desktop/
Mary-PC.conf
와 /mnt/
사이의 공백에 유의하십시오. 이것이 Bash가 복사할 파일이 어디에 있고 어디로 가는지 아는 방법입니다. 대소문자도 중요하므로 지정된 곳에 대문자를 입력해야 합니다.
Windows에서는 "C:\" 드라이브에서 C를 대문자로 사용하는 것이 당연하지만 Bash에서는 그렇지 않습니다. 또한 대괄호 안의 비트를 PC에 대한 실제 정보로 바꾸는 것을 잊지 마십시오.
예를 들어, 사용자 폴더가 "C:\"가 아니라 "D:\" 드라이브에 있는 경우 /mnt/c/
를 /mnt/d/
로 바꾸십시오.
파일이 복사되면 Windows 클라이언트용 WireGuard를 엽니다. "파일에서 터널 가져오기"를 클릭한 다음 바탕 화면에서 구성 파일을 선택합니다. 완료되면 "활성화"를 클릭하십시오.
단 몇 초 만에 나만의 VPN에 연결됩니다!