VPNサーバーからVPNクライアントへのトラフィックのリダイレクト

VPNサーバーからVPNクライアントへのトラフィックのリダイレクト

私は常に携帯電話からホームサーバーを介してトラフィックをルーティングし、モバイルトラフィックをフィルタリングできるように自宅にRaspberryPi、PiHole、およびWireguard VPNサーバーを設定しました。出力にVPN(具体的にはNordVPN)を入れたいのですが、NordVPN接続を開始したため、電話は内部ネットワーク(Sshクライアント経由)またはインターネットにアクセスできません。

以下はVPNが有効になっているルーティングテーブルです(wg0は私の携帯電話とラズベリーパイの間のワイヤガードインターフェイスであり、tun0はラズベリーパイからNordVPNへのVPNです。*** ipはサーバーに接続したい特定のIPです)。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.1        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
10.6.0.0        0.0.0.0         255.255.255.0   U     0      0        0 wg0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
***.***.***.*** 192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       10.8.0.1        128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0

自分の電話から内部ネットワークにSSHを接続し、NordVPNを介してインターネットにトンネリングするにはどうすればよいですか?

その点をはっきりと明らかにしたことを願っています。本当にありがとうございました!

ベストアンサー1

最初の問題は、OpenVPNクライアントが設定したデフォルトパスがハンドシェイク応答をtun0インターフェイスにルーティングすることです。

この問題を解決するには:

#adds the default route to respond via the eth0
ip route add default via 192.168.1.1 dev eth0 table 1
#adds the default route to the local network
ip route add 192.168.1.0/24 dev eth0 table 1
#adds the response route
ip route add 10.6.0.0/24 dev wg0 table 1
#adds the policy so that all the traffic that comes through eth0 goes back by eth0
ip rule add from 192.168.1.0/24 table 1

すべての着信はeth0そのルールによってブロックされ、表1の内容を使用してルーティングされます。これは、すべてのトラフィックを同じインターフェイスに再ルーティングする3つのルールです。

これで正常にハンドシェイクを完了し、ローカルネットワークにアクセスできますが、まだインターネットにアクセスできません。これが2番目の問題です。デフォルトでは、wireguardクライアント(または少なくともpiVPNがインストールされている設定)は、wireguardサブネットからインターフェイスへのNATトラフィックにiptables natルールを設定しますeth0。ただし、新しいルーティングテーブルを使用すると、トラフィックがインターフェイスに直接移動するため、トラフィックは記録tun0されず、10.6.0.2元のIP(またはその他)に送信されます。したがって、別のiptables natルールを追加する必要があります。

iptables -t nat -A POSTROUTING -o tun0 -s 10.6.0.0/24 -j MASQUERADE

これが他の誰かに役立つことを願っています。週末を通してそれを調べるのにかかりました。私は最初から始めなければなりませんでした!

おすすめ記事