Решил тут в целях саморазвития поразбираться как настраивать связку Tor и VirtualBox.
Создаю виртуальную машину, выбираю в качестве сетевого подключения «Виртуальный адаптер хоста». Имя этот адаптер имеет vboxnet1, IP-адрес 192.168.57.1. Гость получает IP от встроенного в VirtualBox DHCP-сервера.
В sysctl на хосте задаю такие опции:
net.ipv4.ip_forward=1
net.ipv4.conf.all.route_localnet=1
net.ipv6.conf.default.forwarding=0
net.ipv6.conf.all.forwarding=0
iptables на хосте настраиваю так:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -I INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -I INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -t nat -A PREROUTING -i vboxnet1 -p tcp --dport 9050 -j DNAT --to-destination 127.0.0.1:9050
iptables -A INPUT -i vboxnet1 -d 127.0.0.1 -p tcp --dport 9050 -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o vboxnet1 -j DROP
iptables -I OUTPUT -o vboxnet1 -p tcp --sport 9050 -j ACCEPT
iptables -I OUTPUT -o vboxnet1 -p icmp --icmp-type echo-reply -j ACCEPT
iptables -I OUTPUT -o vboxnet1 -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -I OUTPUT -o vboxnet1 -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -I OUTPUT -o vboxnet1 -p icmp --icmp-type echo-request -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
Верно ли, что теперь виртуальная машина может только пинговать 192.168.57.1 и подключаться по TCP к 192.168.57.1:9050 (что в реальности будет перенаправлено на хосте на 127.0.0.1:9050)?
Верно ли, что приложения на хосте могут только пинговать виртуальную машину или являться сервером по адресу 127.0.0.1:9050 и никак больше по сети взаимодействовать с ВМ не могут?
Если не верно, то как сделать эти утверждения истинными?