(同じ利用者による、間の12版が非表示)
170行目: 170行目:
<br>
<br>
==== 構築 ステップ3 : WireGuardサーバ構成の作成 ====
==== 構築 ステップ3 : WireGuardサーバ構成の作成 ====
必要な秘密鍵とIPアドレスを使用して、WireGuardサーバの設定ファイルを作成する。<br>
秘密鍵とIPアドレスを使用して、WireGuardサーバの設定ファイルを作成する。<br>
<br>
* PrivateKey
*: 秘密鍵ファイルのフルパスを指定する。
* Address
*: IPアドレスを指定する。
* SaveConfig
*: WireGuardインターフェイスがシャットダウンされた時に、変更内容が設定ファイルに保存されるようにする設定である。
* ListenPort
*: WireGuardを別のポートで使用したい場合は、値を変更する。
<br>
<br>
PrivateKeyキー値は秘密鍵のフルパス、Addressキー値はIPアドレスを指定する。<br>
SaveConfigキー値は、WireGuardインターフェイスがシャットダウンされた時に、変更内容が設定ファイルに保存されるようにする設定である。<br>
WireGuardを別のポートで使用したい場合は、ListenPortキー値を変更することもできる。<br>
  sudo vi /etc/wireguard/wg0.conf
  sudo vi /etc/wireguard/wg0.conf
<br>  
<br>
<syntaxhighlight lang="ini">  
  # /etc/wireguard/wg0.confファイル
  # /etc/wireguard/wg0.confファイル
   
   
184行目: 191行目:
  ListenPort = 51820
  ListenPort = 51820
  SaveConfig = true
  SaveConfig = true
</syntaxhighlight>
<br>
<br>
==== 構築 ステップ4 : WireGuardサーバのネットワーク設定の調整 ====
==== 構築 ステップ4 : WireGuardサーバのネットワーク設定の調整 ====
WireGuardピアのインターネットトラフィックをWireGuardサーバー経由でルーティングする場合は、このセクションに従ってIP転送を設定する必要がある。<br>
WireGuardピアのインターネットトラフィックをWireGuardサーバー経由でルーティングする場合は、このセクションに従ってIP転送を設定する必要がある。<br>
228行目: 237行目:
ファイアウォールルールをWireGuardサーバに追加するため、/etc/wireguard/wg0.confファイルの最下行に、以下に示す設定を追記する。<br>
ファイアウォールルールをWireGuardサーバに追加するため、/etc/wireguard/wg0.confファイルの最下行に、以下に示す設定を追記する。<br>
  sudo vi /etc/wireguard/wg0.conf
  sudo vi /etc/wireguard/wg0.conf
   
<br>
  <syntaxhighlight lang="ini">
  # /etc/wireguard/wg0.confファイル
  # /etc/wireguard/wg0.confファイル
   
   
239行目: 249行目:
  PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
  PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
  PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
  PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
</syntaxhighlight>
<br>
<br>
PostUpの行は、WireGuardサーバが仮想VPNトンネルを開始するときに実行される。<br>
<code>PostUp</code>キー値は、WireGuardサーバが仮想VPNトンネルを開始するときに実行される。<br>
上記の例では、3つのufwルールとiptablesルールが追加される。<br>
上記の例では、3つのufwルールとiptablesルールが追加される。<br>
<br>
<br>
253行目: 264行目:
*: このルールは、マスカレードを設定して、wg0 VPNインタフェースから侵入してくるIPv6トラフィックを書き換えて、WireGuardサーバのパブリックIPv6アドレスから直接発信されているように見せかける。
*: このルールは、マスカレードを設定して、wg0 VPNインタフェースから侵入してくるIPv6トラフィックを書き換えて、WireGuardサーバのパブリックIPv6アドレスから直接発信されているように見せかける。
<br>
<br>
PreDownルールは、WireGuardサーバが仮想VPNトンネルを停止するときに実行される。<br>
<code>PreDown</code>キー値は、WireGuardサーバが仮想VPNトンネルを停止するときに実行される。<br>
これらのルールは、PostUpルールの逆で、VPNが停止された時にVPNインターフェイスの転送ルールとマスカレードルールを元に戻す働きをする。<br>
これらのルールは、<code>PostUp</code>キー値の逆で、VPNが停止された時にVPNインターフェイスの転送ルールとマスカレードルールを元に戻す働きをする。<br>
<br>
<br>
どちらの場合も、VPNに適したIPv4ルールとIPv6ルールを含むか含まないか、設定を編集する。<br>
どちらの場合も、VPNに適したIPv4ルールとIPv6ルールを含むか含まないか、設定を編集する。<br>
例えば、IPv4のみを使用しているのであれば、ip6tablesコマンドで行を除外することができる。<br>
例えば、IPv4のみを使用しているのであれば、<code>ip6tables</code>コマンドで行を除外することができる。<br>
逆に IPv6のみを使うのであれば、ip6tablesコマンドだけを含むように設定を編集する。<br>
逆に IPv6のみを使うのであれば、<code>ip6tables</code>コマンドだけを含むように設定を編集する。<br>
<br>
<br>
ufwの行は、IPv4とIPv6のネットワークの組み合わせに関係なく存在する必要がある。<br>
<code>PreDown</code>キー値の<u>ufw 〜</u>と記述している設定は、IPv4とIPv6のネットワークの組み合わせに関係なく存在する必要がある。<br>
<br>
<br>
WireGuardサーバのファイアウォール設定の最後は、WireGuard UDPポート自体とのトラフィックを許可することである。<br>
WireGuardサーバのファイアウォール設定の最後は、WireGuard UDPポート自体とのトラフィックを許可することである。<br>
WireGuardサーバの/etc/wireguard/wg0.confファイルでポートを変更しなかった場合、開くポートは51820である。<br>
また、WireGuardサーバの/etc/wireguard/wg0.confファイルでポートを変更しなかった場合、デフォルトで使用されるポートは<code>51820</code>である。<br>
もし、別のポートを使用する場合は、必ずufwコマンドを実行して、該当ポートを置き換えること。<br>
もし、別のポートを使用する場合は、必ず<code>ufw</code>コマンドを実行して、該当ポートを置き換えること。<br>
<br>
<br>
また、SSHポートを開放すること。<br>
また、SSHのポートを開放すること。<br>
  sudo ufw allow 51820/udp
  sudo ufw allow 51820/udp
  sudo ufw allow OpenSSH
  sudo ufw allow OpenSSH
295行目: 306行目:
ファイアウォールルールを設定した後、WireGuardサービス自体を起動してピア接続をリッスンすることができる。<br>
ファイアウォールルールを設定した後、WireGuardサービス自体を起動してピア接続をリッスンすることができる。<br>
<br>
<br>
==== 構築 ステップ6 : WireGuardサーバーの起動 ====
==== 構築 ステップ6 : WireGuardサーバーの起動 ====
WireGuardは、組み込みのwg-quickスクリプトを使用して、systemdサービスとして実行するように設定できる。<br>
WireGuardは、組み込みのwg-quickスクリプトを使用して、systemdサービスとして実行するように設定できる。<br>
379行目: 391行目:
* WireGuardサーバで定義したIPv4およびIPv6アドレス範囲。
* WireGuardサーバで定義したIPv4およびIPv6アドレス範囲。
* WireGuardサーバから取得したbase64エンコードされた公開鍵。
* WireGuardサーバから取得したbase64エンコードされた公開鍵。
* WireGuardサーバの公開IPアドレスとポート番号。<br>通常、これはIPv4アドレスになるが、WireGuardサーバにIPv6アドレスがあり、クライアントマシンがインターネットにIPv6接続できる場合は、IPv4の代わりにこれを使用することができる。
* WireGuardサーバの公開IPアドレスとポート番号。<br>通常、これはIPv4アドレスになるが、もし、WireGuardサーバにIPv6アドレスがあり、クライアントマシンがインターネットにIPv6接続できる場合は、IPv4の代わりにこれを使用することができる。
<br>
<br>
WireGuardピア上にある/etc/wireguard/wg0.confファイルを、以下に示すように編集する。<br>
WireGuardピア上にある/etc/wireguard/wg0.confファイルを、以下に示すように編集する。<br>
389行目: 401行目:
  [Interface]
  [Interface]
  PrivateKey = base64_encoded_peer_private_key_goes_here
  PrivateKey = base64_encoded_peer_private_key_goes_here
  Address = 10.8.0.**2**/24
  Address = 10.8.0.2/24
  Address = fd24:609a:6c18::**2**/64
  Address = fd24:609a:6c18::2/64
   
   
  [Peer]
  [Peer]
397行目: 409行目:
  Endpoint = 203.0.113.1:51820
  Endpoint = 203.0.113.1:51820
  </syntaxhighlight>
  </syntaxhighlight>
<br>
最初のAddressキー値は、先ほど選んだ10.8.0.0/24サブネットのIPv4アドレスを使用していることに注目する。<br>
このIPアドレスは、サーバのIPと異なる限り、サブネット内のどのアドレスでも構わない。<br>
ピアを追加するたびにアドレスを1ずつ増やすのが、一般的にIPを割り当てる最も簡単な方法である。<br>
<br>
2番目のAddressキー値は、先ほど生成したサブネットのIPv6アドレスを使用して、サーバのアドレスを1ずつ増やしていることに注目する。<br>
この場合も、異なるアドレスを使用する場合は、範囲内のどのIPでも有効である。<br>
<br>
この設定ファイルのもう1つの注目すべき部分は、AllowedIPsキー値である。<br>
この2つのIPv4とIPv6の範囲は、宛先システムがいずれかの範囲のIPアドレスを持っている場合にのみ、VPN経由でトラフィックを送信するようピアに指示する。<br>
AllowedIPsキーを使用することにより、WireGuardピアのVPNを制限して、VPN上の他のWireGuardピアやサービスのみに接続させることも、全てのトラフィックをVPN上にトンネルして、WireGuardサーバをゲートウェイとして使用するように設定することもできる。<br>
<br>
IPv4のみを使用する場合は、末尾のfd24:609a:6c18::/64範囲(、カンマを含む)を省略する。<br>
逆に、IPv6のみを使用する場合は、fd24:609a:6c18::/64プレフィックスのみを含め、10.8.0.0/24 IPv4範囲を省略する。<br>
<br>
どちらの場合も、相手のトラフィックを全てVPN経由で送信して、WireGuardサーバを全てのトラフィックのゲートウェイとして使用する場合は、<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>
<syntaxhighlight lang="ini">
# /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]
...略
</syntaxhighlight>
<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>
===== オプション 2 : WireGuardピアのDNSリゾルバの設定 =====
WireGuardサーバをピアトラフィック全体のVPNゲートウェイとして使用する場合は、[Interface]セクションにDNSリゾルバを指定する行を追加する必要がある。<br>
この設定を行わない場合、DNSリクエストがVPNによって保護されなかったり、インターネットサービスプロバイダ(ISP)またはその他のサードパーティに公開される可能性がある。<br>
<br>
WireGuardを使用してVPNネットワーク上のリソースにアクセスする場合、または、ピアツーピア構成でのみ使用する場合は、このセクションをスキップすることができる。<br>
<br>
ピアの設定にDNSリゾルバを追加するには、まず、WireGuardサーバ上でWireGuardサーバが使用しているDNSサーバを特定する。<br>
出力されるIPアドレスは、WireGuardサーバが使用しているDNSリゾルバである。<br>
ニーズに応じて、これらのいずれかまたは全てを使用するかどうか、IPv4またはIPv6のみを使用するかどうかを選択することができる。<br>
resolvectl dns <ネットワークインターフェース名>
例 : resolvectl dns eth0
# 出力例
Link 2 (eth0): 67.207.67.2 67.207.67.3 2001:4860:4860::8844 2001:4860:4860::8888
<br>
次に、選択したリゾルバをWireGuardピアの設定ファイルに追加する必要がある。<br>
WireGuardピア上にある/etc/wireguard/wg0.confファイルにおいて、[Peer]セクションの直前に以下に示す設定を追記する。<br>
sudo vi /etc/wireguard/wg0.conf
<br>
<syntaxhighlight lang="ini">
# /etc/wireguard/wg0.confファイル
DNS = 67.207.67.2 2001:4860:4860::8844
[Peer]
...略
</syntaxhighlight>
<br>
この場合も、IPv4とIPv6の好みや要件に応じてリストを編集する。<br>
<br>
DNSリゾルバ設定が完了した後は、ピアの公開鍵をwireGuardサーバに追加して、ピア上でWireGuardトンネルを開始する。<br>
<br>
※注意<br>
次のセクションでVPNに接続した後、[https://www.dnsleaktest.com/ DNSリークテスト]を実施して、VPN経由でDNSクエリを送信していることを確認することができる。<br>
また、WireGuardサーバ上で実行したように、<code>resolvectl dns</code>コマンドを実行して、相手が設定されたリゾルバを使用していることを確認することもできる。<br>
VPNトンネル用に設定したDNSリゾルバを示すような出力が得られるはずである。<br>
# 出力例
Global: 67.207.67.2 67.207.67.3
...略
<br>
==== 構築 ステップ8 : WireGuardサーバへのピアの公開鍵の追加 ====
ピアをWireGuardサーバに接続する前に、ピアの公開鍵をWireGuardサーバに追加する必要がある。<br>
これにより、VPNに接続して、VPN上でトラフィックをルーティングできるようになる。<br>
この手順を実施しない場合、WireGuardサーバは、ピアがトンネル上でトラフィックを送受信することを許可しない。<br>
<br>
まず、WireGuardピアのbase64エンコード公開鍵のコピーがあることを確認する。<br>
sudo cat /etc/wireguard/public.key
# 出力例
PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=
<br>
次に、WireGuardサーバにログインして、以下のコマンドを実行する。<br>
sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.8.0.2,fd24:609a:6c18::2
<br>
<code>allowed-ips</code>オプションには、IPv4アドレスとIPv6アドレスをカンマ区切りで指定する。<br>
ピアが自分自身に割り当てるIPアドレスを制限したい場合は個々のIPを指定する。<br>
ピアがVPN範囲内のどのIPアドレスでも使用できる場合は、上記の例のように範囲を指定する。<br>
また、2つのピアが同じ<code>allowed-ips</code>オプションを持つことはできないことに注意する。
<br>
既存のピアの<code>allowed-ips</code>オプションを更新する場合は、同じコマンドを再度実行して、IPアドレスを変更する。<br>
<br>
複数のIPアドレスにも対応しており、例えば、追加したばかりのWireGuardピアを変更して、既存の10.8.0.2とfd24:609a:6c18::2のIPに10.8.0.100のようなIPを追加する場合は、<br>
以下の例のように実行する。<br>
sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.8.0.2,10.8.0.100,fd24:609a:6c18::2
<br>
ピアを追加するコマンドを実行した後、<code>wg</code>コマンドを実行してWireGuardサーバ上のトンネルのステータスを確認する。<br>
sudo wg
# 出力例
interface: wg0
  public key: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=
  private key: (hidden)
  listening port: 51820
peer: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=
  allowed ips: 10.8.0.2/32, fd24:609a:6c18::/128
<br>
<code>peer</code>の行には、WireGuardピアの公開鍵と、WireGuardピアが自分自身にIPを割り当てるために使用できるIPアドレスまたはアドレスの範囲が表示されていることに注意する。<br>
<br>
WireGuardサーバ上でピアの接続パラメータを定義したので、次のセクションではピア上でトンネルを開始する。<br>
<br>
==== 構築 ステップ9 : WireGuard ピアのトンネルへの接続 ====
WireGuardサーバとWireGuardピアの両方がIPv4、IPv6、パケット転送、DNS解決をサポートするように設定した後、最後にWireGuardピアをVPNトンネルに接続する。<br>
<br>
VPNを有効にする場面は特定のユースケースのみかもしれないため、<code>wg-quick</code>コマンドを実行して手動で接続を確立することにする。<br>
WireGuardサーバ上で行ったようにトンネルの起動を自動化する場合は、<code>wq-quick</code>コマンドの代わりに、[[設定 - VPNサーバ#構築 ステップ6 : WireGuardサーバー]]の起動セクションの手順に従うこと。<br>
<br>
全てのトラフィックをVPN経由でルーティングして、DNS転送を設定している場合、トンネルを開始する前にWireGuardピアにresolvconfユーティリティをインストールする必要がある。<br>
sudo apt install resolvconf
<br>
トンネルを開始するには、WireGuardピアで以下に示すコマンドを実行する。<br>
sudo wg-quick up wg0
# 出力例
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.8.0.2/24 dev wg0          # WireGuardピアに割り当てたIPv4のアドレス
[#] ip -6 address add fd24:609a:6c18::2/64 dev wg0  # WireGuardピアに割り当てたIPv6のアドレス
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
<br>
WireGuardピアの<code>AllowedIPs</code>を<code>0.0.0.0/0</code>と<code>::/0</code>に設定している場合、あるいは、VPN用に選んだ範囲以外を使用している場合、以下に示すような出力例となる。<br>
# 出力例
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.8.0.2/24 dev wg0              # WireGuardピアに割り当てたIPv4のアドレス
[#] ip -6 address add fd24:609a:6c18::2/64 dev wg0    # WireGuardピアに割り当てたIPv6のアドレス
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820          # コマンドが追加したルート (ピア設定の<u>AllowedIPs</u>に対応している)
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820      # コマンドが追加したルート (ピア設定の<u>AllowedIPs</u>に対応している)
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n
<br>
WireGuardピア上のトンネルのステータスを確認する。<br>
sudo wg
# 出力例
interface: wg0
  public key: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=
  private key: (hidden)
  listening port: 49338
  fwmark: 0xca6c
peer: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=
  endpoint: 203.0.113.1:51820
  allowed ips: 10.8.0.0/24, fd24:609a:6c18::/64
  latest handshake: 1 second ago
  transfer: 6.50 KiB received, 15.41 KiB sent
<br>
ip routeコマンドとip -6 routeコマンドを実行して、WirGuardピアがVPNを使用していることを確認する。<br>
全てのインターネットトラフィックのゲートウェイとしてVPNを使用している場合、CloudFlareの1.1.1.1および2606:4700:4700::1111のDNSリゾルバ宛てのトラフィックにどのインターフェースが使用されるかを確認する。<br>
<br>
WireGuardを使用してVPN上のリソースにアクセスする場合のみ、ゲートウェイ自体のような有効なIPv4またはIPv6アドレスに置き換えること。<br>
wg0デバイスが使用され、WireGuardピアに割り当てたIPv4アドレス10.8.0.2が使用されていることに注意すること。<br>
例: 10.8.0.1またはfd24:609a:6c18::1<br>
ip route get 1.1.1.1
# 出力例
1.1.1.1 dev wg0 table 51820 src 10.8.0.2 uid 1000
  cache
<br>
同様に、IPv6を使用している場合は、以下を実行する。<br>
再度、wg0インターフェースと、WireGuardピアに割り当てたIPv6アドレスfd24:609a:6c18::2に注意すること。<br>
ip -6 route get 2606:4700:4700::1111
# 出力例
2606:4700:4700::1111 from :: dev wg0 table 51820 src fd24:609a:6c18::2 metric 1024 pref medium
<br>
また、Webブラウザから、https://ipleak.net/ や https://ipv6-test.com/ にアクセスして、相手がVPN経由でトラフィックをルーティングしていることを確認することもできる。<br>
<br>
WireGuardピアのVPNを切断する準備ができた後は、<code>wg-quick</code>コマンドを実行する。<br>
VPNトンネルがシャットダウンされたことを示す以下のような出力が表示される。<br>
sudo wg-quick down wg0
# 出力例
[#] ip link delete dev wg0
[#] resolvconf -d tun.wg0 -f
<br>
例えば、WireGuardピアの<code>AllowedIPs</code>を<code>0.0.0.0/0</code>と<code>::/0</code>に設定した場合、あるいは、VPN用に選んだ範囲以外を使用した場合は、以下に示すような出力のようになる。<br>
[#] ip rule delete table 200 from 203.0.113.5
[#] ip route delete table 200 default via 203.0.113.1
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip -6 rule delete table 51820
[#] ip -6 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
[#] resolvconf -d tun.wg0 -f
[#] iptables-restore -n
[#] ip6tables-restore -n
<br>
VPNに再接続するには、WireGuardピア上で以下に示すコマンドを再度実行する。<br>
sudo wg-quick up wg0
<br>
WireGuardサーバからピアの設定を完全に削除する場合は、削除するピアの公開鍵を正しく置き換えて、以下に示すコマンドを実行する。<br>
sudo wg set wg0 peer <ピアの公開鍵の内容> remove
# 実行例
sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= remove
<br>
<u>※注意</u><br>
<u>通常、ピアの設定を削除する必要がある場合は、そのピアがもう存在しないか、暗号化キーが漏洩または変更された場合のみである。</u><br>
<u>そうでない場合は、設定を残しておいたほうがよい。</u><br>
<u>そのように運用することにより、ピアはその都度キーや<code>allowed-ips</code>を追加しなくても、VPNに再接続できるようになる。</u><br>
<br><br>
<br><br>