VPNクライアントルーターを作成することで、例えばテレビやゲーム機など、VPNアプリをインストールすることができない端末でもVPN経由でアクセスできるようになり、より効率的にセキュリティとプライバシーを確保したり、柔軟にVPN接続の切り替えを行うことができます。
本記事では、Raspberry PiでRaspAPとOpenVPNを使って、VPNクライアントルーターを作成する方法を紹介します。
なお、VPNサーバーはNordVPNを利用したいと思います。
システム構成
今回構築するシステム構成は以下の通りです。
VPNクライアントルーターとして機能させるRaspberry Piを普段使っているルーターと有線接続を行い、VPN経由でアクセスしたい端末はRaspberry Piが発信するWi-Fiにアクセスします。
上記の構成のメリットとして、VPNに接続する必要のない端末は普段使いしているルーターに接続することができるということが挙げられます。
例えば「VPN経由でネット接続したいのはテレビだけ」といったケースでは、テレビだけRaspberry PiのWi-Fiに接続し、VPN経由で通信する必要のない他の端末は普段使っているルーターに接続すれば良いということになります。
上記はいわゆる二重ルーターと呼ばれる構成になりますが、今回のユースケースだと大きな問題にはなりません。
※稀に「二重ルーターは絶対NG」と言及するサイトがありますが、二重ルーター自体はやってはいけない構成ではありません(参考)
Raspberry Pi 1機あれば構築できるので、気になった方は以下の説明を参考に試してみて下さい。
なお、本記事ではRaspberry Pi 3 Model B+を使用しています。
※注:Raspberry Piをアクセスポイントとして機能させることから、Wi-Fiモジュール付きのRaspberry Piモデルを使用する必要があります。(USB外付けでもOKです)
Raspberry Piの初期設定
まず、microSDにOSイメージを書き込むところから始めます。
イメージの書き込みには公式のRaspberry Pi Imagerを利用します。
インストールがまだな方はこちらのリンクから、インストールを行って下さい。
microSDのフォーマット
microSDのフォーマットも、Raspberry Pi Imagerを使って行うことができます。
左下のOSを「削除」にすることで、FAT32でフォーマットをすることができます。
ストレージはPCに接続したmicroSDを選択して下さい。
設定が出来たら「書き込む」ボタンを押せばフォーマットすることができます。
Raspberry Pi OSの書き込み
フォーマットが完了したら、次にRaspberry Pi OSの書き込みを行います。
まず、引き続きRaspberry Pi Imagerを使ってOSを「RASPBERRY PI OS (32-BIT)」に設定します。
ストレージはmicroSDに設定した後、すぐには書き込みを行わず右下の歯車マークを選択し、詳細な設定を行います。
まず、ホスト名を有効化しデフォルトの「raspberrypi.local」を設定します。
また、SSHもパスワード認証で有効化しておきます。
ユーザー名とパスワードはお好みで設定して下さい。ここで設定したユーザー名とパスワードは今後ログインの際に必要な情報になるので、忘れないようにしてください。
今回Raspberry Piはルーターと有線接続するため、Wi-Fiは設定しません。
最後に、ロケールの設定を行います。こちらもご自身の環境に合わせ設定して下さい。
ここまでできたら「保存」ボタンを押して詳細な設定画面を閉じ、「書き込み」ボタンから書き込みを行って下さい。
多少時間がかかると思いますが、気長に待ちましょう。
Raspberry Piの起動・接続
microSDにイメージが書き込めたら、Raspberry Piに挿入し、起動します。
この時、Raspberry PiとルーターはLANケーブルで接続しておきます。
電源を入れたあと数分待ち、起動が完了したらSSHで接続を行います。
接続クライアントは何でも良いですが、私の手元ではWindows PCを利用しているので、Tera Termを使ってSSH接続を行います。
ホスト名は先程イメージの書き込みで設定した通り、「raspberrypi.local」です。
ユーザー名とパスワードについても、イメージの書き込み時に設定したものになります。
ユーザー名とパスワードを入力した後、「OK」ボタンを押すと、SSHでRaspberry Piに接続することができます。
接続が完了したら、以下のコマンドを順番に実行してRaspberry Piを最新の状態にして下さい。最後のコマンドで再起動が実行されます。
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
raspapのインストール
SSHでRaspberry Piに接続できたら、RaspAPのインストールを行います。
RaspAPとは、Raspberry PiをWi-Fiアクセスポイントとして機能させるためのソフトウェアです。RaspAPを使用すると、Raspberry PiをWi-Fiアクセスポイントにすることができ、複数のデバイスを接続することができます。
RaspAPは、シンプルなWebインターフェイスで管理でき、Webブラウザーで、アクセスポイントのSSID、パスワード、IPアドレスなどを設定することができます。
またRaspAPはOpenVPNに対応しており、Raspberry PiをVPNクライアントルーターにすることができます。
SSHで接続したターミナルから、以下のコマンド入力することで、でOpenVPNモジュール付きのRaspAPをインストールすることができます。
curl -sL https://install.raspap.com | bash -s -- --yes --openvpn 1 --adblock 0
インストールが完了すると、ターミナルは以下のようになっているかと思います。
インストールが完了したら、以下のコマンドで再起動を行います。
sudo reboot
Wi-Fi アクセスポイントの設定
「http://raspberrypi.local/」にアクセスすることで、RaspAPの管理GUI画面にアクセスすることができます。
BASIC認証により管理画面のユーザー名とパスワードが聞かれると思いますが、RaspAPのデフォルト値は以下になっているので、そちらを入力してログインします。
Web画面のログインユーザ名 | admin |
Web画面のログインパスワード | secret |
管理画面のログインに成功すると、以下のような画面になっていると思います。
左メニューの「Hotspot」からSSIDやパスワードを変更することができます。
HotspotのBasic設定画面ではSSIDやチャンネルを設定することができます。
私は一旦デフォルトのSSIDとします。
Basic設定の右のタブの「Security」設定では、Wi-Fiのパスワードを設定できます。
初期状態ではPSKが「ChangeMe」となっているかと思いますので、こちらはご自身のお好みのパスワードに変更して下さい。ここで設定したパスワードがWi-Fiへアクセスする際のパスワードになります。
設定が完了したらSave settingsボタンを押して下さい。
最後にSecurity設定の右のタブの「Advanced」です。
Country Codeを「Japan」に設定し、こちらもSave settingsボタンを押して下さい。
上記でHotspotの設定は完了です。
左メニューの「Authentication」から、管理画面のユーザー名とパスワードも変更可能なので、こちらも忘れずに変更しておきましょう。
OpenVPNの設定
最後に、OpenVPNの設定です。
今回は冒頭で示した通りNordVPNのサーバーを利用するので、事前に接続を希望する .ovpn ファイルをダウンロードしておきます。
NordVPNの場合はこちらのページからダウンロードすることができます。
検証として今回は台湾のVPNサーバーにアクセスしたいので、tw170.nordvpn.comのtcp版をダウンロードしました。
.ovpn ファイルの用意ができたら、RaspAPでの設定を行います。
設定はRaspAP管理画面の左メニューにあるOpenVPNから設定できます。
「Client settings」タブから、ユーザー名とパスワードにはNordVPNのログイン情報を記載し、先程ダウンロードした .ovpn ファイルをConfiguration Fileとして選択します。
設定が完了したら、Start OpenVPNのボタンを押せばVPNクライアントルーターとして機能します。
「Configurations」タブを確認すると、きちんと設定できていることが分かります。
Wi-Fi アクセスポイントへの接続
ここまで設定が完了したら、Raspberry PiのWi-Fiアクセスポイントに接続します。
上記までの作業で設定したSSIDがアクセスポイントの一覧に出てくると思うので、そちらにアクセスします。
接続が完了したあと、whatismyipaddress.comに接続して自分のIPや国を確認すると、VPNサーバーのものになっていることが分かるかと思います。
これでRaspberry Piを利用したVPNクライアントルーターの作成は完了です。お疲れ様でした。
最後に
本記事では、Raspberry PiでRaspAPとOpenVPNを使って、VPNクライアントルーターを作成する方法を紹介しました。
どなたかの参考になりましたら幸いです。