Index
Инструкция по изолирующей маршрутизации трафика приложений гостеой операционной системы в VirtualBox через tor
Инструкция протестирована и работает с VirtualBox 5.1.8, хостовой операционке Debian 8, гостевыми операционками Linux Mint 18 и Windows XP.
Предполагается, что на хостовой машине уже установлены и запущены службы tor и privoxy.
I. Подготовка виртуальной машины.
1) Общие настройки VirtualBox:
Файл - Настройки - Сеть - Виртуальные сети хоста - Добавить новую виртуальную сеть хоста.
Создается виртуальная сеть vboxnet0. Смотрим детали этой виртуальной сети хоста, а конкретно ее IPv4 адрес, в данном случае это 192.168.56.1
После добавления новой виртуальной сети хоста создается новое сетевое подключение vboxnet0, которое отображается через гуй нетворк-менеджера. При этом адрес 192.168.56.1 успешно пингуется как с хостовой, так и из виртуальных машин (при их подключении через соответствующий адаптер хоста). При закрытии окна VirtualBox это соединение разрывается.
2) Настройки конкретной виртуальной машины.
МашинаНейм - Настроить - Сеть - Адаптер 1 - Тип подключения: Меняем NAT на Виртуальный адаптер хоста, Имя: vboxnet0.
После этих действий машина отключена от внешних интернетов.
II. Подготовка прокси-сервера privoxy.
Свежеустановленный privoxy ничего не слушает.
Чтобы privoxy слушал сеть виртуальной машины, в главном конфиге (расположенном по адресу /etc/privoxy/config) раскомментируем строку #listen-address 127.0.0.1:8118, заменив адрес локалхоста 127.0.0.1 на адрес сети vboxnet0, то есть должна получиться такая раскомментированная строка:
listen-address 192.168.56.1:8118
Теперь заставим privoxy пропускать весь свой трафик через tor путем раскомментирования строки
forward-socks5 / 127.0.0.1:9050 .
Перезапускаем privoxy командой sudo service privoxy restart. Готово! Теперь privoxy будет перенаправлять трафик через тор на интерфейс виртуальной машины.
III. Настройка приложений гостевой машины.
Теперь, если в гостевой машине выставим настройки прокси браузера 192.168.56.1:8118, то трафик браузера пойдет через тор.
Во всех иных случаях интернет будет не доступен. Гостевая машина полностью защищена от утечек, доступ к интернету будет возможен только через тор и только при указании прокси 192.168.56.1:8118
Сервис
https://diafygi.github.io/webrtc-ips/ не выявляет утечек публичного айпи через WebRTC и определяемт только локальный адрес:
Сервис
https://2ip.ru/privacy/ не выявляет утечки айпи через flash и WebRTC:
Утилита jnettop не выявляет постороннего трафика на интерфейсе enp3s0, только обращения к прокси-серверу хостовой машины:
"The Workstation is used to run all client applications (such as Tor Browser, XChat, etc.). Because the Workstation is on an isolated network without clearnet access, it is unaware of the clearnet IP, which is a big security gain. Client applications must be configured to use (the) SocksPort(s), otherwise they will be unable to connect.
DNS leaks clear are impossible, because the Workstation does not have a working system DNS resolver. The Workstation could install a system DNS resolver, but it also would have to be configured to use Tor's SocksPort.
IP leaks are also impossible. Client applications which suffer from proxy bypass bugs will be unable to connect. They can only connect through Tor's SocksPort. Client applications can also not leak the clearnet IP through the protocol (like BitTorrent), where the protocol leaks the clearnet IP somewhere."
https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/IsolatingProxy
IV. Как сломать изоляцию гостевой машины от внешних интернетов?
Для доступа приложений гостевой машины к клирнету нужно закомментровать строку
forward-socks5 / 127.0.0.1:9050 .
в конфиге privoxy на хостовой машине и перезапустить прокси-сервер, тогда трафик проложений, настроенных на работу c privoxy пойдет не через tor, а напрямую через клирнет. Так что будьте осторожны при настройке прокси-сервера.
V. Как устанавливать и обновлять пакеты в гостевой debian-based операционной системе, настроенной на работу через изолирующий прокси?
Нужно в папке /etc/apt/apt.conf.d/ создать пустой файл с именем proxy и вписать в него следующие строки:
Acquire::http::Proxy "http://192.168.56.1:8118";
Acquire::::Proxy "true";
После этого пакеты будут скачиваться через прокси-сервер privoxy, который пропускает трафик через tor.