Search
Write a publication
Pull to refresh

Создание виртуальной сетки со шлюзом через Tor

По работе столкнулся с необходимостью анонимизации всего сетевого трафика виртуальных машин, развернутых на рабочем компьютере. Для решения задачи было решено настроить шлюз на отдельной виртуальной машине с установкой Tor и dhcp сервера и заворачиванием всего трафика через Tor средствами iptables.

Поднимаем чистую виртуалку с Debian на борту, создаём виртуальный интерфейс в режиме NAT и отключаем DHCP средствами среды виртуализации.
Задаем статические ip-адреса и в качестве шлюза прописываем ip-адрес шлюза виртуальной сети в файле /etc/network/interfaces:
allow-hotplug eth0
iface eth0 inet static
  address 192.168.227.3
  netmask 255.255.255.0
  gateway 192.168.227.2 # ip шлюза вирутальной сети

Устанавливаем пакеты tor, isc-dhcp-server, iptables-persistent:
aptitude install tor isc-dhcp-server iptables-persistent

Настраиваем tor. В конец файла /etc/tor/torrc дописываем строки:
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 0.0.0.0:9040
DNSPort 0.0.0.0:53
StrictExitNodes 1
#ExitNodes {us}
ExcludeNodes {pl},{no}

Настраиваем iptables в файле /etc/iptables/rules.v4:
# iptables rules
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A OUTPUT -p icmp -j REJECT --reject-with icmp-port-unreachable
COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-A PREROUTING -p udp -m iprange --src-range 192.168.227.4-192.168.227.254 --dport 53 -j REDIRECT --to-port 53
-A PREROUTING -p tcp -m iprange --src-range 192.168.227.4-192.168.227.254 -j REDIRECT --to-ports 9040
-A PREROUTING -p udp -m iprange --src-range 192.168.227.4-192.168.227.254 -j REDIRECT --to-ports 9040

# необходимый uid можно выяснить так: getent passwd | grep Debian-tor
-A OUTPUT -d 10.192.0.0/10 -p tcp -j REDIRECT --to-ports 9040
-A OUTPUT -p udp -m owner ! --uid-owner 121 -m udp ! --dport 53 -j REDIRECT --to-ports 9040
-A OUTPUT -p tcp -m owner ! --uid-owner 121 -j REDIRECT --to-ports 9040
COMMIT

Настраиваем dhcp сервер в файле /etc/dhcp/dhcpd.conf:
# comment default option domain-names, domain-name-servers
subnet 192.168.227.0 netmask 255.255.255.0 {
  range 192.168.227.5 192.168.227.200;
  option routers 192.168.227.3;
  option domain-name-servers 192.168.227.3;
}

Всё, теперь все виртуалки, трафик для которых должен быть анонимизирован, настраиваются на работу в пределах данной виртуальной сети и получают настройки от нашего DHCP сервера.
Необходимо помнить, что поднятый Tor сервер является точкой выхода и через вас будет проходить расшифрованный трафик других пользователей сети Tor.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.