Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
algo — クラウドで個人用VPNを構築する | Kitploit
ツール/GitHubGitHub/trailofbits/algo
暗号化/復号化ツールスクリプトと自動化ネットワークセキュリティクラウドセキュリティプライバシー
GitHubtrailofbits/algo

algo

クラウドで個人用VPNを構築する

リポジトリを見る
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用にiOSおよびmacOSデバイスを自動設定するAppleプロファイルを生成 - クライアントソフトウェアは不要
  • ユーザーの追加、削除、管理を行うヘルパースクリプトを同梱
  • ローカル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スクリプトはローカルシステムから実行されます。取得方法は2つあります。

    • 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の2つの主要な設定によって制御されます:

  • 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サーバーに接続していることを知っています。たとえその中で何をしているかは見えなくてもです。

最高レベルのプライバシーを求めるなら、Algoサーバーを使い捨てとして扱ってください。必要なときに新しいインスタンスを起動し、特定の目的に使用した後、完全に破棄します。クラウドインフラストラクチャの一時的な性質は、意図的に使用すればプライバシー機能となり得ます。

追加ドキュメント

  • FAQ
  • トラブルシューティング
  • Algoがファイアウォールをどのように使用するか

特定のクラウドプロバイダーのセットアップ手順

  • Amazon EC2の設定
  • Azureの設定
  • DigitalOceanの設定
  • Google Cloud Platformの設定
  • Vultrの設定
  • CloudStackの設定
  • Hetzner Cloudの設定

一般的なプラットフォームからのインストールとデプロイ

  • macOSからデプロイ
  • Windowsからデプロイ
  • Google Cloud Shellからデプロイ
  • Dockerコンテナからデプロイ

サーバーに接続するVPNクライアントのセットアップ

  • Windowsクライアントのセットアップ
  • Androidクライアントのセットアップ
  • Ansibleを使用したLinuxクライアントのセットアップ
  • WireGuardを使用するUbuntuクライアントのセットアップ
  • IPsecを使用するLinuxクライアントのセットアップ
  • IPsecを使用するAppleデバイスのセットアップ
  • 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

開発についてあまり詳しくなくても、クラウドにVPNを非常に短時間でセットアップできるスクリプト群であるAlgo 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+)が自動的にインストールされます。2回目以降はすぐに起動し、すべてのプラットフォーム(macOS、Linux、WSL経由のWindows)で動作します。Windows PowerShellスクリプトは、AnsibleがUnixライクな環境を必要とするため、必要に応じて自動的にWSLを使用します。完全に機能するVPNサーバーには必須ではない、いくつかのオプション機能があります。これらのオプション機能については、デプロイドキュメントで説明されています。