OpenVPNサーバーから同じデバイス上で実行されているOpenVPNクライアントにトラフィックをリダイレクトします。

OpenVPNサーバーから同じデバイス上で実行されているOpenVPNクライアントにトラフィックをリダイレクトします。

ホームネットワークの外にいるときにPiholeインストールを使用するために接続するために使用するOpenVPNサーバーを実行するRaspberry Piサーバーがあります。これは問題なく動作します。

                     |          HOME NETWORK/Pihole  |
(Remote client)     --   (Open VPN Server )        ---         Internet

OpenVPNクライアントを介してPiデバイスから接続できるリモートVPNサービスもあります。私も正常にテストしました。

                    |          HOME NETWORK/Pihole  |
                           (Open VPN Client )       -            VPN provider

最終インストールが次のように見えるように、これら2つのサービスを組み合わせたいと思います。

                 |          HOME NETWORK /Pihole           |
(Remote client) -- (Open VPN Server) -- (Open VPN Client) --- Remote VPN service

質問に記載されているものと同様の解決策を試しました(アクティブなOpenVPNクライアントを備えたWireguardサーバー)、しかし結果は似ています。 Open VPNクライアント(tun1)が有効になっていると、サーバー(tun0)にアクセスできなくなります。

両方のインターフェイス tun[01] が動作している場合、ルーティングテーブルの外観は次のとおりです。

0.0.0.0/1 via 10.50.11.5 dev tun1
default via 192.168.1.1 dev wlan0 src 192.168.1.164 metric 303
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
10.50.11.1 via 10.50.11.5 dev tun1
10.50.11.5 dev tun1 proto kernel scope link src 10.50.11.6
128.0.0.0/1 via 10.50.11.5 dev tun1
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.164 metric 303
199.116.115.135 via 192.168.1.1 dev wlan0

これは接続しようとしたときのopenvpnサーバーの現在の出力です。

pi@raspberrypi:/etc/openvpn $ sudo more openvpn-status.log
OpenVPN CLIENT LIST
Updated,Sat Jun 29 23:30:41 2019
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
UNDEF,x.x.x.x:39159,860,442,Sat Jun 29 23:30:02 2019

エラーログは次のとおりです。

Sat Jun 29 23:34:47 2019 x.x.x.x:28162 TLS Error: incoming packet authentication failed from [AF_INET]172.58.87.22:28162
Sat Jun 29 23:34:48 2019 x.x.x.x:28162 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #1 / time = (1561869285) Sat Jun 29 23:34:45 2019 ] -- see the man page entry for --no-replay and --replay-window for more
info or silence this warning with --mute-replay-warnings
Sat Jun 29 23:34:48 2019 x.x.x.x:28162 TLS Error: incoming packet authentication failed from [AF_INET]x.x.x.x:28162

明らかにクライアントの接続が失われましたか?

私も解決策を試しましたOpenVPN クライアントとサーバーは同じコンピューター上にあります。クライアントが接続すると、サーバーは接続を許可しません。この質問を投稿した後、これを知りましたが、役に立ちませんでした。これは私の問題と直接関連しているようですが、それでも機能しません。

答え1

iptables -I POSTROUTING -t nat -s 10.8.0.0/24 -o tun1 -j MASQUERADE

openvpnクライアント接続(tun1)を介してopenvpnサーバー(10.8.0.0/24)からのトラフィックをルーティングするには、この規則が必要です。

ホームネットワークの外部からopenvpnサーバーにアクセスするには、次の規則を使用する必要があります。これ答え:

ip rule add from 192.168.1.164 lookup 10           # Pi server
ip route add default via 192.168.1.1 table 10    # LAN router

どこ192.168.1.164あなたのPi-IPです。
VPNトラフィックのみを許可する代替方法は次のとおりです。

iptables -A PREROUTING -t mangle -p udp --dport 1149 -j MARK --set-mark 1
ip rule add fwmark 1 table 10
ip route add default via 192.168.1.1 dev wlan0 dev table 10

関連情報