423行目: 423行目:
どちらの場合も、相手のトラフィックを全てVPN経由で送信して、WireGuardサーバを全てのトラフィックのゲートウェイとして使用する場合は、<br>
どちらの場合も、相手のトラフィックを全てVPN経由で送信して、WireGuardサーバを全てのトラフィックのゲートウェイとして使用する場合は、<br>
IPv4アドレス空間全体を表す0.0.0.0/0と、IPv6アドレス空間全体を表す::/0を使用できる。<br>
IPv4アドレス空間全体を表す0.0.0.0/0と、IPv6アドレス空間全体を表す::/0を使用できる。<br>
<br>
===== オプション 1 : 全てのトラフィックをトンネル上にルーティングするピアの設定 =====
もし、ピアがリモートシステムの場合、かつ、<code>0.0.0.0/0</code>、または、<code>::/0</code>ルートを使用してトンネル上でピアの全てのトラフィックをルーティングすることを選択する場合は、このセクションの手順を行う必要がある。<br>
ピアがローカルシステムの場合は、このセクションをスキップする。<br>
<br>
パブリックIPアドレスを使用してSSHまたは他のプロトコルを介してアクセスするリモート・ピアの場合、ピアのwg0.confファイルにルールを追加する必要がある。<br>
これらのルールを追加することにより、ピアシステムが接続されている時に、トンネルの外からピアシステムに接続できるようになる。<br>
そうしないと、トンネルが確立された時に、通常パブリックネットワークインターフェースで処理される全てのトラフィックが、<br>
wg0トンネルインターフェースをバイパスするように正しくルーティングされず、アクセスできないリモートシステムになってしまうからである。<br>
<br>
まず、相手システムがデフォルトゲートウェイとして使用しているIPアドレスを特定する必要がある。<br>
ip route list table main default
# 出力例
default via 203.0.113.1 dev eth0 proto static
<br>
<u>※注意</u><br>
<u>ゲートウェイの強調表示されたIPアドレスとネットワークデバイス名(例: eth0)を覚えておくこと。</u><br>
<br>
次に、ネットワークデバイス名を使用して、相手システムのパブリックIPを探す。<br>
ip -brief address show eth0
# 出力例
eth0    UP    203.0.113.5/20 10.20.30.40/16 2604:a880:400:d1::3d3:6001/64 fe80::68d5:beff:feff:974c/64
<br>
上記の出力例では、強調表示された203.0.113.5(末尾の/20なし)が、WireGuardピア構成に追加する必要があるeth0デバイスに割り当てられているパブリックIPである。<br>
<br>
次に、WireGuardピアの/etc/wireguard/wg0.confファイルを開いて、[Peer]セクションの直前に以下に示す4行を追記する。<br>
この設定は、カスタムルーティングルールを作成して、ピアシステムへのパブリックトラフィックがデフォルトゲートウェイを使用するようにカスタムルートを追加するものである。<br>
sudo vi /etc/wireguard/wg0.conf
<br>
# /etc/wireguard/wg0.confファイル
PostUp = ip rule add table 200 from 203.0.113.5
PostUp = ip route add table 200 default via 203.0.113.1
PreDown = ip rule delete table 200 from 203.0.113.5
PreDown = ip route delete table 200 default via 203.0.113.1
[Peer]
...略
<br>
* <code>PostUp</code>キー値
*: <code>ip rule add table 200 from 203.0.113.5</code>とは、ピアシステムのパブリックIP 203.0.113.5に一致する場合に、200番テーブルのルーティングエントリをチェックするルールを作成する。
* <code>PostUp</code>キー値
*: <code>ip route add table 200 default via 203.0.113.1</code>とは、200番テーブルで処理されるトラフィックが、WireGuardインターフェースではなく、ゲートウェイ 203.0.113.1を使用してルーティングされるようにする。
* <code>PreDown</code>キー値
*: トンネルがシャットダウンされる時、カスタムルールとルートを削除する。
<br>
<u>※注意</u><br>
<u>これらのルールを構築する時、テーブル番号である200は任意の数値であり、<code>2〜252</code>までの値を使用することができる。</u><br>
<u>また、/etc/iproute2/rt_tablesファイルにラベルを追加して、数値の代わりにその名前を参照することで、カスタム名を使用することもできる。</u><br>
<br>
<u>Linuxでのルーティングテーブルの動作の詳細については、[http://linux-ip.net/html/routing-tables.html LinuxによるIP層ネットワーク管理ガイド]の[http://linux-ip.net/html/index.html ルーティングテーブル]を参照すること。</u><br>
<br>
全てのピアのトラフィックをVPN経由でルーティングする場合は、<br>
上記の[[設定 - VPNサーバ#構築 ステップ4 : WireGuardサーバのネットワーク設定の調整|構築 ステップ4 : WireGuardサーバのネットワーク設定の調整]]セクション、および、上記の[[設定 - VPNサーバ#構築 ステップ5 : WireGuardサーバのファイアウォールの設定|構築 ステップ5 : WireGuardサーバのファイアウォールの設定]]セクションを参照して、<br>
WireGuardサーバに正しいsysctlルールおよびiptablesルールを設定していることを確認すること。<br>
<br><br>
<br><br>