📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の3版が非表示)
237行目: 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ファイル
   
   
248行目: 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>
262行目: 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
304行目: 306行目:
ファイアウォールルールを設定した後、WireGuardサービス自体を起動してピア接続をリッスンすることができる。<br>
ファイアウォールルールを設定した後、WireGuardサービス自体を起動してピア接続をリッスンすることができる。<br>
<br>
<br>
==== 構築 ステップ6 : WireGuardサーバーの起動 ====
==== 構築 ステップ6 : WireGuardサーバーの起動 ====
WireGuardは、組み込みのwg-quickスクリプトを使用して、systemdサービスとして実行するように設定できる。<br>
WireGuardは、組み込みのwg-quickスクリプトを使用して、systemdサービスとして実行するように設定できる。<br>
618行目: 621行目:
   latest handshake: 1 second ago
   latest handshake: 1 second ago
   transfer: 6.50 KiB received, 15.41 KiB sent
   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>