Wireguard の設定でサーバーに何か不足しているもの

Wireguard の設定でサーバーに何か不足しているもの

Wireguard VPN テストを動作させようとしていますが、行き詰まっています。次に何をチェックすればよいか、アドバイスをいただければ幸いです。

サーバーは 3.13.0-141 カーネルの Ubuntu を実行する DO ドロップレットで、クライアントは 4.4.0-112 カーネルの Mint を実行するデスクトップ KVM ゲストで、NAT ルーターの背後でブリッジ ネットワーク接続されています。クライアントはサーバーに ping できますが、他のパケット タイプは失われているようです。ただし、tcpdump ではサーバーの wg0 に大量のパケットが到着していることが示されています。ip_forward と proxy_arp は、提案どおりサーバーで有効になっています。この投稿で. サーバー上の ufw はトンネル ポートを開いています。サーバーは他のポートでも openvpn を実行しています。

これらの設定ファイルで wg-quick を使用します。

クライアント:

[Interface]
Address = 10.0.0.200
DNS = 8.8.8.8
PrivateKey = UJeiJJvi5NdqiBrgBfsim+ZS4c69M5EP5fUNNIXMy08=
[Peer]
PublicKey = MreTtFUDB5bQfkegxX2cvz3BLC9sybK4y0loTKhVunU=
AllowedIPs = 0.0.0.0/0
Endpoint = 159.203.227.235:51820

sudo wg-quick up ./wg0.conf 
[sudo] password for jim: 
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip address add 10.0.0.200 dev wg0
[#] ip link set mtu 1420 dev wg0
[#] ip link set wg0 up
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0

サーバ:

[Interface]
Address = 10.0.0.201
SaveConfig = true
ListenPort = 51820
PrivateKey = 6GBAE7bFjrOfEp1uWiPvoW+5CyfpjsBmK0/vCIWbGl0=
[Peer]
PublicKey = furwAmh4vbKrLAGZG/QDIUT2a1GLi0WxDY6YdQKzIHE=
AllowedIPs = 10.0.0.200/32

sudo wg-quick up ./wg0.conf
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip link set mtu 1420 dev wg0
[#] ip link set wg0 up
[#] ip route add 10.0.0.200/32 dev wg0

ip route show table all

default via 159.203.224.1 dev eth0 
10.0.0.200 dev wg0  scope link 
10.12.0.0/16 dev eth0  proto kernel  scope link  src 10.12.0.5 
159.203.224.0/20 dev eth0  proto kernel  scope link  src 159.203.227.235 
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.0.1 
broadcast 10.12.0.0 dev eth0  table local  proto kernel  scope link  src 10.12.0.5 
local 10.12.0.5 dev eth0  table local  proto kernel  scope host  src 10.12.0.5 
broadcast 10.12.255.255 dev eth0  table local  proto kernel  scope link  src 10.12.0.5 
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
broadcast 159.203.224.0 dev eth0  table local  proto kernel  scope link  src 159.203.227.235 
local 159.203.227.235 dev eth0  table local  proto kernel  scope host  src 159.203.227.235 
broadcast 159.203.239.255 dev eth0  table local  proto kernel  scope link  src 159.203.227.235 
broadcast 172.17.0.0 dev docker0  table local  proto kernel  scope link  src 172.17.0.1 
local 172.17.0.1 dev docker0  table local  proto kernel  scope host  src 172.17.0.1 
broadcast 172.17.255.255 dev docker0  table local  proto kernel  scope link  src 172.17.0.1 
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev veth215195c  proto kernel  metric 256 
fe80::/64 dev docker0  proto kernel  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101
local ::1 dev lo  table local  proto none  metric 0 
local fe80::42:2fff:fec9:400 dev lo  table local  proto none  metric 0 
local fe80::601:d8ff:febf:4701 dev lo  table local  proto none  metric 0 
local fe80::84ce:13ff:feaf:f628 dev lo  table local  proto none  metric 0 
ff00::/8 dev eth0  table local  metric 256 
ff00::/8 dev veth215195c  table local  metric 256 
ff00::/8 dev docker0  table local  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101

答え1

私はこれを非常に便利な助けを借りて動作させましたブログ投稿 また、クライアントの DNS トラフィックがトンネル外に漏れるのを防ぐために DNS サーバーを設定する方法についても説明します。

主な問題は、サーバー上のフィルター/NAT 設定が不完全だったことです。この投稿では、必要な iptables コマンドについて説明しています。ufw は既に ssh などの単純なものに使用されていたため、すべてを 1 つの形式に変換したくなかったので、それらを組み合わせました。これは、Ubuntu 16.04 を実行する新しいドロップレットでは機能しました。また、元の Ubuntu 14.04 システムでもテストしましたが、追加の ufw ルールを追加する必要がありました。

ufw ルートは 10.200.200.2 から wg0 への入力と eth0 への出力を許可します。

どうやら、何らかの理由で入力と転送のデフォルト ポリシーが DROP に設定されていたためと思われます。

関連情報