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

208行目: 208行目:
ただし、トラフィックをサーバ経由で正しくルーティングする前に、いくつかのファイアウォールルールを設定する必要がある。<br>
ただし、トラフィックをサーバ経由で正しくルーティングする前に、いくつかのファイアウォールルールを設定する必要がある。<br>
このルールにより、WireGuardサーバとピアとの間のトラフィックが正しく流れるようになる。<br>
このルールにより、WireGuardサーバとピアとの間のトラフィックが正しく流れるようになる。<br>
<br><br>
==== 構築 ステップ5 : WireGuardサーバのファイアウォールの設定 ====
このセクションでは、WireGuardサーバとクライアント間のトラフィックが正しくルーティングされるようにするため、ファイアウォールルールを追加する。<br>
もし、WireGuard VPNをマシン間接続にのみ使用して、VPNに制限されているリソースにアクセスする場合は、この設定は不要である。<br>
<br>
WireGuard VPNトラフィックをサーバのファイアウォール経由で許可する場合は、マスカレードを有効にする必要がある。<br>
マスカレードとは、クライアント接続を正しくルーティングするためにオンザフライで動的なネットワークアドレス変換(NAT)を行うiptablesの概念である。<br>
<br>
まず、WireGuardサーバのパブリックネットワークインターフェースを探す。<br>
<br>
パブリックインターフェースは、このコマンド出力の"dev"の後に続く文字列である。<br>
以下の例では、eth0というインターフェイスが表示される。<br>
ip route list default
# 出力例
default via 203.0.113.1 dev eth0 proto static
<br>
ファイアウォールルールをWireGuardサーバに追加するため、/etc/wireguard/wg0.confファイルの最下行に、以下に示す設定を追記する。<br>
sudo vi /etc/wireguard/wg0.conf
# /etc/wireguard/wg0.confファイル
# ...略
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
<br>
PostUpの行は、WireGuardサーバが仮想VPNトンネルを開始するときに実行される。<br>
上記の例では、3つのufwルールとiptablesルールが追加される。<br>
<br>
* <code>ufw route allow in on wg0 out on eth0</code>
*: このルールは、wg0 VPNインターフェースから入ってくるIPv4とIPv6のトラフィックをサーバのeth0ネットワークインターフェースに転送することを許可する。
*: 前のセクションで設定した<code>net.ipv4.ip_forward</code>と<code>net.ipv6.conf.all.forwarding sysctl</code>の値と連動する。
*: <br>
* <code>iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE</code>
*: このルールは、マスカレードを設定して、wg0 VPNインターフェースに入力されるIPv4トラフィックを書き換えて、WireGuardサーバのパブリックIPv4アドレスから直接発信されているように見せかける。
*: <br>
* <code>ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE</code>
*: このルールは、マスカレードを設定して、wg0 VPNインタフェースから侵入してくるIPv6トラフィックを書き換えて、WireGuardサーバのパブリックIPv6アドレスから直接発信されているように見せかける。
<br>
PreDownルールは、WireGuardサーバが仮想VPNトンネルを停止するときに実行される。<br>
これらのルールは、PostUpルールの逆で、VPNが停止された時にVPNインターフェイスの転送ルールとマスカレードルールを元に戻す働きをする。<br>
<br>
どちらの場合も、VPNに適したIPv4ルールとIPv6ルールを含むか含まないか、設定を編集する。<br>
例えば、IPv4のみを使用しているのであれば、ip6tablesコマンドで行を除外することができる。<br>
逆に IPv6のみを使うのであれば、ip6tablesコマンドだけを含むように設定を編集する。<br>
<br>
ufwの行は、IPv4とIPv6のネットワークの組み合わせに関係なく存在する必要がある。<br>
<br>
WireGuardサーバのファイアウォール設定の最後は、WireGuard UDPポート自体とのトラフィックを許可することである。<br>
WireGuardサーバの/etc/wireguard/wg0.confファイルでポートを変更しなかった場合、開くポートは51820である。<br>
もし、別のポートを使用する場合は、必ずufwコマンドを実行して、該当ポートを置き換えること。<br>
<br>
また、SSHポートを開放すること。<br>
sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
<br>
<u>※注意</u><br>
<u>別のファイアウォールを使用している場合、または、UFWの設定をカスタマイズしている場合は、追加のファイアウォールルールを追加する必要がある場合がある。</u><br>
<u>例えば、ネットワークトラフィックの全てをVPN接続でトンネリングする場合、DNSリクエストにはポート53、HTTPとHTTPSトラフィックにはそれぞれ80と443のようなポートを許可する必要がある。</u><br>
<u>また、VPN経由で使用する他のプロトコルがある場合は、それらのルールも追加する必要がある。</u><br>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]]