同じサーバー上のSOCKSプロキシへのVPN接続のルーティング

同じサーバー上のSOCKSプロキシへのVPN接続のルーティング

私は OpenVPN サービスを備えた VPS を実行しています。同じサーバーにローカル socks プロキシも設定しました (Tor ですが、この場合はそれほど重要ではないと思います)。

ローカルブラウザ/デバイスの設定を変更せずに、VPN 接続をその SOCKS プロキシにルーティングすることはできますか?

設定したい接続は次のようになります

(my device) -> VPN tunnel -> (VPN server -> Tor SOCKS proxy) -> Tor network
                             (this connection is inside VPS)

2つの選択肢がある

1) ルーティングはサーバー上で完全に行われ、クライアントからは透過的である

2) VPN は SOCKS プロキシ オプションをプッシュします (ルート、DNS サーバーなどをプッシュできるため)

しかし、どちらもどうやって達成すればいいのか全く分かりません。

私はブロックを回避するために OpenVPN を頻繁に使用しており、プロキシ設定を変更したり、ローカルの Tor/Orbot を実行したりすることなく、Windows デバイスと Android デバイスの両方から Tor ネットワークに接続するために同じルーチンを使用したいと考えています。理想的には、すべてのトラフィックをインターネットにルーティングする通常の VPN 接続 (これはすでに設定されており、正常に動作しています) と一緒に別のポートで実行する予定です。

答え1

やっとできました。

まず、別のOpenVPNインスタンスを実行する必要があります。openvpn/server.confをコピーして変更します。

port [some free port]
server [another subnet, if your first instance was on 10.8.0.0, set it to 10.8.1.0] 255.255.255.0
push "dhcp-option DNS [we will use TOR DNS, so this will be TOR proxy IP, e.g. 10.8.1.1]"

別のキーペアを生成する必要があるかもしれません。

次にTORを透過プロキシモードで起動します(公式ドキュメントではこのモードは潜在的に安全ではないと記載されていることに注意してください。https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy詳細は以下を参照)。ゲートウェイとDNSサーバーとして機能します。torrcこの設定を追加してデフォルトファイルを変更します。

VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort [address in your subnet, e.g. 10.8.1.1]:9040 
DNSPort [same, 10.8.1.1]:53

最後に、すべてのサブネット要求をTORプロキシにルーティングします(DNSトラフィック用の特別な構成)

iptables -t nat -A PREROUTING -s [your subnet, e.g. 10.8.1.0/24] -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -s [your subnet, e.g. 10.8.1.0/24] -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040

ファイアウォールで内部 10.8.1.0 サブネット トラフィックを許可していることを確認してください。

別のポートに接続すると、TOR ネットワークから VPN 経由の通常のインターネット接続に切り替えることができます。クライアントの設定は必要ありません。

関連情報