15分で暗号化されたVPNサーバーを自作する方法

15分で暗号化されたVPNサーバーを自作する方法

有料VPNサービスのオンライン広告をよく目にしたことがあるかもしれません。しかし、以前の記事で説明したように、すべてのインターネットトラフィックをVPNサービス経由でトンネリングするのは得策ではありません。

ウェブサイトで謳っていることとは異なり、VPN会社はユーザーのプライバシー保護にはあまり関心がありません。これらの企業は、インターネットトラフィックやDNSリクエストを処理する際に、ユーザーのウェブ閲覧履歴をすべて閲覧できます。場合によっては、IPアドレスや接続履歴のログも保存しているため、これらのデータが当局に引き渡されたり、サイバー犯罪者に盗まれたりする可能性があります。

ほとんどの場合、ほぼすべての Web サイトは安全で暗号化された接続 (HTTPS と呼ばれる) を介してブラウザーに配信されるため、Web を閲覧する前に VPN 接続を有効にする必要はありません。 

しかし、VPNは、リスクプロファイル(脅威モデルとも呼ばれます)によっては、時として役立つことがあります。パブリックネットワークからウェブサイトにアクセスできない場合もあります。また、ニュースや音楽、動画のストリーミングサービスなど、アクセスしたいコンテンツが利用できない国に旅行している場合もあります。このような場合、VPNを使用する際には、リスクを最小限に抑えることが重要です。

そのため、自宅や近くのデータセンターに独自の暗号化された VPN サーバーをセットアップするためのいくつかの方法を紹介します。

簡単: 自宅の空いているコンピュータでTailscaleを実行する

Tailscaleを使えば、仮想ネットワークを簡単に作成し、すべてのデバイスをそのネットワークに接続できます。Tailscaleは、ほぼすべてのデバイスで動作する堅牢なオープンソースVPNプロトコルであるWireGuardをベースに構築されています。

Tailscaleには様々なユースケースがあります。開発者はリモートサーバーへのアクセスに使用し、企業は従業員がオフィス外でも様々な企業サービスにアクセスできるようにするために使用しています。私たちのケースでは、すべてのインターネットトラフィックを暗号化してリダイレクトできるVPNサービスの代替としてTailscaleを使用します。

自宅に常時稼働しているパソコンや、使わなくなった古いノートパソコンがある場合は、そのデバイスにTailscaleをダウンロードしてインストールしてください。TailscaleアプリはWindowsとmacOSの両方で利用可能です。(Linuxでもターミナルを使って利用可能です。)

Tailscaleアカウントを作成し、最初のテールネットを作成しましょう。Tailscaleの用語では、テールネットとは、デバイス同士が相互に通信できるプライベートなピアツーピアメッシュネットワークを指します。

macOSのメニューバーまたはWindowsのタスクバーにあるTailscaleアイコンをクリックします。Tailscaleを起動し、「Exit nodes」メニューに進みます。「Run exit node …」をクリックします。

これで、ノートパソコンやスマートフォンなど、旅行中に持ち歩く個人用デバイスにTailscaleをインストールできるようになりました。Tailscaleをインストールしたら、アカウントにログインしてください。プライベートネットワーク内のデバイスリストに、自宅のコンピューターが起動しているのが確認できます。

もう一度「出口ノード」セクションに進みます。今回は、自宅のコンピュータを出口ノードとして選択します。これで完了です!デバイスが自宅のコンピュータを出口ノードとして使用すると、すべてのインターネットトラフィックがその出口ノードを通過するようになります。 

Tailscaleの役割は、このVPN接続を可能にするコーディネーションサーバーを管理することです。このコーディネーションサーバーは、Tailscaleネットワーク内のすべてのデバイスに公開鍵を配布し、デバイス間の安全な通信を実現する役割を担います。Tailscaleはコーディネーションサーバーを経由せず、トラフィックをルーティングします。 

秘密鍵は常にデバイス上に保存されます。秘密鍵がなければ、Tailscaleを含む第三者がVPNトンネルを通過するデータを復号することはできません。この設定により、公開鍵を手動で生成、配布、管理することなく、暗号化されたVPN接続のすべてのメリットを享受できます。

その結果、たとえ何千マイルも離れた、非常に制限された Wi-Fi ネットワーク上にいても、まるで自宅にいるかのように Web を閲覧できるようになります。 

ここまで読んで、「これは素晴らしいけど、コンピューターを24時間365日稼働させておくのは面倒だな」と思うかもしれません。しかし、Tailscaleを使えばApple TVをExitノードとして使えるのです。Apple TVは常時稼働するように設計されているため、いつでも電源を入れて使えるので、Exitノードも常に利用可能です。Apple TVをお使いでない方も、Androidベースのセットトップボックスや、引き出しにしまってある古いAndroidスマートフォンをお持ちかもしれません。Tailscaleを使えば、AndroidデバイスでもExitノードを実行できます。

macOS (左) と Windows (右) の Tailscale クライアントの終了ノード サブメニューの 2 つの並べて表示されたスクリーンショット
macOS(左)とWindows(右)のTailscaleクライアントの終了ノードサブメニュー。画像クレジット: TechCrunch(スクリーンショット)

Medium: Raspberry PiにTailscaleをインストールする

モデムまたはルーターが特殊な場所にある場合は、専用の Tailscale デバイスを自分で構築し、それを Ethernet ケーブルでルーターに接続することをお勧めします。

その場合は、小型で安価なシングルボードコンピュータであるRaspberry Piを購入するのが良いでしょう。ギガビットイーサネットポートを搭載したRaspberry Pi 4またはRaspberry Pi 5をお勧めします。自宅に光ファイバー接続がある場合は、VPN接続をオンにすると、そのギガビットイーサネットポートでより高速な速度が得られます。

microSDカードに、Raspberry Pi専用に設計されたオペレーティングシステム「Raspberry Pi Desktop」をフラッシュできます。Raspberry Piのセットアップには、USBキーボードとマウス、そしてmicro-HDMI-HDMIケーブルも必要です。

その後、Raspberry Piをコンピューターのディスプレイまたはテレビに接続し、電源を入れます。Tailscaleをインストールして実行するには、ターミナルを開いて、Tailscaleのウェブサイトに記載されているいくつかのコマンドを実行する必要があります。

また、Raspberry OS では次の 3 つのコマンドを使用して IP 転送を有効にする必要があります。

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p /etc/sysctl.conf

最後のコマンドの後に、次のコマンドを実行します。

sudo tailscale up --advertise-exit-node

これで、この Raspberry Pi を Tailscale 出口ノードに変換する作業が完了します。

旅行中に持ち歩く個人用デバイスに Tailscale をインストールし、Raspberry Pi を出口ノードとして使用できるようになりました。

Raspberry Pi 5の回路基板の写真
Raspberry Pi 5。画像クレジット: Romain Dillet / TechCrunch

この設定が気に入っていて、ターミナルの操作に慣れている場合は、従来のデスクトップ インターフェイスを持たない Raspberry Pi 用のオペレーティング システムである Raspberry Pi OS Lite で同じ手順に従うことができます。

同じ手順に従って、お近くのデータセンターに独自のVPNサーバーを構築することもできます。DigitalOcean、Vultr、Linode、Scaleway、Hetzner Cloud、OVHcloudなど、多くの企業が月額5ドル程度の安価な仮想サーバーを提供しています。

クラウドホスティング会社でサーバーを作成したら、サーバーを起動し、Webコンソールを使ってTailscaleをインストールします。また、リモートアクセスでよく使用されるSSHを使って、自分のターミナルからログインすることもできます。

上部で終了ノードを選択できる Tailscale の iPhone アプリを実行している iPhone のスクリーンショット。
TailscaleのiPhoneアプリ。上部で出口ノードを選択できる。画像クレジット: Romain Dillet / TechCrunch

上級者向け: Fly.io 上の Tailscale または VPS 上の WireGuard

ここまでくれば、暗号化されたVPNサーバーを独自に構築し、すべてのインターネットトラフィックをそのサーバー経由でルーティングするのはそれほど難しくないことに気付くでしょう。ですから、設定を工夫してみてください。

たとえば、開発者の Patrick Recher 氏は、構成ファイルに基づいて仮想マシンを即座に作成できるクラウド ホスティング 企業 Fly.io 上に、Tailscale 出口ノードのグローバル ネットワークを構築しました。 

Recher氏は、たった1行のコマンドラインで新しいリージョンにサーバーを追加できます。そして、完了したら仮想マシンを停止して破棄します。詳細はRecher氏のGitHubリポジトリをご覧ください。

Tailscaleにピアツーピアネットワークの調整を頼りたくない場合は、WireGuardを直接インストールして設定することもできます。WireGuardの設定手順を解説したチュートリアルがWeb上にいくつかあります。WireGuardの設定はそれほど複雑ではなく、途中でいくつか学ぶことができるでしょう。