Algoとクラウドホスティングで独自のVPNをホストする方法
公開: 2022-01-29世界中の企業がオンラインアクティビティを保護するためにVPNサービスを販売していますが、VPNプロバイダーを本当に信頼できますか? 必要に応じて、オープンソースのAlgoソフトウェアと、選択したクラウドホスティングプロバイダーを使用して、独自の仮想プライベートネットワークを作成できます。
VPNと信頼
プライバシーポリシーが会社のブログのセキュリティ監査について何を言っているか、または誇っていても、VPNがオンラインで行うすべてのことを監視することを妨げるものは何もありません。 結局、VPNサービスの選択はすべて信頼に帰着します。
フェイスレスオンラインサービスを信頼することがあなたの目的ではない場合、1つの代替手段は独自のVPNサーバーを実行することです。 これは以前は困難な作業でしたが、セキュリティ会社Trail of BitsのオープンソースプロジェクトAlgoのおかげで、独自のVPNを簡単に作成できるようになりました。
月額5ドルで、独自のフルタイムVPNサーバーを実行および制御できます。 さらに良いことに、Algoを使用して、必要に応じてVPNサーバーをセットアップおよび破棄し、その過程でコストを節約できます。
Algoを設定するには、コマンドラインを使用する必要があります。 それが不快な場合でも、心配しないでください。すべてのステップを順を追って説明します。
これらの指示は多くのように思えるかもしれませんが、それは私たちができる限り多くを説明しているからです。 Algoを使用してVPNを数回作成したら、それほど時間はかからないはずです。 さらに、Algoのインストール環境を一度設定するだけで済みます。 その後、数回のキーストロークで新しいVPNサーバーを作成できます。
しかし、Algoのスクリプトが不利なことをしていないことを信頼できますか? 幸いなことに、AlgoのコードはGitHubで公開されており、誰でも見ることができます。 さらに、多くのセキュリティ専門家は、不正行為の可能性を低くするAlgoプロジェクトに関心を持っています。
関連: VPNとは何ですか、なぜVPNが必要なのですか?
アルゴができること(そしてできないこと)
VPNは、特に空港や喫茶店の公共Wi-Fiネットワークで、オンラインアクティビティを保護するための優れた方法です。 VPNは、Webブラウジングをより安全にし、同じローカルWi-Fiネットワーク上にいる可能性のある悪意のある攻撃者を妨害します。 VPNは、ISPがトレントなどの特定の種類のトラフィックを制限している場合にも役立ちます。
しかし、気をつけろ、海賊! 自分のVPNを介して戦利品をダウンロードすることは、アクティビティをより簡単に追跡できるため、お勧めできません。
また、VPN経由でNetflixを視聴したい場合は、他の場所を探す必要があります。Algoはそれを使用しません。 ただし、Netflixをサポートする多くの商用サービスがあります。
アルゴの前提条件
Algo VPNサーバーを稼働させるには、UnixBashシェルが必要です。 MacまたはLinuxシステムでは、ターミナルプログラムを使用できますが、Windowsでは、Linux用のサブシステムをアクティブ化する必要があります。 Windows10にLinuxBashシェルをインストールして使用する方法は次のとおりです。
また、クラウドサーバーホスティングプロバイダーのアカウントも必要です。 Algoは次のすべてをサポートしています。
- DigitalOcean
- アマゾンライトセイル
- Amazon EC2
- Vultr
- Microsoft Azure
- Google Compute Engine
- スケールウェイ
- ヘッツナークラウド
- また、OpenStackおよびCloudStackインスタンスにもインストールされます。
これらのサービスを一度も使用したことがない場合は、非常にユーザーフレンドリーなDigitalOceanをお勧めします。 これは、このチュートリアルで使用しているサービスでもあります。 別のプロバイダーを使用する場合、プロセスは少し異なります。
DigitalOceanアカウントの準備ができたら、サインインしてから、プライマリダッシュボードから、[アカウント]見出しの下の左側のレールから[API]を選択します。
次のページで、「新しいトークンの生成」をクリックします。 アクセストークンは、ユーザー名とパスワードなしでアカウントリソースへのアクセスを許可する文字と数字の長い文字列です。 新しいトークンに名前を付ける必要があります。 一般に、使用しているアプリケーションにちなんで「algo」や「ian-algo」などの名前を付けることをお勧めします(名前がIanの場合)。
新しいトークンが生成されたら、それをコピーしてデスクトップのテキストドキュメントに貼り付けます。 数分で必要になります。
環境のセットアップ
デスクトップに戻り、新しいターミナルウィンドウを開き、 cd
(Unixの世界でフォルダと呼ばれる「ディレクトリの変更」)と入力して、Enterキーを押します。 これにより、端末のホームディレクトリから作業していることが保証されます。
この記事の執筆時点では、AlgoにはPython3.6以降が必要です。 ターミナルプログラムに次のように入力します。
python3 --version
Python 3.6.9
のような応答が表示された場合は、問題ありません。 そうでない場合は、Python3をインストールする必要があります。
MacにPython3をインストールするには、Homebrewパッケージマネージャーを使用できます。 Homebrewの準備ができたら、ターミナルウィンドウに次のコマンドを入力します。
brew install python3
WindowsでUbuntuLinuxまたはWSLを使用している場合は、デフォルトでPython3が必要です。 そうでない場合、インストール方法はLinuxのバージョンによって異なります。 手順については、「Python3を[ここにLinuxのバージョンを挿入]にインストールする」をオンラインで検索してください。
次に、Python3のVirtualenvをインストールして、Algo用の分離されたPython環境を作成する必要があります。 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で取得するには、次のように入力します。
brew install 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
次のコマンドを使用して、そこにいることを確認してください。
pwd
これは「printworkingdirectory」の略で、 /home/Bob/algo-master
や/Users/Bob/algo-master
のようなものが表示されます。 適切な場所にいるので、すべての準備をしましょう。
コピーして貼り付けるか、以下のコマンドを1行で入力します(最後まで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
これにより、実行の準備をするためにAlgoディレクトリ内で多くのアクションがトリガーされます。
次に、VPNのユーザーに名前を付ける必要があります。 今すぐすべてに名前を付けない場合は、セキュリティキー(安全性は低くなります)を保持するか、後で新しいサーバーを最初から起動する必要があります。
いずれにせよ、ターミナルに次のように入力します。
nano config.cfg
これにより、使いやすいコマンドラインテキストエディタ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-master
フォルダーから、ターミナルウィンドウに次のように入力します。
./algo
Algo構成の実行が開始されます。 使用したいクラウドプロバイダーを尋ねられると、それが機能していることがわかります。 この例では、DigitalOceanの番号(1)を選択します。
Algoが失敗した場合、ここで予測できないいくつかの理由が考えられます。 ディレクトリが「ワールド書き込み構成可能」であるというエラーが表示された場合は、上記の手順に従って権限を変更してください。
別のエラーが発生した場合は、GitHubのAlgoプロジェクトリポジトリのトラブルシューティングページを確認してください。 エラーメッセージをコピーしてGoogleに貼り付けて検索することもできます。 あなたがそのエラーを最初に受け取る可能性は低いので、役立つフォーラム投稿を見つける必要があります。
次に、DigitalOceanアカウントから以前にコピーしたアクセストークンの入力を求められます。 コピーしてターミナルに貼り付けます。 Bashはパスワードおよびセキュリティフレーズのエントリの文字を表示しないため、何も表示されません。 貼り付けを押してEnterキーを押す限り、問題はありません。
それが失敗した場合は、Bashで誰もが行うペーストを台無しにした可能性があります。 次のように入力して、再試行してください。
./algo
アルゴが走っているとき、それが尋ねる質問に答えてください。 これらはすべて、サーバーに名前を付けたいもののように、非常に単純です(名前に「algo」を使用することをお勧めします)。
次に、MacおよびiOSデバイスで「ConnectonDemand」を有効にするかどうかを尋ねられます。 これらのデバイスを使用していない場合は、「いいえ」の場合はNと入力します。 また、後でユーザーを追加するためにPKIキーを保持するかどうかも尋ねられます。 通常、ここでもNと入力します。
それでおしまい! Algoは、サーバーを起動して実行するのに約15〜30分かかります。
Algoの使用
Algoがセットアップを完了すると、端末はコマンドラインプロンプトに戻ります。これは、VPNの準備ができていることを意味します。 多くの商用サービスと同様に、AlgoはWireGuard VPNプロトコルを使用しています。これは、VPNの世界で最もホットな新しいものです。 これは、優れたセキュリティと高速性を提供し、操作が簡単だからです。
次に行うことの例として、WindowsでAlgoをアクティブにします。 他のデバイスをセットアップするには、GitHubのAlgoリポジトリを参照できます。
まず、WireGuardサイトから汎用のWindowsデスクトップクライアントをインストールします。 次に、PC用の構成ファイルをプログラムにフィードする必要があります。 構成ファイルは、 ~/algo-master/configs/[VPN server IP address]/wireguard/
のalgo-masterフォルダーの奥深くに保存されます。
VPNクライアントデバイスを構成するためのファイルには、.CONFと.PNGの2種類があります。 後者は、QRコードをスキャンできる電話などのデバイス用のQRコードです。 .CONF(構成)ファイルは、デスクトップWireGuardクライアント用のテキストファイルです。
MacとUbuntuでは、コマンドラインの外でalgo-master
フォルダーを見つけるのは難しいことではありません。 Macでは、 algo-master
はホームフォルダにあります。 Finder> Go> Homeを使用してそこにたどり着きます。 Ubuntuでは、Nautilusを開くことができ、ホームフォルダーにあります。
ただし、Windowsでは、WSLは他のOSから分離されています。 このため、コマンドラインを使用してファイルをコピーする方が簡単です。
前の例を使用して、「Mary-PC.conf」構成ファイルをWindows 10PCで使用するとします。 コマンドは次のようになります。
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/
に置き換えます。
ファイルがコピーされたら、WireGuard forWindowsクライアントを開きます。 「ファイルからトンネルをインポート」をクリックし、デスクトップで構成ファイルを選択します。 それが終わったら、「アクティブ化」をクリックします。
ほんの数秒で、あなたはあなた自身のVPNに接続されます!