さくらのクラウドで WireGuard を試してみた(前編)

ネットワーク # VPNルータ

世の中で VPNと言えば L2TP/IPsec が代表的です。
L2TP/IPsec は、接続元が Windows であったり、それなりの高価なルータを持っていれば比較的簡単に接続できる一方で、Linux サーバから接続しようとすると初心者ではなかなかハードルの高いところがあります。

このような中、さくらのクラウドの VPNルータには「WireGuardサーバ機能」があり、これを使って PC でも Linux サーバでも VPN 接続がおこなえます。また、WireGuard のプロトコルスタック自体は Linux 5.6 以降、kernel に取り込まれており、Linux で利用できる VPN としてはかなりハードルが低くなっています。

「WireGuardサーバ機能」はさくらのクラウドのリモートアクセスVPN として提供されており、接続元が動的グローバルIPアドレスでも利用可能で、VPNルータにピアの公開鍵を登録して接続します。また、ピアは複数登録でき、同時に利用可能です。

一方、「WireGuardサーバ機能」はリモートアクセスVPNの位置づけのため、接続元のローカルネットワークからの転送パケットには対応していません。つまり、サイト間VPNのように WireGuard で接続しているサーバをゲートウェイとして、クラウド側と接続元の間でローカルネットワーク間を VPN でつなげる、といった利用はできません。

但し、接続元のローカルネットワークから NAPT 経由でクラウド側のローカルネットワークにアクセスさせることは可能です。Linux で接続するなら、そこまでできると便利ですよね。

ここでは今回と次回の2回にわたって、VPNルータのスタンダードプランで「WireGuardサーバ機能」を使って、自宅の Windows PC と Linux サーバからクラウド側のローカルネットワークにあるサーバへの接続について紹介します。ついでに、NAPT 経由で自宅ネットワーク内の任意の Linux サーバからクラウド側への接続もできるようにしてみます。


前編(今回):

  • 自宅の Windows PC から VPNルータに接続してクラウドサーバにアクセス


後編(次回):

  • 自宅の Linuxサーバから VPNルータに接続してクラウドサーバにアクセス
  • VPNルータに接続した自宅の Linuxサーバで NAPT を設定してゲートウェイ化し、自宅の別の Linuxサーバからクラウドサーバにアクセス


なお、ここでの説明は VPN およびネットワーク接続で必要な最低限のものです。実際の運用で利用する場合は、アクセスコントロールやセキュリティへの対応は十分にご検討ください。

全体構成

VPNルータのスタンダードプランの上流側ネットワーク接続先は共有セグメントになります。標準付属 IPv4 アドレスが1個あり、外部との接続で利用します。また、クラウド側のサーバと接続をするためには、その間にスイッチが必要です。

今回使用するローカルネットワーク構成は下記になります。

自宅ネットワーク:    192.168.1.0/24
クラウド側ネットワーク: 10.0.1.0/24


クラウド側ネットワークの IPアドレスは下記のように割り当てます。

VPNルータ     10.0.1.1 (デフォルトGW)
クラウドサーバ1  10.0.1.2


自宅ネットワークのサーバの IPアドレスは下記のように割り当てます。

ブロードバンドルータ 192.168.1.1 (デフォルトGW)
自宅GWサーバ     192.168.1.100 (VPNルータ接続GW)
自宅サーバ1     192.168.1.101


また、WireGuard のピアがトンネル内で使用する IPアドレスの範囲と、各ピアへの IPアドレスを下記のように割り当てます。

ピアの IPアドレス範囲   172.16.1.0/24

VPNルータ        172.16.1.1
自宅PC         172.16.1.2
自宅GWサーバ      172.16.1.3


さて、まずは自宅PC からの接続を確認していきましょう。

公開鍵の作成

WireGuard の接続は公開鍵で認証するため、先に公開鍵を用意します。

WireGuard のダウンロードページより、Windows 用のインストーラをダウンロードしてインストールします。

https://www.wireguard.com/install

インストール後、WireGuard アプリを起動して、画面下の「トンネルの追加」のプルダウンから「空のトンネルを追加」を選択します。

名前に「SAKURA-VPN」と入力して「保存」ボタンを押して保存します。

トンネルの追加後に、トンネルの情報として画面に「公開鍵」が表示されます。この公開鍵は、後ほど VPNルータの WireGuard のピア設定時に使用します。

VPNルータの設定

さくらのクラウド画面にログインして、VPNルータを設定していきます。

スイッチの作成

VPNルータとサーバの間をつなぐスイッチを作成します。

  • 左側メニューの「ネットワーク」カテゴリ内にある「スイッチ」をクリック
  • 右上の「追加」ボタンをクリック

スイッチの新規作成画面が表示されます。下記を入力します。

名前:  スイッチ1
ルータ: いいえ

「作成」ボタンをクリックすることでスイッチが作成されます。

VPNルータの作成

VPNルータを作成します。

  • 左側メニューの「アプライアンス」カテゴリ内にある「VPNルータ」をクリック
  • 右上の「追加」ボタンをクリック

VPNルータの新規作成画面が表示されます。下記を入力します。

プラン        スタンダード
インターネット接続  有効
名前         VPNルータ1

「作成」ボタンをクリックすることでVPNルータが作成されます。

VPNルータのインターフェース設定

VPNルータを作成したら、引き続きインタフェースの確認と接続設定をします。

まずはグローバルネットワーク側インターフェースの内容を確認します。

  • 「アプライアンス」=>「VPNルータ」
  • 「VPNルータ1」をダブルクリック
  • 「インターフェース」タブをクリック

下記の内容が表示されます。

インタフェース  グローバル
スイッチ     共有セグメント
IPアドレス    (グローバルIPアドレス)
プリフィックス  /24

上記の IPアドレスが、WireGuard の接続先 IPアドレスになります。

次に、スイッチへの接続を設定します。

  • 「インターフェース」タブのリストにある「プライベート1」の右側の鉛筆アイコンをクリック

インターフェース設定画面が表示されます。下記を入力します。

スイッチ    既存スイッチを接続
        接続先スイッチ: スイッチ1
IPアドレス   10.0.1.1
プリフィックス /24

「更新前チェック」ボタンを押して、「更新」ボタンを押した後、「反映」ボタンをクリックし、VPNルータ側への設定内容を反映します。

VPNルータを起動

VPNルータを起動します。

  • 「アプライアンス」=>「VPNルータ」
  • 「VPNルータ1」を選択
  • 右上の「電源操作」で「起動」を選択
  • 「操作対象:一つまたは複数のリソースに対して操作を実行します」と表示されるので、右上の「起動」ボタンをクリックして起動

「WireGuardサーバ機能」の設定と、ピアの追加

引き続き、VPNルータの「WireGuardサーバ機能」を設定します。

  • 「アプライアンス」=>「VPNルータ」
  • 「VPNルータ1」をダブルクリック
  • 「リモートアクセス」タブ→「WireGuardサーバ」タブを選択します。
  • WireGuardサーバ機能の設定状況が表示されるので、「編集」ボタンをクリックします。

WireGuardサーバ機能の設定画面が表示されるので、各項目を選択・入力します。

有効/無効   有効
IPアドレス  172.16.1.1/24
ログ     有効

「更新」ボタンを押した後、「反映」ボタンをクリックし、VPNルータ側への設定内容を反映します。

上記の IPアドレスが、VPNルータ側のトンネル内の IPアドレスです。後ほど設定するピアの IPアドレスは、ここで設定した /24 のプリフィックスの範囲内にする必要があります。

また、上記反映後、「WireGuardサーバ」に公開鍵が表示されるので、控えておきます。

引き続き「WireGuardサーバ」の画面で、「自宅PC」のピアの設定をします。

  • 「WireGuardピア」の下の「追加」ボタンをクリック

ピア追加設定画面が表示されます。下記を入力します。

名前     自宅PC
IPアドレス  172.16.1.2
公開鍵    (Windows の WireGuard アプリで作成した公開鍵)

「更新」ボタンを押した後、「反映」ボタンをクリックし、VPNルータ側への設定内容を反映します。

自宅PCの設定と確認

WireGuard設定

自宅の Windows PC で WireGuard の接続設定をおこないます。

  • WireGuard アプリを起動
  • 「SAKURA-VPN」を選択し、右下の「編集」ボタンを押す

既に設定されている行はそのままで、更に設定を追記します。

[Interface]
PrivateKey = (既に設定されている内容のまま)
Address = 172.16.0.2
ListenPort = 51820

[Peer]
PublicKey = (VPNルータの WireGuardサーバの公開鍵)
Endpoint = (VPNルータのグローバルIPアドレス):51820
AllowedIPs = 172.16.0.0/24,10.0.1.0/24
PersistentKeepAlive = 25

「保存」ボタンを押して保存します。

ここで AllowedIPs に「172.16.1.0/24」と「10.0.1.0/24」が入っていることに注意します。前者は WireGuard のトンネルで使用するピアの IPアドレス範囲、後者はクラウド側のローカルネットワークのサブネットです。この設定をおこなうことで、自宅PC とクラウド側のローカルネットワークのサーバとの間で通信をおこなうことができます。

VPNルータとの接続確認

自宅PCから WireGuard で VPNルータに接続してみます。

  • WireGuardアプリで「SAKURA-VPN」を選択し、「有効化」ボタンを押す

「状態」が「有効」になれば、正常に接続できています。

トンネルを通じて VPNルータ側のピアに対して通信の疎通確認をします。

コマンドプロンプトを開いて、VPNルータ側のピアに ping を送ってみます。

ping -n 3 172.16.1.1

ping が返ってきて、VPNルータとの疎通が確認できました。

クラウドのサーバ作成

クラウド側のサーバを作成します。OS は AlmaLinux 9 を使用します。

  • 左側のサイドメニューより「サーバ」を選択
  • 右上の「追加」を選択
  • 「シンプルモード」にチェックを入れる

下記の内容で作成します。

  • 「Unix / Linux」タブから「AlmaLinux」の「9.8 64bit」を選択
  • サーバプラン、ディスクプランは適宜、選択
  • 接続先のネットワーク
    • 「スイッチ」を選択
    • スイッチは「スイッチ1」を選択
  • サーバの設定
    • IPアドレスの設定 固定IPアドレスの利用
    • IPアドレス 10.0.1.2
    • ネットマスク 24
    • ゲートウェイ 10.0.1.1
    • 管理ユーザのパスワード 適宜
    • 公開鍵 なし
  • ホスト名 host01

「作成」ボタンを押して、サーバが起動するまでしばらく待ちます。

SSH ログイン設定

デフォルトでは root のパスワードログインはできませんが、検証のため sshd の設定を変更して root のパスワードログインを許可します。

設定のため、コンソールを開きます。

  • 左側のサイドメニューより「サーバ」を選択
  • 「host01」をダブルクリックして、「コンソール」を選択
  • サーバ作成時に設定したパスワードで、root アカウントにログイン

下記コマンドを実行します。

# echo 'PermitRootLogin yes' > /etc/ssh/sshd_config.d/90-local.conf
# systemctl restart sshd

自宅PCからクラウドサーバへの接続確認

目的通り、自宅PC からクラウドのサーバへログインできるか確認します。

  • 自宅PC の WireGuard アプリを起動
  • 前回と同様に VPNルータに接続

クラウドのサーバへ通信できるか、ping で疎通確認します。
コマンドプロンプトを開いて、下記を実行します。

ping -n 3 10.0.1.2

ping が確認できたら、ssh で root にパスワードでログインできることを確認します。

ssh root@10.0.1.2

無事、ログインできることを確認しました。

まとめ

今回は、自宅の Windows PC より、WireGuard の VPN 経由でクラウドのサーバへのアクセスができるまでを確認しました。

次回は、自宅の Linux サーバから WireGuard でアクセスする確認をおこないます。

この記事を書いた人

H.M.

ネットアシスト運用チーム  さくらのクラウド検定 2026年 第1回試験 合格