Raspberry Piで自宅VPNを構築:Tailscaleを使ったホームネットワークの保護とリモートアクセス実現ガイド
この記事では、Raspberry Pi上でホストできるVPNの構築方法を解説します。筆者はRaspberry Piの愛用者で、この小型コンピュータは私のような「いじり好き」にとって最高のツールです。
このVPNがあれば、外出先からでもまるで自宅にいるかのようにホームネットワークへアクセスできます。「それが何の役に立つの?」と思うかもしれませんが、どこにいても自宅のネットワークIPを使用できるため、プライバシー保護の面で大きなメリットがあります。
本記事では、TailscaleというオープンソースのメッシュVPN(Virtual Private Network)サービスを使用します。Tailscaleは、異なるネットワーク間でデバイスやサービスを安全かつ簡単につなぐことができ、オープンソースのWireGuardプロトコルによる暗号化されたポイント・トゥ・ポイント接続を実現します。つまり、自分のプライベートネットワーク上のデバイス同士だけが通信できる仕組みです。
目次
必要なもの
Raspberry Pi OS Lite(32ビット)のインストール
Raspberry Piの起動
SSHでRaspberry Piにログイン
Raspberry PiへのTailscaleインストール
キーの有効期限について
Raspberry PiをExit Nodeとして設定する
まとめ
必要なもの
Raspberry Pi(本記事ではRaspberry Pi 5を使用)
Raspberry Pi Imager
microSDカード(8GBで十分)
パソコン用のmicroSDカードリーダー
家庭用ルーター
Tailscaleアカウント
Raspberry Pi OS Lite(32ビット)のインストール
まずは、用意したmicroSDカードにRaspberry Pi OS Lite(32ビット)をインストールします。ここでは無料で入手できる「Raspberry Pi Imager」というソフトウェアを使用します。
Imagerを起動したら、まず使用するRaspberry Piデバイスを選択します。筆者の場合はRaspberry Pi 5です。
次に「Operating System」で「Raspberry Pi OS (other)」を選択し、一覧から「Raspberry Pi OS Lite (32-bit)」を選びます。
続いて、カードリーダーに挿入したSDカードを選択します。画面が下記の画像のようになっていればOKです。「次へ」をクリックしましょう。

「次へ」を押すと、OSのカスタマイズ設定を適用するかどうか尋ねるポップアップが表示されます。

「設定を編集(Edit Settings)」をクリックしてください。「ホスト名を設定(Set hostname)」を有効にして、Piに付けたい名前を入力します。本チュートリアルではdapivpnとします。続いて「ユーザー名とパスワードを設定」を有効にし、ユーザー名と強固で安全なパスワードを設定してください。
Wi-Fiを使う予定がある場合は「ワイヤレスLANを設定」も有効にできます。有線LAN派の方はこの項目をスキップして構いませんが、本チュートリアルではWi-Fiを使用します。
さらに「ロケール設定を設定」を有効にし、正しいタイムゾーンとキーボードレイアウトを選択します。
その後、「サービス(Services)」タブに移動し、SSHを有効にして「パスワード認証を使用」を選択します。「保存」をクリックし、カスタマイズ適用の画面で「はい」、さらに再度「はい」を選びましょう。この操作でSDカード内のデータはすべて消去されるため、重要なファイルが入っていないカードを使用していることを必ず確認してください。
以上の手順を終えると、Raspberry Pi Imagerの画面は次のようになっているはずです。

Raspberry Piの起動
書き込みが完了したら、SDカードをRaspberry Piに挿入し、電源ケーブルを接続します。正常に起動するまで数分待ちましょう。緑色のLEDが点灯し続けていれば準備完了のサインです。
次に、ルーターの管理画面でRaspberry Piに固定IPアドレスを割り当てます。筆者は192.168.8.21に設定しました。
SSHでRaspberry Piにログイン
コマンドラインターミナルを開き、「ssh <pi username>@<raspberry_pi_ip_address>」と入力します。筆者の場合は以下のようになります。
ssh danpi@192.168.8.21
設定したパスワードを入力すると、ユーザー名とPiのホスト名が表示され、ログインに成功したことが確認できます。

続いて以下のコマンドを入力します。
sudo apt update && sudo apt upgrade -y
このコマンドでシステム全体を最新の状態に更新しておきます。

更新後、以下のコマンドでPiを再起動します。
sudo reboot
再起動したら、Tailscaleのパッケージ署名キーとリポジトリを追加します。
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
以下のコマンドでTailscaleをインストールします。
sudo apt-get update
sudo apt-get install tailscale
次に、PiをTailscaleネットワークに接続して認証を行います。以下のコマンドを実行してください。
sudo tailscale up
ブラウザには次のような認証画面が表示されます。

Raspberry PiのTailscale IPv4アドレスを確認するには、以下のコマンドを実行します。
tailscale ip -4
ブラウザ上のTailscale管理ダッシュボードからも確認できます。
これでTailscaleのインストールは完了です。あとは仕上げの設定を行うだけです。
キーの有効期限について
Tailscaleにデバイスを追加する際に知っておくべきポイントがあります。デフォルトではセキュリティ機能として、一定期間(通常180日)が経過するとデバイスに再認証が求められます。
再認証が行われない場合、キーが失効して接続が使えなくなります。これは利便性と引き換えに提供されるセキュリティ機能なので、どちらを選ぶかはあなた次第です。
筆者はRaspberry Piを完全に信頼しているため、キーの有効期限を無効にしました。その手順は以下の通りです。
Tailscale管理コンソールの「Machines」ページを開く
一覧からRaspberry Piの行を見つけ、オプションメニューを選択する
「Disable Key Expiry(キーの有効期限を無効化)」をクリックする。マシン名の下に「Expiry Disabled」ラベルが表示されれば成功です
Raspberry PiをExit Nodeとして設定する方法
Tailscaleについてもう一つ知っておくべき概念が「Exit Node(出口ノード)」です。TailscaleのExit Nodeとは、Tailscaleネットワーク内で指定されたデバイスであり、すべてのインターネットトラフィックをそのデバイス経由でルーティングするものです。どこにいても、このデバイスがExit Nodeとして有効になっていれば、Tailscaleをオンにした瞬間にトラフィックがそのデバイスを経由します。
理想的には、24時間365日電源が入っているデバイスをExit Nodeにするのが望ましいでしょう。だからこそ、省電力コンピュータであるRaspberry Piが最適なのです。
PiでTailscaleが稼働していれば、すでに作業の90%は完了しています。ローカルネットワーク上の他のデバイスにもできるだけTailscaleをインストールしておくことを忘れないでください。残りの作業は、PiがExit Nodeとして動作できるようにすることです。そうすれば、すべてのインターネットトラフィックやLANトラフィックがPiを経由するようになり、以下へのアクセスが可能になります。
自宅のローカルネットワーク上のデバイス
自宅のパブリックIPアドレス
NAS、プリンター、カメラなどの内部サービス
設定するには、SSHでRaspberry Piに接続し、以下の手順に従います。
IPフォワーディングを有効にする。IPフォワーディングにより、Raspberry Piがネットワークインターフェース間でトラフィックを中継できるようになります。以下のコマンドを1行ずつ実行してください。
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.confRaspberry PiをExit Nodeとしてアドバタイズします。
sudo tailscale up --advertise-exit-nodeTailscale管理コンソールの「Machines」ページを開きます。
一覧からRaspberry Piの行を見つけます。マシン名に「Exit Node」ラベルが表示されているはずです。
オプションメニューをクリックし、「Edit Route Settings(ルート設定の編集)」を選択します。
「Use as an exit node(exit nodeとして使用)」にチェックを入れ、保存します。
これで、スマートフォンやPCなど、Tailscaleアプリがインストールされた任意のデバイスでアプリを開くと、トラフィックをExit Node経由でルーティングするオプションが表示されるようになります。そこにRaspberry Piも選択肢として現れます。選択肢を増やしたい場合は、他のデバイスを追加のExit Nodeとして登録することも可能です。
まとめ
他のデバイスでTailscaleアプリを使用すれば、Raspberry PiをExit Nodeとして選択するだけで、トラフィックを安全に経由させられるようになりました。Tailscaleでは、デバイスの種類ごとにExit Nodeのセットアップと利用方法を解説した分かりやすいステップバイステップガイドも公開されています。
これで、自宅のインターネット環境を離れていても、まるで家にいるかのようにインターネットに接続できるようになりました。それでは、また次回お会いしましょう。
-
私のアカウントのセキュリティ上の弱点を暴いた5つの危険信号
オンラインセキュリティを真剣に考えている人ほど、意外にも油断してしまうものです。私もその一人でした。複雑なパスワードを使い、ときどきセキュリティ設定を見直し、「何かあればプラットフォームが警告してくれるはず」という根拠のない自信を持っていました。 しかし年月を重ねるうちに、いくつかのサインを通じて、自分のアカウントが思っていたほど堅牢ではないことに気づきました。劇的なハッキング被害や銀行口座の不正出金に遭ったわけではありませんが、一連の警告信号は、私のデジタルライフが想像以上に露出していることを示していました。ツールがリスクを可視化してくれたのは確かですが、脅威を最小限に抑える鍵となったのは、
-
ドメインフロンティングとは?仕組みやVPNとの違い、最新動向を徹底解説
オンライン上のデータプライバシーを強化する手法は数多く存在します。その中でも、技術者たちから高い評価を受けているのが「ドメインフロンティング(Domain Fronting)」です。 しかし、ドメインフロンティングとは一体どのような技術なのでしょうか。また、オンラインセキュリティの観点では、VPN(仮想プライベートネットワーク)よりも優れているのでしょうか。本記事では、この2つの疑問にわかりやすくお答えします。 ドメインフロンティングの仕組み ドメインフロンティングは、オンライン検閲を回避するために用いられる技術です。PaaS(Platform as a Service)の設定を活用して実現さ