Google CloudでVPNサーバーを作ってみた|WireGuardで自分用VPNを構築

Linux
スポンサーリンク
スポンサーリンク

出張先やカフェなどでフリーWi-Fiを使う場面はそれなりにある。

普段はそこまで気にしていなかったものの、
外部ネットワークを使うときの通信経路について、
一度整理しておきたいと思うようになった。

VPNサービスを契約する方法もあるが、
今回は勉強も兼ねて Google Cloud上にVPNサーバーを作ってみた

構成自体はそれほど複雑ではなかったので、
自分用のメモも兼ねて、今回の構築手順をまとめておく。


今回の構成

今回作成した構成は次のようなもの。

項目内容
クラウドGoogle Cloud
OSUbuntu Server
VPNWireGuard
接続端末スマートフォン

WireGuardは比較的新しいVPNソフトで、
設定がシンプルで動作も軽いと言われている。

個人用途で使うVPNとしては、
かなり扱いやすい印象だった。


Google CloudでVMを作成

まずはVPNサーバーになる仮想マシンを作成する。

Google Cloudコンソールから
Compute Engine → VMインスタンス を開き、
「インスタンスを作成」を選択。

今回は以下のような設定にした。

項目設定
マシンタイプe2-micro
OSUbuntu
リージョンasia-northeast1(東京)

VPN用途であれば、
この程度のスペックでも問題なく動作する。


WireGuardのインストール

VMにSSH接続したあと、
まずはパッケージを更新する。

sudo apt update

続いてWireGuardをインストール。

sudo apt install wireguard

インストール自体は特に詰まる部分もなく、
すぐに完了した。


鍵の作成

WireGuardでは、
公開鍵と秘密鍵のペアを使って通信を行う。

鍵は次のコマンドで作成できる。

wg genkey | tee privatekey | wg pubkey > publickey

ここで作成された鍵を
サーバーとクライアントで設定していく。


WireGuard設定ファイル

次にWireGuardの設定ファイルを作成する。

sudo nano /etc/wireguard/wg0.conf

設定例は以下のような形。

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = サーバー秘密鍵

設定を保存したあと、
WireGuardを起動する。

sudo wg-quick up wg0

Google Cloudのファイアウォール設定

Google Cloudでは、
外部から接続するポートを許可する必要がある。

WireGuardのデフォルトポートは

UDP 51820

なので、
このポートをファイアウォールで開けておく。

ここを忘れると、
VPN接続ができないので注意が必要だった。


スマートフォンから接続

スマートフォン側には
WireGuardアプリをインストール。

クライアント設定を作成し、

  • サーバーIP
  • 公開鍵
  • 接続ポート

などを設定する。

設定後に接続をオンにすると、
スマートフォンからVPN接続できるようになった。


実際に使ってみた感想

短時間の利用ではあるが、
接続は安定していて速度も特に問題は感じなかった。

また、自分でVPNを構築してみると、

  • VPNの仕組み
  • 鍵認証
  • ポート設定

といった部分が整理できて、
勉強としてもかなり面白かった。

クラウドを触るきっかけとしても、
こういう小さな構築はちょうどいい題材だと思う。


注意点

Google Cloudは無料枠があるものの、
使い方によっては料金が発生する。

特にVMを常時起動する場合は、
課金状況を定期的に確認しておいたほうが安心。


まとめ

今回、Google Cloud上に
WireGuardのVPNサーバーを構築してみた。

構成自体はシンプルで、

  • VM作成
  • WireGuardインストール
  • ポート開放

という流れで構築できた。

VPNの仕組みを理解する意味でも、
一度自分で作ってみるのは良い経験になると思う。

また時間があるときに、
ログの確認や運用面についても整理してみる予定。

スポンサーリンク
スポンサーリンク
Linux
シズナをフォローする
スポンサーリンク

コメント

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