ウチに転がってたBuffalo WZR-HP-AG300HにOpenWRTを導入して遊んでいます。
OpenWRTを導入したルータはプラグインを追加することで機能を拡張できるので、今回はOpenWRTにOpenVPNクライアントのプラグインを導入してOpenWRTをOpenVPNクライアントにして、無線LANアクセスポイント兼VPNゲートウェイを構築してみたいと思います。
ややこしいな
分かる人にしか分かりませんが、VPNゲートウェイはけっこう便利です。
では、早速解説行きます。
WireGuardでやってみたい方はこちらの記事をご覧ください。
Gl.inetのルータの場合は以下の記事を参考にして下さい
何がしたいの?/何ができるの?
「何がしたい(できる)の?」と言われると「VPNで外出先から自宅サーバ環境にアクセスしたい(できる)」という答えに尽きるのですが、OpenWRTをVPNクライアントとして使うことで、OpenWRTをVPNゲートウェイとして使えるようになります。
「それは普通にVPNを使えばよいだけでは?」と思いますが、VPNゲートウェイを構築したときの具体的な効用について説明します。
前提として、PCあるいはスマホからVPN接続可能なVPNサーバがインターネット上に存在しているということを前提として、VPNを構築するためにはVPNクライアントアプリ(VPNライブラリ)を導入する必要があります。
例えば、WindowsPCからVPNを構築するならそのWindowsPCにVPNクライアントアプリを導入する必要がありますし、スマホからVPNを構築するならそのスマホにVPNクライアントアプリを導入する必要があります。
つまり、それぞれの端末にVPNクライアントアプリを導入する必要があるということです。
図で示すとこんな感じ。
各端末にVPNクライアントアプリを導入するということはセキュリティが担保される反面、設定ファイル(公開鍵)も端末毎に設定する必要があり、運用面での煩わしさがあります。
例えば、端末毎に公開鍵を払い出す必要がありますし、自分の端末は複数あっても共通の公開鍵を使うという場合でも、秘密鍵を変更してしまうとすべての端末の公開鍵を更新しなければなりません。
また、実家やホテルで妻や子供(VPNクライアントアプリをインストールしていない端末)から「VPN(自宅のLAN)に接続したい」と言われても、すぐに設定することができません。
まあ、そんなことあるんか?という意見もありますが、Go To キャンペーンが東京も対象になった今、そんなシチュエーションが無いとも言えません!
そこで、OpenWRTをVPNクライアント化しVPNゲートウェイを構築することができれば、VPNクライアントアプリを設定していない端末であっても、OpenWRTを経由することによってVPNに接続することができるのです。
図で示すと、このような感じ。
図にも示していますが、OpenWRTを経由しない場合(例えば、屋外)の通信でVPNに接続したい場合は、従来通りVPNクライアントアプリを設定した端末でのみ可能です。
・・・という感じで、冒頭に書いた「OpenWRTにOpenVPNクライアントのプラグインを導入してOpenWRTをOpenVPNクライアントにして、無線LANアクセスポイント兼OpenVPNゲートウェイを構築」の意義が何となく伝わったかと思います。
前置きが長くなりましたが、手順の解説に入ります
構築手順
事前準備
この記事では、OpenWRT導入が完了していることが前提となります。
Buffalo WZR-HP-AG300HへのOpenWRTの導入については、以下の記事で解説しています。
OpenWRTを導入できるルータは意外と多いので、上記の機種じゃなくても導入可能です。
もし、自宅に眠っているルーターがあればお試しあれ。
プラグインのインストール
OpenWRTにOpenVPNクライアントのプラグインを導入します。
OpenWRTの管理画面にログイン後、System→Softwareをクリックします。
以下の画面の「Update lists」ボタンをクリックします。
ダウンロード可能なプラグインが表示されるので、「Dismiss」をクリックします。
次に、以下の3つのパッケージを導入します。
例として、luci-app-openvpnを導入する場合を解説します。
Filterのテキストボックスに「luci-app-openvpn」を入力して、対象のパッケージを検索します。
対象のパッケージを見つけたら、その右側の「Install」ボタンをクリックしてパッケージをインストールします。
途中、確認がありますが「Install」をクリックします。
インストールが完了すると、以下のようなポップアップ画面が出てくるので、「Dismiss」をクリックして終了します。
他の2つのプラグイン(openvpn-easy-rsa、openvpn-openssl)も上記と同様にインストールしてください。
OpenVPNの設定
パッケージのインストールが完了すると、上部のメニューに「VPN」というアイテムが出現します。
出てこない場合は、一度ログアウトしてみてください。
上部メニューのVPN→OpenVPNをクリックします。
以下の画面に遷移しますので、OpenVPNの設定ファイルをアップロードするために「ファイルを選択」をクリックして、.ovpnファイルを選択します。
私の記事を参考にしてOpenVPNサーバ(OpenVPN-AS)を構築した方は、以下の手順でvpnサーバからダウンロード可能です。
設定に名前を付けて、「Upload」をクリックします。
上段のリストに設定が追加されるので、「Edit」をクリックして修正します。
ここではVPN接続時のユーザ名とパスワードを書き込みます。
下段のテキストボックスに、ユーザ名とパスワードを入力します。
一行目にユーザ名、二行目にパスワードを入力します。
上段にテキストボックスには、設定ファイルの内容が表示されますので、auth-user-pass /etc/openvpn/<設定名>.authを追記します。
私の記事を参考にしてOpenVPNサーバを構築した方は、「auth-user-pass」がデフォルトで設定されていますので、その行に続けて「/etc/openvpn/<設定名>.auth」を追記してください。
設定が完了したら「Save」をクリックして、左上の「Overview」をクリックして前の画面に戻ります。
チェックを入れて設定を有効化し、「Save & Apply」をクリックします。
以下の画面のように、「stop」ボタンが表示されればVPN接続が確立できています。
続けて、VPNに接続した状態でインターフェースの設定を行います。
上部メニューのNetwork→Firewallをクリックします。
WANの編集を行います。
「Advanced Settings」タブのCovered devicesに“tun0”を追加して、「Save」ボタンをクリックします。
「Save & Apply」をクリックします。
これで、OpenVPNで接続した状態になります。
この状態でOpenWRTの無線LANに接続していれば、端末にOpenVPNのアプリが設定されていなくてもVPN接続できている状態になります。
すばらC
まとめ
OpenWRTをOpenVPNクライアントにして、無線LANアクセスポイント兼VPNゲートウェイを構築してみました。
これによって、端末毎にVPNアプリを設定しなくてもOpenWRTのアクセスポイントに接続すれば自宅環境等のVPNに接続することができます。
これから、GoToトラベルキャンペーンや年末の帰省で、ホテルや実家に長期滞在することもあると思いますが、こうしたアイテムをもって置くと便利じゃないかと思います。
WireGuardでやってみたい方は以下の記事をご覧ください。
また、今回はOpenWRTを導入して自分でOpenVPNクライアントを設定しましたが、以下のようなデフォルトでOpenWRTがインストールされたルーターもあるみたいなので、Buffalo WZR-HP-AG300Hを持ってなくてOpenWRTに興味がある方は購入してみるのもいいかと思います。
これらは、OpenVPNやWireGuardクライアントにもなるし、小型ながらVPNサーバとして使うこともできるようです。
VPNルータがこんなに入手しやすくなるなんて、いい世の中になりました。
参考になれば幸いです。
Gl.inetのルータの場合は以下の記事を参考にして下さい
(追記)
OpenWRTを弄っていたらルータが壊れてしまいました。。
OpenWRTの導入はあくまでも自己責任ですが、OpenWRTを弄って動かなくなったWZR-HP-AG300Hに純正ファームを入れて復活させる方法も記事にしています。
よろしければ参考にしてください。
コメント