Я использую VPS с сервисом OpenVPN. На этом же сервере я также настроил локальный socks-прокси (это Tor, но не думаю, что это имеет значение в данном случае).
Могу ли я каким-то образом направить свое VPN-подключение на этот прокси-сервер Socks, не меняя никаких настроек локального браузера/устройства?
Соединение, которое я хочу настроить, выглядит примерно так:
(my device) -> VPN tunnel -> (VPN server -> Tor SOCKS proxy) -> Tor network
(this connection is inside VPS)
Я вижу два варианта
1) Маршрутизация полностью происходит на сервере, прозрачно для клиента.
2) VPN продвигает параметры прокси-сервера Socks (так как он может продвигать маршруты, DNS-серверы и т. д.)
но я понятия не имею, как достичь ни того, ни другого.
Я часто использую OpenVPN для обхода блокировок и хочу использовать одну и ту же процедуру для подключения к сети Tor как с устройств Windows, так и с Android, не утруждая себя изменением настроек прокси-сервера, запуском локального Tor/orbot и т. д. В идеале я планирую запустить его вместе с обычным 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. Настройка клиента не требуется.