| 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> | ||