Как направить весь tcp-трафик с гостевой Windows системы через Tor

в 15:56, , рубрики: openvpn, Tor, tun2sock, анонимность в сети, информационная безопасность, Песочница, сетевое администрирование, метки: , , , ,

Уже давно мечтаю об ОС с полностью анонимным трафиком. До недавнего времени я использовал следующий способ.
Виртуальная машина, на которую ставится анонимизируемая система, связана через локальную сеть только с хостовой системой (режим Host-only виртуального сетевого адаптера), на которой стоит Tor. Внутри гостевой ОС у приложений, которым нужен интернет, прописывался адрес прокси-сервера Polipo, установленного вместе с Tor на хостовой системе. Таким образом, выход в интернет с гостевой системы возможен только через Tor. Однако у этого способа есть недостаток. Для каждого приложения необходимо прописывать прокси, к тому же не все приложения имеют такие настойки. Прибегать к использованию программ-проксификаторов не хотелось, т.к. такое решение мне показалось не совсем «естественным». Ниже я расскажу о более «естественном» способе ТОРификации.

После напряженного гугления наткнулся на софтину tun2socks. Используя устройство TUN/TAP (виртуальный сетевой адаптер), она направляет весь tcp и udp трафик через SOCKS-прокси. Для системы это выглядит как Ethernet-адаптер, подключенный к роутеру, раздающему интернет. Вполне «естественно», не правда ли?
Нам понадобятся:

Итак, приступим к настройке:

  1. Устанавливаем Windows на вашу любимую виртуальную машину. В настройках сетевого адаптера виртуальной машины выставляем режим Host-only (это означает, что из гостевой ОС по сети будет доступна только хостовая ОС).
  2. Назначаем фиксированные IP-адреса для адаптеров в хостовой и гостевой системах, например 192.168.220.1 и 192.168.220.2 соответственно.
  3. Устанавливаем на хостовую ОС Vidalia Bundle. Затем открываем файл torrc (%USERPROFILE%AppDataLocalVidalia) и дописываем в конец следующие строки:

    SocksListenAddress 192.168.220.1 # Заставляем тор слушать порт 9050 на адресе 192.168.220.1
    DNSListenAddress 192.168.220.1 # Вешаем встроенный в Tor DNS-сервер на указанный адрес
    DNSPort 53 # Указываем на каком порту будет висеть DNS-сервер (почему-то без этой настройки тор выдает ошибку)

    Запускаем Tor.

  4. На гостевой системе устанавливаем OpenVPN. После этого в сетевых подключениях должен появится TUN/TAP сетевой адаптер со статусом «сетевой кабель не подключен». Зададим ему какое-нибудь имя покороче, например tor.
  5. Распаковываем куда-нибудь badvpn. В папке bin находим файл badvpn-tun2sock.exe и запускаем его со следующими параметрами:

    --tundev <tun_spec> --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 192.168.220.1:9050

    Здесь:

    • <tun_spec> это строка tap0901:tor:10.0.0.1:10.0.0.0:255.255.255.0, где tor – название нашего TUN/TAP адаптера, 10.0.0.1 – адрес адаптера, 10.0.0.0 и 255.255.255.0 – адрес и маска подсети.
    • 10.0.0.2 – адрес виртуального роутера, который выступает в качестве интернет шлюза.
    • 255.255.255.0 – маска подсети.
    • 192.168.220.1:9050 адрес прокси, установленного на хостовой ОС. В нашем случае роль прокси выполняет Tor.

    Поле запуска tun2sock, статус TUN/TAP адаптера должен сменится на «Подключено».
    Теперь в свойствах этого адаптера необходимо настроить шлюз и DNS-сервер:
    В роли DNS-сервера у нас выступает DNS, встроенный в Tor (192.168.220.1:53), а в роли шлюза, как уже было сказано выше, виртуальный роутер (10.0.0.2).

  6. Для того чтобы заработали скрытые сервисы тор, в torrc необходимо добавить следующие строки:

    AutomapHostsOnResolve 1
    AutomapHostsSuffixes .onion
    VirtualAddrNetwork 10.192.0.0/10

Автор tun2socks пишет о том, что эта программа поддерживает также перенаправление udp, однако его не поддерживает тор. Подозреваю, что именно из-за этого мне не удалось воспользоваться WebICQ.
На этом все. Анонимного вам интернета.

Автор: Goshik

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js