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を使用しています。
トンネルインターフェースの背後にある内部ネットワークが表示されないのはなぜですか。
追伸写真では、ホストAとWireguardサーバーの間に別のLinuxルーター(メインルーター)があるので、それを覚えておいてください。
非常に多くの試行錯誤と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)
私にとって、問題は解決しました;-)
私は同じ問題に遭遇しました-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