Торификация виртуальной машины
Чтобы торифицировать виртуалку, необходимо для начала выбрать подсеть, в которой будет жить гейтвей и виртуалки. В нашем случае это будет 10.0.0.0/24. Гейтвей будет 10.0.0.1. В /etc/torrc добавляем следующее:
AutomapHostsOnResolve 1 TransPort 10.0.0.1:9040 DNSPort 10.0.0.1:53
Для примера рассмотрим конфигурирование виртуалок на основе VirtualBox. В других системах виртуализации будут небольшие различия. В /etc/vbox/networks.conf разрешаем VirtualBox создание виртуальной сети в нашем диапазоне:
* 10.0.0.0/24
После чего VirtualBox следует перезапустить. В гуйне VirtualBox идём в File -> Tools -> Network Manager, где добавляем новую Host-only Network с нашим диапазоном, гейтвеем и DHCP-сервером раздающим адреса начиная с 2; интерфейс предложит название сети - vboxnet0 - его и оставим:
- Adapter:
- [x] Configure adapter manually
- IPv4 Address: 10.0.0.1
- IPv4 Network Mask: 255.255.255.0
- IPv6 Address: пофиг
- IPv6 Prefix Length: пофиг
- DHCP Server:
- Server Address: 10.0.0.1
- Server Mask: 255.255.255.0
- Lower Address Bound: 10.0.0.2
- Upper Address Bound: 10.0.0.254
Эту Host-only Network выбираем как бекенд единственного сетевого интерфейса в настройках конкретной виртуалки.
Далее необходимо завернуть весь трафик приходящий в хост-систему по интерфейсу vboxnet0 в Tor (а точнее, все доступы к DNS и весь TCP-трафик) и запретить всё, что завернуть мы не можем. Делаем это посредством iptables: Заворот:
iptables -t nat -I POSTROUTING -s 10.0.0.0/24 -j MASQUERADE iptables -t nat -A PREROUTING -i vboxnet0 -p udp --dport 53 -j REDIRECT --to-ports 53 iptables -t nat -A PREROUTING -i vboxnet0 -p tcp --syn -j REDIRECT --to-ports 9040
Фаервол:
iptables -A INPUT -i vboxnet0 -p udp --dport 53 -j ACCEPT iptables -A INPUT -i vboxnet0 -p tcp -j ACCEPT iptables -A INPUT -i vboxnet0 -j DROP iptables -A FORWARD -i vboxnet0 -j DROP
Конфигурировать IPv6 лень, поэтому просто запретим его:
ip6tables -t raw -A PREROUTING -i vboxnet0 -j DROP
Всё это добро исполняем, а так же пихаем куда там в вашей системе модно для автозапуска; в Debian это /etc/rc.local
После перезапуска Tor наш сетап готов к использованию. Для проверки того, что соединение и правда идёт не через хостовый адрес, запускаем в госте:
curl ifconfig.me
и сравниваем полученный IP-адрес с хостовым.