Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
algo — Set up a personal VPN in the cloud | Kitploit
도구/GitHubGitHub/trailofbits/algo
Encryption/Decryption ToolsScripting & AutomationNetwork SecurityCloud SecurityPrivacy
GitHubtrailofbits/algo

algo

Set up a personal VPN in the cloud

저장소 보기
30.4k2.4k1개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Algo VPN

Twitter

Algo VPN은 개인용 WireGuard 및 IPsec VPN 설정을 간소화하는 Ansible 스크립트 모음입니다. 사용 가능한 가장 안전한 기본값을 사용하며 일반적인 클라우드 제공업체에서 작동합니다.

자세한 내용은 릴리스 공지를 참조하세요.

기능

  • iOS, macOS, Linux용 강력한 암호화(AES-GCM, SHA2, P-256)를 사용하는 IKEv2만 지원
  • 위 모든 플랫폼 외에도 Android 및 Windows 11용 WireGuard 지원
  • iOS, macOS, Android, Windows WireGuard 클라이언트용 .conf 파일 및 QR 코드 생성
  • IPsec용 Apple 프로필을 생성하여 iOS 및 macOS 기기 자동 구성 - 클라이언트 소프트웨어 불필요
  • 사용자 추가, 제거, 관리를 위한 도우미 스크립트 포함
  • 로컬 DNS 리졸버로 광고 차단 (선택 사항)
  • 트래픽 터널링을 위한 제한된 SSH 사용자 설정 (선택 사항)
  • 최소 로깅, 자동 로그 순환, 구성 가능한 개인정보 보호 강화로 프라이버시 중심
  • 자동 보안 업데이트가 포함된 Ubuntu 22.04 LTS 기반
  • DigitalOcean, Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, OpenStack, CloudStack, Hetzner Cloud, Linode 또는 자체 Ubuntu 서버(고급 사용자용)에 설치

비기능

  • L2TP, IKEv1, RSA와 같은 레거시 암호 제품군 또는 프로토콜 미지원
  • Tor, OpenVPN 또는 기타 위험한 서버 미설치
  • TLS의 보안에 의존하지 않음
  • 익명성 또는 검열 회피를 제공한다고 주장하지 않음
  • FSB, MSS, DGSE 또는 FSM으로부터 사용자를 보호한다고 주장하지 않음

Algo 서버 배포

Algo 서버를 실행하는 가장 쉬운 방법은 로컬 시스템이나 Google Cloud Shell에서 실행하고 클라우드에 새 가상 머신을 설정하도록 하는 것입니다.

  1. 클라우드 호스팅 제공업체에 계정을 설정하세요. Algo는 DigitalOcean(가장 사용자 친화적), Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, DreamCompute, Linode, 기타 OpenStack 기반 클라우드 호스팅, CloudStack 기반 클라우드 호스팅 또는 Hetzner Cloud를 지원합니다.

  2. Algo 사본을 받으세요. Algo 스크립트는 로컬 시스템에서 실행됩니다. 사본을 얻는 방법은 두 가지입니다:

    • ZIP 파일을 다운로드하세요. 파일의 압축을 풀면 Algo 스크립트가 포함된 algo-master 디렉토리가 생성됩니다.

    • git clone을 사용하여 Algo 스크립트가 포함된 algo 디렉토리를 생성하세요:

      root@kitploit:~
      git clone https://github.com/trailofbits/algo.git
      
  3. 구성 옵션을 설정하세요. 원하는 텍스트 편집기에서 config.cfg를 엽니다. users 목록에 생성하려는 사용자를 지정합니다. VPN에 연결하려는 각 기기에 대해 고유한 사용자를 만드세요. 배포 전에 다른 옵션도 검토해야 합니다. 나중에 마음을 바꾸면 새 서버를 배포해야 할 수 있습니다.

이것으로 끝입니다! 이제 클라이언트를 설정하여 VPN에 연결할 수 있습니다. 아래의 VPN 클라이언트 구성으로 진행하세요.

root@kitploit:~
    "#                          Congratulations!                            #"
    "#                     Your Algo server is running.                     #"
    "#    Config files and certificates are in the ./configs/ directory.    #"
    "#              Go to https://whoer.net/ after connecting               #"
    "#        and ensure that all your traffic passes through the VPN.      #"
    "#                     Local DNS resolver 172.16.0.1                    #"
    "#        The p12 and SSH keys password for new users is XXXXXXXX       #"
    "#        The CA key password is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX       #"
    "#      Shell access: ssh -F configs/<server_ip>/ssh_config <hostname>  #"

VPN 클라이언트 구성

사용자에게 필요한 인증서 및 구성 파일은 configs 디렉토리에 있습니다. 많은 파일에 개인 키가 포함되어 있으므로 반드시 안전하게 보관하세요. 모든 파일은 새 Algo VPN 서버의 IP 주소로 명명된 하위 디렉토리에 저장됩니다.

IPsec 사용자에게 중요: 나중에 사용자를 추가하거나 삭제하려면 서버 배포 중 Do you want to retain the keys (PKI)? 프롬프트에서 yes를 선택해야 합니다. 이렇게 하면 사용자 관리에 필요한 인증 기관이 보존됩니다.

Apple

Apple 기기에서 VPN 서비스를 제공하기 위해 WireGuard가 사용됩니다. Algo는 config.cfg에 정의된 각 사용자에 대해 WireGuard 구성 파일 wireguard/<username>.conf와 QR 코드 wireguard/<username>.png를 생성합니다.

iOS에서는 iOS App Store에서 WireGuard 앱을 설치합니다. 그런 다음 WireGuard 앱을 사용하여 QR 코드를 스캔하거나 AirDrop으로 구성 파일을 기기로 전송합니다.

macOS에서는 Mac App Store에서 WireGuard 앱을 설치합니다. 앱을 실행하면 WireGuard가 메뉴 막대에 나타납니다. WireGuard 아이콘을 클릭하고 **Import tunnel(s) from file...**을 선택한 다음 적절한 WireGuard 구성 파일을 선택합니다.

iOS 또는 macOS에서 WireGuard 앱의 터널 구성을 편집하여 "Connect on Demand"를 활성화하거나 특정 신뢰할 수 있는 Wi-Fi 네트워크(예: 집 또는 직장)를 제외할 수 있습니다. (Algo는 이 작업을 자동으로 수행할 수 없습니다.)

Apple 기기에서 기본 제공 IPsec VPN을 사용하거나 "Connect on Demand" 또는 제외된 Wi-Fi 네트워크가 자동으로 구성되도록 하려면 Apple IPsec 클라이언트 설정 가이드에서 자세한 구성 지침을 참조하세요.

Android

Android에서 VPN 서비스를 제공하기 위해 WireGuard가 사용됩니다. WireGuard VPN Client를 설치합니다. 해당 wireguard/<name>.conf 파일을 기기로 가져온 다음 새 연결을 설정합니다. 자세한 설치 및 구성 지침은 Android 설정 가이드를 참조하세요.

Windows

Windows에서 VPN 서비스를 제공하기 위해 WireGuard가 사용됩니다. Algo는 config.cfg에 정의된 각 사용자에 대해 WireGuard 구성 파일 wireguard/<username>.conf를 생성합니다.

WireGuard VPN Client를 설치합니다. 생성된 wireguard/<username>.conf 파일을 기기로 가져온 다음 새 연결을 설정합니다. 더 자세한 연습 및 문제 해결은 Windows 설정 지침을 참조하세요.

Linux

Linux 클라이언트는 WireGuard 또는 IPsec을 사용할 수 있습니다:

WireGuard: WireGuard는 Linux 클라이언트에서 잘 작동합니다. Ubuntu 및 기타 배포판에서 WireGuard를 구성하는 단계별 지침은 Linux WireGuard 설정 가이드를 참조하세요.

IPsec: strongSwan IPsec 클라이언트(OpenWrt, Ubuntu Server 및 기타 배포판 포함)의 경우 자세한 구성 지침은 Linux IPsec 설정 가이드를 참조하세요.

OpenWrt

WireGuard를 사용하는 OpenWrt 라우터의 경우 라우터별 구성 지침은 OpenWrt WireGuard 설정 가이드를 참조하세요.

기타 기기

위에 포함되지 않은 기기 또는 수동 구성의 경우 특정 인증서 및 구성 파일이 필요합니다. 필요한 파일은 기기 플랫폼과 VPN 프로토콜(WireGuard 또는 IPsec)에 따라 다릅니다.

  • ipsec/manual/cacert.pem: CA 인증서
  • ipsec/manual/.p12: 사용자 인증서 및 개인 키(PKCS#12 형식)
  • ipsec/manual/.conf: strongSwan 클라이언트 구성
  • ipsec/manual/.secrets: strongSwan 클라이언트 구성
  • ipsec/apple/.mobileconfig: Apple 프로필
  • wireguard/.conf: WireGuard 구성 프로필
  • wireguard/.png: WireGuard 구성 QR 코드

SSH 터널 설정

선택적 SSH 터널링 역할을 켠 경우 config.cfg의 각 사용자에 대해 로컬 사용자 계정이 생성되고 SSH authorized_key 파일이 configs 디렉토리(user.pem)에 있습니다. SSH 사용자 계정은 셸 액세스 권한이 없고, 암호로 인증할 수 없으며, 제한된 터널링 옵션만 있습니다(예: ssh -N 필요). 이렇게 하면 SSH 사용자가 터널을 설정하는 데 필요한 최소한의 액세스 권한만 가지며 Algo 서버에서 다른 작업을 수행할 수 없습니다.

아래 예제 명령을 사용하여 <user>와 <ip>를 자신의 것으로 바꾸고 SSH 터널을 시작하세요. 터널이 설정되면 브라우저나 다른 애플리케이션을 127.0.0.1:1080을 SOCKS 프록시로 사용하도록 구성하여 트래픽을 Algo 서버를 통해 라우팅할 수 있습니다:

root@kitploit:~
ssh -D 127.0.0.1:1080 -f -q -C -N <user>@algo -i configs/<ip>/ssh-tunnel/<user>.pem -F configs/<ip>/ssh_config

Algo 서버에 SSH 접속

Algo 서버는 관리 목적으로 키 전용 SSH 액세스로 구성됩니다. 터미널 앱을 열고 원래 Algo를 다운로드한 algo-master 디렉토리로 cd한 다음 성공 메시지에 표시된 명령을 사용합니다:

root@kitploit:~
ssh -F configs/<ip>/ssh_config <hostname>

여기서 <ip>는 Algo 서버의 IP 주소입니다. 서버에 정기적으로 로그인하는 경우 Algo SSH 키를 자동으로 로드하는 것이 유용합니다. 다음 스니펫을 ~/.bash_profile 하단에 추가하여 셸 환경에 영구적으로 추가하세요:

root@kitploit:~
ssh-add ~/.ssh/algo > /dev/null 2>&1

또는 생성된 모든 Algo 서버의 구성을 SSH 구성에 포함하도록 선택할 수 있습니다. ~/.ssh/config 파일을 편집하여 상단에 다음 지시문을 포함시키세요:

root@kitploit:~
Include <algodirectory>/configs/*/ssh_config

여기서 <algodirectory>는 Algo를 클론한 디렉토리입니다.

사용자 추가 또는 제거

Algo를 사용하면 초기 배포 후 VPN 서버에서 사용자를 쉽게 추가하거나 제거할 수 있습니다.

IPsec 사용자의 경우: 초기 서버 배포 중 Do you want to retain the keys (PKI)? 프롬프트에서 yes를 선택해야 합니다. 이렇게 하면 사용자 관리에 필요한 인증 기관이 보존됩니다. 또한 배포 중에 표시되는 p12 및 CA 키 암호도 저장해야 합니다. 한 번만 표시되기 때문입니다.

사용자를 추가하거나 제거하려면 먼저 config.cfg 파일에서 users 목록을 편집합니다. 필요에 따라 새 사용자 이름을 추가하거나 기존 사용자 이름을 제거합니다. 그런 다음 터미널에서 algo 디렉토리로 이동하여 다음을 실행합니다:

macOS/Linux:

root@kitploit:~
./algo update-users

Windows:

root@kitploit:~
.\algo.ps1 update-users

프로세스가 완료되면 configs 디렉토리에 새 사용자의 새 구성 파일이 생성됩니다. Algo VPN 서버는 config.cfg 파일에 나열된 사용자만 포함하도록 업데이트됩니다. 제거된 사용자는 더 이상 연결할 수 없으며, 새 사용자는 즉시 사용할 수 있는 새 인증서와 구성 파일을 갖게 됩니다.

개인정보 보호 및 로깅

Algo는 개인정보 보호에 실용적인 접근 방식을 취합니다. 기본적으로 보안 및 문제 해결에 충분한 정보를 유지하면서 로깅을 최소화합니다.

기본적으로 로깅되는 내용:

  • 시스템 보안 이벤트(실패한 SSH 시도, 방화벽 차단, 시스템 업데이트)
  • 커널 메시지 및 부팅 진단(간결성 감소)
  • WireGuard 클라이언트 상태(sudo wg로 확인 가능 - 마지막 엔드포인트 및 핸드셰이크 시간 표시)
  • 기본 서비스 상태(서비스 시작/중지/오류)
  • 모든 로그는 자동으로 회전되며 7일 후 삭제됩니다.

개인정보 보호는 config.cfg의 두 가지 주요 설정으로 제어됩니다:

  • strongswan_log_level: -1 - StrongSwan 연결 로깅 제어(-1 = 비활성화, 2 = 디버그)
  • privacy_enhancements_enabled: true - 로그 순환, 기록 지우기, 로그 필터링, 정리를 위한 마스터 스위치

문제 해결 시 전체 디버깅을 활성화하려면 strongswan_log_level: 2와 privacy_enhancements_enabled: false를 모두 설정하세요. 이렇게 하면 자세한 연결 로그가 캡처되고 모든 개인정보 보호 기능이 비활성화됩니다. 디버깅 후에는 이러한 변경 사항을 되돌리는 것을 잊지 마세요.

배포 후 개인정보 보호 설정을 확인하세요:

root@kitploit:~
ssh -F configs/<server_ip>/ssh_config <hostname>
sudo /usr/local/bin/privacy-monitor.sh

어떤 VPN 솔루션으로도 완벽한 개인정보 보호는 불가능합니다. 클라우드 제공업체는 서버 구성과 관계없이 네트워크 트래픽 메타데이터를 보고 기록합니다. 물론 ISP는 VPN 서버에 연결하고 있다는 사실을 알게 됩니다. VPN을 통해 무엇을 하는지 볼 수는 없더라도 말이죠.

최고 수준의 개인정보 보호를 위해 Algo 서버를 일회용으로 취급하세요. 필요할 때 새 인스턴스를 시작하고 특정 목적으로 사용한 다음 완전히 파괴하세요. 클라우드 인프라의 일시적인 특성은 의도적으로 사용하면 개인정보 보호 기능이 될 수 있습니다.

추가 문서

  • FAQ
  • 문제 해결
  • Algo가 방화벽을 사용하는 방법

특정 클라우드 제공업체 설정 지침

  • Amazon EC2 구성
  • Azure 구성
  • DigitalOcean 구성
  • Google Cloud Platform 구성
  • Vultr 구성
  • CloudStack 구성
  • Hetzner Cloud 구성

일반 플랫폼에서 설치 및 배포

  • macOS에서 배포
  • Windows에서 배포
  • Google Cloud Shell에서 배포
  • Docker 컨테이너에서 배포

서버에 연결할 VPN 클라이언트 설정

  • Windows 클라이언트 설정
  • Android 클라이언트 설정
  • Linux 클라이언트를 Ansible로 설정
  • Ubuntu 클라이언트가 WireGuard를 사용하도록 설정
  • Linux 클라이언트가 IPsec을 사용하도록 설정
  • Apple 기기가 IPsec을 사용하도록 설정
  • macOS 10.13 이상을 실행하는 Mac이 WireGuard를 사용하도록 설정

고급 배포

  • 자체 Ubuntu 서버에 배포 및 로드 워리어 설정
  • Ansible에서 비대화식으로 배포
  • 생성 시 셸 스크립트 또는 cloud-init으로 클라우드 서버에 배포
  • 지원되지 않는 클라우드 제공업체에 배포

모든 문서를 읽었으며 추가 질문이 있는 경우 새 토론을 생성하세요.

추천사

저는 오랫동안 VPN 서비스의 형편없는 상태에 대해 불평해 왔습니다. 아마도 이 주제에 대해 제대로 된 강연을 할 때가 된 것 같습니다. 요약: Algo를 사용하세요.

-- Kenn White

VPN 제공업체/앱을 선택하기 전에 반드시 조사를 하세요. https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf ... – 또는 Algo를 고려하세요.

-- The Register

Algo는 정말 쉽고 안전합니다.

-- the grugq

저는 Algo VPN을 사용해 봤습니다. 개발에 대해 잘 몰라도 클라우드에서 VPN을 매우 짧은 시간에 설정할 수 있는 스크립트 세트입니다. Trail of Bits의 접근 방식에 깊은 인상을 받았습니다.

-- Romain Dillet, TechCrunch

익명의 무작위 VPN 제공업체에 돈을 내는 것이 불편하다면 이것이 최고의 솔루션입니다.

-- Thorin Klosowski, Lifehacker

기여

개발 가이드에서 다음 정보를 확인하세요:

  • 개발 환경 설정
  • 코드 품질을 위한 prek hooks 사용
  • 테스트 및 린터 실행
  • 풀 리퀘스트를 통한 코드 기여

Algo VPN 후원

PayPal Patreon

모든 기부는 지속적인 개발을 지원합니다. 감사합니다!

  • PayPal 및 Patreon을 통해 기부를 받습니다.
  • Digital Ocean에 가입할 때 추천 코드를 사용하면 $10 크레딧을 받을 수 있습니다.
  • Github 풀 리퀘스트를 통한 새로운 코드 및 버그 수정 기여도 환영합니다.

Algo는 AGPLv3에 따라 라이선스가 부여되고 배포됩니다. Algo 기반의 폐쇄 소스 수정 또는 서비스를 배포하려면 예외 구매를 고려해 주세요. 위의 방법과 마찬가지로 지속적인 개발을 지원하는 데 도움이 됩니다.

도구 다운로드
  • 배포를 시작하세요. 터미널로 돌아갑니다. Algo 디렉토리에서 플랫폼에 맞는 스크립트를 실행합니다:

    macOS/Linux:

    root@kitploit:~
    ./algo
    

    Windows:

    root@kitploit:~
    .\algo.ps1
    

    스크립트를 처음 실행하면 필요한 Python 환경(Python 3.11+)이 자동으로 설치됩니다. 이후 실행 시 즉시 시작되며 모든 플랫폼(macOS, Linux, WSL을 통한 Windows)에서 작동합니다. Windows PowerShell 스크립트는 Ansible이 Unix 계열 환경을 필요로 하므로 필요할 때 자동으로 WSL을 사용합니다. 완전한 기능의 VPN 서버에는 필요하지 않은 여러 선택적 기능이 있습니다. 이러한 선택적 기능은 배포 문서에 설명되어 있습니다.