web-dev-qa-db-ja.com

ワイヤーガードがクライアントからネットワーク上の他のサーバーにトラフィックをルーティングしない

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(必須ではない)に転送することを意味します。これはスプリットトンネルになる可能性があります。 10.7.0.1ですが、ネットワーク11.11.11.0/23からは何もpingできません。ネットワーク11.11.11.0/23はパブリックなので、NATはありません。また、CentOSではiptablesの代わりにfirewalldを使用しています。

トンネルインターフェースの背後にある内部ネットワークが表示されないのはなぜですか。

セットアップがどのように見えるかを示す画像: enter image description here

追伸写真では、ホストAとWireguardサーバーの間に別のLinuxルーター(メインルーター)があるので、それを覚えておいてください。

2
dovla091

非常に多くの試行錯誤とwireguard IRC= chanel guysのブレーンストーミングの後、どうやら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)

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

1
dovla091

私は同じ問題に遭遇しました-rhe図(= Centos8、iptablesとferm)で私のサーバー別名「Wireguard SRV」はトラフィックをルーティングしません。

問題:sysctl -w net.ipv4.ip_forward=1を忘れました。
しかし、それだけが問題ではありませんでした-ip route add ...は解決策ではありませんでした。

そこで、これらの行を私のWireguard-config(アドレスに応じて/etc/wireguard/wg0.confにあります)に追加しました。

[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

1
akop