OpenWRTをWireGuardのClientにしてVPNゲートウェイを構築する方法

自宅サーバー

相変わらず、ウチに転がってたBuffalo WZR-HP-AG300HにOpenWRTを導入して遊んでいます。

以前、OpenWRTをOpenVPNのClientにしてVPNゲートウェイを構築する方法について記事を書きました。

今回は、そのWireGuard版です。

Gl.inetルーターの場合は以下の記事を参考にしてください。

何がしたいの?/何ができるの?

以前の記事でも解説しましたが、つまりは以下の図のようにVPNクライアントアプリを設定していない端末であっても、OpenWRTを経由することによってVPNに接続できる環境を構築します。

出張とか旅行中に自宅LANにアクセスしやくすなるので、便利です。

前回はOpenVPNでこれを実現しましたが、今回はWireGuardで実現します。

構築手順

これも前回の記事と同じです。

この記事でも、OpenWRT導入が完了していることが前提となります。

Buffalo WZR-HP-AG300HへのOpenWRTの導入については、以下の記事で解説しています。

OpenWRTを導入できるルータは意外と多いので、上記の機種じゃなくても導入可能です。

私

OpenWRTならなんでもいいはず

プラグインのインストール

OpenWRTにOpenVPNクライアントのプラグインを導入します。

OpenWRTの管理画面にログイン後、System→Softwareをクリックします。

以下の画面の「Update lists」ボタンをクリックします。

ダウンロード可能なプラグインが表示されるので、「Dismiss」をクリックします。

次に、以下ののパッケージを導入します。

WireGuardプラグイン
  • luci-app-wireguard
私

これだけ。必要な関連ライブラリは自動でインストールされます。

Filterのテキストボックスに「luci-app-wireguard」を入力して、対象のパッケージを検索します。

対象のパッケージを見つけたら、その右側の「Install」ボタンをクリックしてパッケージをインストールします。

インストールが完了すると、以下のようなポップアップ画面が出てくるので、「Dismiss」をクリックして終了します。

私

パッケージのインストールは以上です。

WireGuardの設定

上部メニューのNetwork→Interfacesをクリックします。

以下の画面に遷移しますので、左下の「Add new interface…」をクリックします

ポップアップが出てくるので、インターフェース名を入力して、Protocolは「WireGuard VPN」を選択して「Create interface」をクリックします。

私

Protocolに「WireGuard VPN」が出てこないときは、ルータをリブートしてください。

続けて、ピア情報を入力します。

私の記事を参考にしてWireGuardを構築した方は、以下の手順でvpnサーバから参照(ダウンロード)可能です。

General Settings

以下の画面にて、「Private Key」「Listen Port」「IP Addresses」を入力して「Save」をクリックします。

Firewall Settings

「Firewall Settings」タブに移って「Create/Assign firewall-zone」WANを設定します。

Peers

「Peers」タブに移って「Add peer」ボタンをクリックします。

以下の「Description」「Public Key」「Allowed IPs」「Route Allowed IPs」「Endpoint Host」「Endpoint Port」を入力して最後に「Save」ボタンをクリックします。

「Allowed IPs」はVPN(トンネル経由)における接続可能なネットワークを指定します。

この例では、10.29.3.0/24(自宅LAN)との接続を許可する設定となっています。

この設定をピア(クライアント側)の設定として入力させるのは独特ですが、キモになります。

Save & Apply

最後に「Save & Apply」ボタンをクリックして、上記で設定した内容を保存&適用するとWireGuardにてVPN接続されます。

VPN接続確認

VPN接続確認

これでVPNが確立していると言われても分かりづらいので、インターネット越しに自宅LANにアクセスできるか確認してみます。

私

あ、いけますね。

続いてインターネットのページを開いてみます。

例えば、https://www.yahoo.co.jp/はどうでしょう?

私

インターネット接続もOK

念のためCMANでグローバルIPアドレスを確認してみます。

私

自宅のNUROのIPではない。

どうやらインターネットアクセスは、VPN越しではなく直接抜けているみたいです。

VPN越しにインターネット接続する設定

Peers

VPN越しにインターネット接続するためには、Peersの設定を修正します。

VPN(トンネル経由)における接続可能なネットワークとして、「Allowed IPs」に10.29.3.0/24(自宅LAN)を指定していました。

当初はGWとDNSに接続許可していれば良いと思っての設定でしたが、インターネット接続を許可するためにAny設定を追加する必要があるようです。

下図のように「Allowed IPs」に0.0.0.0/0(Any)を追加するか、書き換えて「Save」ボタンをクリックします。

最後に「Save & Apply」ボタンをクリックして、WireGuardにてVPN接続します。

念のため確認

あらためて念のためCMANでグローバルIPアドレスを確認してみます。

私

お!NUROのアドレスになった。OKです。

もちろん、インターネットアクセスも問題ありません。

これで、完璧です☆彡

この状態でOpenWRTの無線LANに接続していれば、端末にWireGuardのアプリが設定されていなくてもVPN接続できている状態になります。

まとめ

前回に続いて、OpenWRTをWireGuardクライアントにして、無線LANアクセスポイント兼VPNゲートウェイを構築してみました。

これによって、WireGuardについても端末毎にVPNアプリを設定しなくてもOpenWRTのアクセスポイントに接続すれば自宅環境等のVPNに接続することができます。

これから、GoToトラベルキャンペーンや年末の帰省で、ホテルや実家に長期滞在することもあると思いますが、こうしたアイテムをもって置くと便利じゃないかと思います。

また、今回はOpenWRTを導入して自分でWireGuardクライアントを設定しましたが、以下のようなデフォルトでOpenWRTがインストールされたルーターもあるみたいなので、Buffalo WZR-HP-AG300Hを持ってなくてOpenWRTに興味がある方は購入してみるのもいいかと思います。

GL.iNet GL-MT300N-V2 (Mango) 無線LAN VPNトラベルルーター 中継器ブリッジ 11n/g/b 高性能300Mbps 128MB RAM コンパクト ホテル用 Openwrtインストール OpenVPN/WireGuardクライアントとサーバーインストール 日本語設定画面

GL.iNet GL-MV1000 (Brume) エッジコンピューティングギガビットvpnルーター DDR4 1GB、フラッシュ16MB、EMMC 8GB、マイクロSDストレージスロット、Openwrt、280Mbps高速vpnスピード、日本語設定画面

GL.iNet GL-AR300M-Ext (shadow) VPN無線LANトラベルルーター Openwrtインストール 中継器ブリッジ 11n/g/b 高性能300Mbps 外付け2dbiアンテナ 128MB Nand フラッシュ OpenVPN/WireGuardクライアントとサーバーインストール 日本語画面

これらは、OpenVPNやWireGuardクライアントにもなるし、小型ながらVPNサーバとして使うこともできるようです。

私

これだけで十分OpenWRTにする価値ありました。

参考になれば幸いです。

Gl.inetルーターの場合は以下の記事を参考にしてください。

おまけ

こんな風にOpenWRTを弄っていて、起動不能にしてしまった方。

以下の記事が参考になるかもしれません。

書くまでもないですが、くれぐれも自己責任でお願いします。

コメント

タイトルとURLをコピーしました