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を使用してブロッキングをバイパスし、同じルーチンを使用して、WindowsとAndroidデバイスの両方から、プロキシ設定を変更せずに、ローカルのtor/orbotを実行して、Torネットワークに接続したいと考えています。理想的には、すべてのトラフィックをインターネットにルーティングする通常のVPN接続と一緒に実行することを計画しています(これはすでにセットアップされて正常に機能しています)が、別のポートで実行します。
ついにそれに到達した。
まず、別の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を介した通常のインターネット接続に切り替えることができます。クライアント構成は必要ありません。