今回は、Ubuntu 22.04上に構築したWireGuardサーバにiPhoneから接続していきたいと思います。
WireGuardのインストールがまだの方は、以下の記事から構築できます。
また、WireGuardのセットアップには、サーバの公開鍵、クライアントの公開鍵・秘密鍵のペアが必要になります。
WireGuardのインストール
以下のURLより、iPhoneのApp StoreからWireGuardをインストールします。
URL : https://apps.apple.com/jp/app/wireguard/id1441195209
![WireGuardアプリ入手画面](https://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0007-644x1394.webp)
App StoreのWireGuardより、[入手]を押下し、iPhoneへWireGuardをインストールします。
![WireGuardの起動画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0008-644x1394.webp)
インストールが完了したら、アプリを起動します。
WireGuardの設定
![トンネルの追加画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0009-644x1394.webp)
アプリが起動したら、[トンネルの追加]を押下します。
![空の状態から作成画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0010-644x1394.webp)
新規トンネルの追加より、[空の状態から作成]を押下します。
![設定の編集(インターフェース)画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0011-644x1394.webp)
[設定の編集]-[インターフェース]より、以下の設定を行います。
ここでは、クライアントの秘密鍵などのクライアントに関わる情報を入力します。
- 名前 : 任意のVPN名を設定
- 秘密鍵 : WireGuardで生成したクライアントの秘密鍵を設定
- 公開鍵 : (秘密鍵から自動生成されるため、入力不要)
- IPアドレス : iPhone側に割り当てるIPを設定(xxx.xxx.xxx.xxx/32など)
- 待受ポート : 任意の待受ポートを設定
- MTU : 任意のMTUを設定
- DNSサーバ : 任意のDNSサーバを設定(外部から解決可能なDNSサーバを指定)
注意点ですが、ここで設定するIPアドレスは、WireGuardのIPアドレスではなく、iPhone側に割り当てるIPアドレスになります。
WireGuardのPeer設定で記載したIPアドレスを設定します。
また、待受ポートについても同様でサーバ側ではなく、クライアント側の待ち受けポートを指定します。基本的には自動で設定してくれることが多いので問題ないと思います。
MTUについては、フラグメントが起こる場合は設定します。
DNSサーバについては、外部から参照可能なDNSサーバを設定する必要があるのですが、ここで必要になるのは、WireGuardサーバの名前解決に使用されるものだと思います。
![ピアの追加画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0012-644x1394.webp)
インターフェースの設定が完了したら、[ピアの追加]を押下します。
![設定の編集(ピア)画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0013-644x1394.webp)
[設定の編集(ピア)]より、以下の設定を行います。
- 公開鍵 : サーバの公開鍵を設定
- 事前共有鍵 : 未設定
- エンドポイント : WireGuardサーバのIP or ホスト名
- Allowed IPs : 0.0.0.0/0 (任意)
- 持続的キープアライブ : 3秒ごと (任意)
ピアの設定ですが、サーバの公開鍵はWireGuardサーバで生成した公開鍵を設定します。
ここで赤枠をかこっていないですが、エンドポイントはWireGuardのサーバのアドレスを指定します。
指定の方法は、以下の形式にします。
エンドポイント : <IP or ホスト名>:51820
Allowed IPsについては、iPhone→WireGuardへ流すIPを指定します。
今回は全IPをWireGuardに流すので[0.0.0.0/0]を設定しています。内部だけであれば内部で使用しているセグメントを指定してください。
キープアライブについては、短ければ短いほど切断後の再接続は速いですがそのぶんiPhoneのバッテリーや通信量が増加するので必要に応じて設定してください。
ついでに、ここを設定しなかったら通信ができませんでした・・・
![オンデマンド有効化設定と保存画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0014-644x1394.webp)
[オンデマンド有効化]より、VPNを有効化する回線を設定します。
今回はモバイル回線のみVPNを張りたいので、[モバイル回線]を選択してます。
[設定の編集]が完了したら[保存]を押下します。
![VPN構成の追加画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0015-644x1394.webp)
[WireGuardがVPN構成の追加を求めています]より、[許可]を押下します。
![パスコードを入力画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0016-644x1394.webp)
VPNを構成するのにパスコードが必要になるので、iPhoneのパスコードまたはパスワードを入力します。
![構成の確認画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0017-644x1394.webp)
WireGuardよりVPNが構成されたことを確認します。
WireGuard動作確認
VPNを構成したら、動作確認をしてきます。
![VPNオン画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0018-644x1394.webp)
WireGuardより、構成したVPNを有効化します。
![VPN通信の確認画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0019-644x1394.webp)
VPNを有効化して再度設定をのぞいてみます。
VPNが正常に張れていると[受信したデータ]と[送信したデータ]のカウンタが上がっていきます。
また、VPNを張ると[0.0.0.0/0]を指定した場合、外部向けの通信が自宅のISPになります。
![VPN後のIP確認画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0020-644x1394.webp)
VPNを張った状態でIPアドレスの確認をします。
CMANあたりでIPアドレスを確認すると、[transix.jp]となっているので、自宅のIPoE環境から出れています。
![VPN切断時のIP確認画面](http://tech.willserver.asia/wp-content/uploads/2023/04/IMG_0021-644x1394.webp)
一方、VPNを切断した状態だと[spmode.ne.jp]となっているため、ドコモ回線のホスト名になっています。
まとめ
今回は、Ubuntu 22.04に構築したWireGuardサーバにiPhoneから接続してみました。
iPhoneのモバイル回線から自宅にVPNを張れるので、自宅内のリソースにiPhoneからアクセスできたり、UTMを経由した通信にすることができたりするため、自宅に1台VPNサーバがあるととても便利です。
iPhoneでVPNを張って数日たちましたが、バッテリーの減り方はWireGuardとはいえかなり早くなるので、必要に応じてon/offしたりするとよいかと思います。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
willserverのnoteも開設したのでフォローお願いします。
コメント