Wireguard は、クライアントからネットワーク上の他のサーバーにトラフィックをルーティングしません。

Wireguard は、クライアントからネットワーク上の他のサーバーにトラフィックをルーティングしません。

CentOSバージョン7.6があり、テストWireguard VPNサーバーがインストールされています。少なくとも文書によると、全体のインストールと構成は非常に簡単でした。だから私がしたことは、wireguard-tools、wireguard-dkms、linux-headersをインストールすることでした。

次のステップは、サーバーの秘密鍵と公開鍵を生成し、サーバー構成を次のように作成することです。

[Interface]
Address = 10.7.0.1/24
ListenPort = 34777
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=

[Peer]
PublicKey  = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.2/32

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.3/32

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.4/32

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.5/32

サーバー側では、ファイアウォールでポート34777 udpを開き、sysctl -w net.ipv4.ip_forwardを設定しました(配信を有効にする)。これは、クライアントからVPNサーバーサブネット上の他のサーバーにトラフィックを転送する必要があるためです。ここで、このサーバーのパブリックIPが11.11.11.11/23であるとします。

クライアント側では、構成は次のとおりです。

[Interface]
Address = 10.7.0.4/24
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.1/32,11.11.11.0/23 (for having route to 11.11.11.0/23 subnet) or 0.0.0.0/0
Endpoint = 11.11.11.11:34777

0.0.0.0/0は、すべてのトラフィックをVPNに転送することを意味します(必須ではありません)、分割トンネルになることができます....接続すると、サーバーにpingを送信できます。インターフェイスは次のとおりです。 10.7.0.1ですが、ネットワーク11.11.11.0/23では何もpingできません。ネットワーク11.11.11.0/23はパブリックネットワークなので、NATはありません。 CentOSでは、iptablesの代わりにFirewalldを使用することにも言及する価値があります。

トンネルインターフェイスの背後にある内部ネットワークを見ることができない理由と方法は何ですか?

写真の設定は次のとおりです。 ここに画像の説明を入力してください。

PS写真では、ホストAとWireguardサーバーの間に別のLinuxルーター(メインルーター)があるので、注意してください。

答え1

多くの試行錯誤とWireguard IRCチャンネルの人々とのブレインストーミングの終わりに、明らかにWireguardの背後にあるすべてのサーバーに対して10.7.0.0/24に静的パスを追加することを忘れていました。 pingはサーバーに送信されますが、サーバーがエコー応答を送信する場所がわからないため、返されません。

ip route add 10.7.0.0/24 via 11.11.11.11 dev eth0 (main device for communication)

私にとっては問題が解決しました;-)

答え2

私は同じ問題を経験しました。グラフの「Wireguard SRV」(= Centos8、iptables、およびfermを含む)サーバーはトラフィックをルーティングしませんでした。

質問:忘れましたsysctl -w net.ipv4.ip_forward=1
しかし、それが唯一の問題でもip route add ...解決策でもありません。

/etc/wireguard/wg0.confだから私は私のwireguard-config(あなたのアドレスに従って場所)に次の行を追加しました。

[Interface]
// ...
PreUp = iptables -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j SNAT --to-source 11.11.11.11 -t nat
PreDown = iptables -D POSTROUTING -s 10.7.0.0/24 -o eth0 -j SNAT --to-source 11.11.11.11 -t nat

答え3

wg0などのwg intf自体の転送を有効にする必要があります。

iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT

関連情報