iptables はトラフィックを wireguard に転送します。

iptables はトラフィックを wireguard に転送します。

次の設定を検討してください。固定IPでインターネットに接続されたVPSがあります。さらに、NATルーターの背後にあるホームネットワークに複数のホストがあります。私のホームネットワークはインターネットを使用し、192.168.1.0/24Host1ではVPS用Wireguard VPNを設定しました。このVPNでは、VPSはIPを使用し、192.168.10.1Host1はIPを使用します192.168.10.2。 VPSはホームネットワークのホストにpingを送ることができ、その逆も可能であり、正常に動作します。

次に、VPSからホームネットワークにアクセスしたいと思います。そのために、以下のようにVPSにルートを追加しました。

ip route add 192.168.1.0/24 via 192.168.10.2 dev wg0

VPSがホームネットワークの他のホストにアクセスできるというアイデアです。ただし、Host1でIP転送を有効にする必要があることがわかっているので、次のことを行います。

iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE

そして私もそれを整理しましたnet.ipv4.ip_forward = 1。これら2つの構成を使用すると、VPSがホームネットワーク上のすべてのホストをpingできます。しかし、ホームネットワークにWebサーバーがあり、VPSからサーバーに接続しようとすると、no route to hostWebサーバーにpingすることができますが、問題が発生します。tcpdumpホームネットワーク上のHost1で実行中ですが、エラーメッセージが表示されるため、ICMPadmin prohibited filterと比較してHTTPトラフィックが正しく配信されないようです。それでは、iptablesVPSのホームネットワークにあるWebサーバーにアクセスするにはどうすればよいですか? NATも追加する必要があるようですが、どうすればいいかわかりません。

答え1

追加内容を見逃したようです。キールーティングサーバーの WireGuard 構成エントリです。

サーバーのWireGuard層は、IPアドレスなど、一致するピアが何であるかを知る必要があります192.168.0.42。これを行うには、正しいエントリを持つピアがあることを確認してくださいAllowedIPs。ピアは定義され、次のエントリが必要です。

AllowedIPs = 192.168.10.2

一致しません192.168.0.42。 WireGuardインターフェイスを介して送信されたパケットは192.168.0.42破棄されます。

したがって、追加パスが追加されるたびに仕える人WireGuardインターフェイス(通常はAllowedIPs = 0.0.0/0/0クライアントとして使用されていない)を介して、アイテムの1つ(その1つ)をAllowedIPsそれに応じて変更する必要がある可能性があります。この場合、以下が必要です。

 AllowedIPs = 192.168.10.2, 192.168.1.0/24

これにより、宛先を正しい送信に関連付けて、そのピアから受信したパケットの受信を確認します。


iptables問題とは関係ないようです。

関連情報