アクティブなOpenVPNクライアントを備えたWireguardサーバー

アクティブなOpenVPNクライアントを備えたWireguardサーバー

アクティブなOpenVPNクライアントを搭載したコンピュータでWireguardサーバーを実行する必要があります。 Wireguard サーバーに接続されたクライアントは、NAT 経由で「tun0」の OpenVPN クライアントに接続し、そのインターフェイスを介してインターネットにアクセスします。

以前は、独自のtun / tapインターフェース(Shadowsocksなど)を持たない他のVPNソリューションを使用して同様の設定を作成する必要がある場合、iptables 'fwmark'を使用してton0インターフェースを介してルーティングされないパケットを表示していました。 VPNを開くために作成されました。

ローカルIP 10.3.0.11(ポート2000のVPNサーバー)を使用するサーバーで次のコマンドを順番に実行すると、VPNサーバーに接続してアクティブなOpenVPNクライアントでインターネットを検索できます。

ip route add default via 10.3.0.11 dev eth0 table 7
ip rule add fwmark 0x55 priority 1000 table 7
ip route flush cache
iptables -t mangle -A OUTPUT -p udp --sport 2000 -j MARK --set-mark 0x55
iptables -I INPUT -p udp -m udp --dport 2000 -j ACCEPT

ただし、Wireguardは独自のインターフェース(wg0)を生成するため、このソリューションは機能しません。 OpenVPNクライアントが接続を確立すると、Wireguardサーバーにアクセスできなくなります。

UDPポート3333で実行されているWireguardサーバーへの接続をブロックするファイアウォールがないことを確認しましたが、OpenVPN接続が有効になっていない場合でも接続は正常に機能します。

OpenVPN が接続される前の「route -n」の出力です。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
10.33.0.0       0.0.0.0         255.255.255.0   U     0      0        0 wg0
169.254.0.0     0.0.0.0         255.255.0.0     U     1040   0        0 eth0

OpenVPN 接続後の「route -n」の出力です。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
10.8.8.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
10.33.0.0       0.0.0.0         255.255.255.0   U     0      0        0 wg0
128.0.0.0       10.8.8.1        128.0.0.0       UG    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1040   0        0 eth0
<OVPN Server>   10.0.0.1        255.255.255.255 UGH   0      0        0 eth0

Wireguardの設定ファイルです。

[Interface]
Address = 10.33.0.1/24
Address = fd33:3300::1/64
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o tun0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o tun0 -j MASQUERADE
ListenPort = 3333
FwMark = 0x55
PrivateKey = <private key>

[Peer]
PublicKey = <public key>
AllowedIPs = 10.33.0.11/32, fd33:3300::11/128

サーバー構成をどのように変更しますか?

  • クライアントはUDPポート3333を介してWireguardサーバーに接続できます。
  • クライアントは、すべてのインターネットトラフィックをtun0(OpenVPNで生成)を介してルーティングするWireguardサーバーを介してインターネットにアクセスできます。

関連情報