Tech Note Plus

PC から Azure まで幅広い伝道を目指してます

OpenWrt で WireGuard (Site to Site) を試す!

この記事では OpenWrt の WireGuard の S2S 接続に関する設定を記載しています。既に P2S の設定は以下の記事にて完了しています。 cube309b.hatenablog.com

WireGuard に求める要件

やりたいこと

私の環境では、既に VPN パッケージを二種類利用している関係から WireGuard の採用は見送っています。 しかしながら、実家側のルーターを OpenWrt に入れ替えることになれば OpenVPN をやめて WireGuard に統一可能になるので、試すだけ試して将来に備えます。

OpenWrt における WireGuard の実装方法

P2S の時と変わりありません。画面最上部の過去記事を参照ください。

WireGuard の設定構造

P2S の時と変わりありません。画面最上部の過去記事を参照ください。ちなみに、サーバーの場合だと下図になります。

WireGuard の設定方法

WireGuard、管理画面(日本語化含む)

P2S の時と変わりありません。画面最上部の過去記事を参照ください。

WireGuard の設定方法 (Site A)

証明書の作成
  1. SSH で OpenWrt に接続し、以下を入力します。

    umask go=
    wg genkey | tee sitea.key | wg pubkey > sitea.pub
    wg genkey | tee siteb.key | wg pubkey > siteb.pub
    wg genpsk > s2s.psk
  2. その後、以下を続けて入力して sitea.key、sitea.pub、siteb.key、siteb.pub、s2s.psk の値を控えておきます。

    cat sitea.key
    cat sitea.pub
    cat siteb.key
    cat siteb.pub
    cat s2s.psk
インターフェースの登録
  1. [ネットワーク]-[インターフェース]-[インターフェース] インターフェースを新規作成を押します。
  2. 名前:wg0 or wgxプロトコル:WireGuard VPN として、インターフェースを作成を押します。
  3. [一般設定] 以下の設定を行います。

    設定項目 設定値
    秘密鍵 sitea.key の中身の文字列
    公開鍵 sitea.pub の中身の文字列
    リッスンポート 任意の数値 (控えておく)

  4. [ファイアウォール設定] ファイアウォールゾーンの作成または割り当てlan に変更します。

  5. [ピア] ピアを追加を押します。

  6. 以下を入力の上、保存 → 保存 → 保存&適用を押します。

    設定項目 設定値
    説明 定義の名前。わかりやすく
    公開鍵 siteb.pub の中身の文字列
    秘密鍵 siteb.key の中身の文字列
    事前共有鍵 s2s.psk の中身の文字列
    許可された IP Site B で利用されているサブネット
    許可された IP のルート チェック
    エンドポイントホスト Site B のグローバルアドレス
    エンドポイントポート Site B の待ち受けポート
    永続的なキープアライブ 25

通信の許可
  1. [ネットワーク]-[ファイアウォール]-[トラフィック・ルール] 追加を押します。

  2. [ネットワーク]-[ファイアウォール]-[トラフィック・ルール]-[一般設定] 以下の設定を行います。

    設定項目 設定値
    名前 定義の名前。わかりやすく
    プロトコル UDP
    送信元アドレス Site B のグローバルアドレス
    送信元ゾーン wan
    宛先ゾーン バイス (入力)
    宛先ポート 前項で定義したものと同一の必要がある

  3. [ネットワーク]-[ファイアウォール]-[トラフィック・ルール]-[詳細設定] アドレスファミリの制限IPv4 のみに変更し、保存 → 保存&適用を押します。

WireGuard の設定方法 (Site B)

インターフェースの登録
  1. [ネットワーク]-[インターフェース]-[インターフェース] インターフェースを新規作成を押します。
  2. 名前:wg0 or wgxプロトコル:WireGuard VPN として、インターフェースを作成を押します。
  3. [一般設定] 以下の設定を行います。

    設定項目 設定値
    秘密鍵 siteb.key の中身の文字列
    公開鍵 siteb.pub の中身の文字列
    リッスンポート 前項で定義したものと同一の必要がある

  4. [ファイアウォール設定] ファイアウォールゾーンの作成または割り当てlan に変更します。

  5. [ピア] ピアを追加を押します。

  6. 以下を入力の上、保存 → 保存 → 保存&適用を押します。

    設定項目 設定値
    説明 定義の名前。わかりやすく
    公開鍵 sitea.pub の中身の文字列
    秘密鍵 sitea.key の中身の文字列
    事前共有鍵 s2s.psk の中身の文字列
    許可された IP Site A で利用されているサブネット
    許可された IP のルート チェック
    エンドポイントホスト Site A のグローバルアドレス
    エンドポイントポート Site A の待ち受けポート
    永続的なキープアライブ 25

通信の許可
  1. [ネットワーク]-[ファイアウォール]-[トラフィック・ルール] 追加を押します。

  2. [ネットワーク]-[ファイアウォール]-[トラフィック・ルール]-[一般設定] 以下の設定を行います。

    設定項目 設定値
    名前 定義の名前。わかりやすく
    プロトコル UDP
    送信元アドレス Site A のグローバルアドレス
    送信元ゾーン wan
    宛先ゾーン バイス (入力)
    宛先ポート 前項で定義したものと同一の必要がある

  3. [ネットワーク]-[ファイアウォール]-[トラフィック・ルール]-[詳細設定] アドレスファミリの制限IPv4 のみに変更し、保存 → 保存&適用を押します。

複数のピアを設定した場合の挙動

例えば、私のように 外 ⇔ Site A ⇔ Site B ということも可能です (A が Hub になって外と Site B の二つのピアを設定)。この場合、注意点としては、外や Site B 側の許可された IP に対向 (外や Site B) のアドレス情報を入力しておく必要があります。

設定のための参考サイト

設定に当たっては、以下の情報を参考にしました。

openwrt.org

OpenWrt の WireGuard 設定を終えて

こうして OpenWrt を使って WireGuard でリモートアクセス可能になりました。実家側を入れ替えたくなってきました・・・。


Note
・ 当ブログは個人主催であり、ブログ中のすべての情報は個人的な観点となります。
・ 情報については正確な内容となるよう努めますが、完全性や正確性、有用性、安全性、最新性について一切保証できかねます。