Гид по технологиям

Как настроить TOR‑middlebox для маршрутизации всего трафика VirtualBox VM через сеть Tor

4 min read Сетевое администрирование Обновлено 12 Nov 2025
Tor middlebox для VirtualBox — весь трафик через Tor
Tor middlebox для VirtualBox — весь трафик через Tor

Введение

Этот пошаговый туториал объясняет, как создать прозрачный Tor‑gateway (middlebox) на машине под Linux (например, Ubuntu), чтобы одна или несколько VM в VirtualBox использовали Tor без изменения конфигурации гостевой ОС. Это полезно для быстрого изолирования VM и повышения анонимности сетевых соединений.

Важно: Tor не даёт абсолютной анонимности. Не отправляйте личные данные, которые могут идентифицировать вас. Тестируйте сервисы, чувствительные к латентности или UDP‑трафику — они могут не работать через Tor.

Что потребуется

  • Хост с Linux (в примере Ubuntu). Права root (sudo).
  • VirtualBox с рабочими виртуальными машинами.
  • Установленные пакеты: bridge-utils, dnsmasq, tor, iptables.
  • Базовые знания работы с сетью и iptables.

Краткое определение: transparent proxy — прокси, который перехватывает трафик на сетевом уровне и перенаправляет его на локальный порт (здесь — Tor TransPort).

Шаг 1 — Создайте мостовой интерфейс для VM на хосте

Установите утилиту для мостов и добавьте виртуальный интерфейс в сетевые настройки хоста.

# apt-get install bridge-utils

Добавьте в /etc/network/interfaces следующее (сохраните права и формат):

# VirtualBox NAT bridge
auto vnet0
iface vnet0 inet static  
 address 172.16.0.1  
 netmask 255.255.255.0  
 bridge_ports none  
 bridge_maxwait 0  
 bridge_fd 1
          
 up iptables -t nat -I POSTROUTING -s 172.16.0.0/24 -j MASQUERADE  
 down iptables -t nat -D POSTROUTING -s 172.16.0.0/24 -j MASQUERADE

Запустите интерфейс:

# ifup vnet0

Шаг 2 — Настройте DHCP и DNS для клиентов

Установите dnsmasq и укажите диапазон адресов для VM в подсети vnet0.

# apt-get install dnsmasq

Добавьте в /etc/dnsmasq.conf:

interface=vnet0
dhcp-range=172.16.0.2,172.16.0.254,1h

Запустите/перезапустите демона:

# /etc/init.d/dnsmasq restart

Шаг 3 — Установите и настройте Tor

Установите Tor стандартным способом для вашей системы. Затем отредактируйте /etc/tor/torrc и добавьте следующие строки (обеспечивают прозрачную проксификацию и локальный DNS):

VirtualAddrNetwork 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 172.16.0.1
DNSPort 53
DNSListenAddress 172.16.0.1

Перезапустите Tor:

#/etc/init.d/tor restart

Создайте скрипт middlebox.sh на хосте и сделайте его исполняемым. В примере скрипт отфильтровывает локальные сети и перенаправляет DNS/TCP через Tor:

#!/bin/sh  
  
# destinations you don't want routed through Tor  
NON_TOR="192.168.1.0/24"  
  
# Tor's TransPort  
TRANS_PORT="9040"  
  
# your internal interface  
INT_IF="vnet0"  
  
iptables -F  
iptables -t nat -F  
  
for NET in $NON_TOR; do  
 iptables -t nat -A PREROUTING -i $INT_IF -d $NET -j RETURN  
done  
iptables -t nat -A PREROUTING -i $INT_IF -p udp --dport 53 -j REDIRECT --to-ports 53  
iptables -t nat -A PREROUTING -i $INT_IF -p tcp --syn -j REDIRECT --to-ports $TRANS_PORT

Запустите скрипт:

#./middlebox.sh

Важно: при изменении правил iptables убедитесь, что у вас есть консольный доступ к хосту для восстановления соединения в случае ошибки.

Шаг 4 — Настройте виртуальную машину в VirtualBox

  1. Откройте VirtualBox и запустите VM.
  2. В интерфейсе VM: Устройства > Сетевой адаптер (Devices > Network Adapter). Отключите все сетевые адаптеры, кроме первого.
  3. Для адаптера 1 выберите «Attached to: Bridged Adapter», имя интерфейса — vnet0.
  4. Убедитесь, что гостевая ОС получает IP через DHCP (172.16.0.N), шлюз и DNS — 172.16.0.1. При необходимости перезапустите гостя.

После этого все DNS‑запросы и TCP‑соединения VM должны идти через Tor.

Проверка и тестовые случаи

  • На VM выполните: curl –interface https://check.torproject.org/ чтобы проверить использование Tor (в некоторых случаях веб‑ги провайдер блокирует).
  • Проверьте таблицу iptables на хосте: iptables -t nat -L -n -v
  • Проверьте, что DNS‑запросы приходят на 172.16.0.1 и перенаправляются локально.

Критерии приёмки:

  • VM получает IP 172.16.0.x по DHCP.
  • iptables содержит правила PREROUTING, перенаправляющие UDP 53 и TCP на порт 9040.
  • Трафик гостя виден в Tor (проверяем внешним сервисом или с помощью torify/torsocks).

Когда это не подходит (контрпримеры)

  • Приложения, требующие исходных UDP‑портов (VoIP, игры), часто не работают через Tor.
  • Высокая пропускная способность и низкая задержка не гарантируются — Tor добавляет задержки.
  • Если вы запускаете многопользовательскую сеть с разными требованиями к маршрутизации, может потребоваться более гибкое решение (VPN + Tor или отдельные VLAN).

Альтернативные подходы

  • Настроить Tor в каждой гостевой ОС (torsocks/tor service).
  • Использовать отдельный физический маршрутизатор/Gateway с Tor (например, OpenWrt + Tor).
  • Комбинировать VPN и Tor: VPN→Tor или Tor→VPN (понимайте различия по безопасности и потенциальной деанонимизации).

Чеклист для администратора

  • Сделан бэкап /etc/network/interfaces и /etc/tor/torrc.
  • Проверен доступ к хосту в случае потери сети.
  • Скрипт middlebox.sh помечен как исполняемый и добавлен в автозапуск при необходимости.
  • Ограничены сети в NON_TOR и доп. правила для управления доступом хоста.

Безопасность и конфиденциальность

  • Tor скрывает сетевую маршрутизацию, но не защищает данные на прикладном уровне. Используйте HTTPS/TLS для чувствительного трафика.
  • Не используйте Tor для P2P/BitTorrent — это нарушает политику сети Tor и выявляет вас.
  • Логи Tor и системные логи на хосте и VM могут содержать данные, поэтому настройте ротацию и минимизацию логов.

Краткие рекомендации по отладке

  • Если VM не получает IP — проверьте, что dnsmasq слушает на vnet0 и что vnet0 поднят.
  • Если некоторые соединения «утекают», временно включите логирование iptables для диагностики.
  • Для тестов используйте изолированную VM, чтобы не влиять на основную систему.

Сводка

Вы настроили мостовой интерфейс vnet0, DHCP/DNS через dnsmasq, Tor с TransPort/DNSPort и правила iptables, перенаправляющие трафик VM через Tor. Это даёт простой способ запускать одну или несколько VM с выходом только через Tor.

Важно: тестируйте сервисы, внимательно относитесь к логам и ограничениям Tor — это средство повышения приватности, но не универсальное решение безопасности.

Дополнительно: если нужно, могу прислать пример systemd‑юнита для автозапуска middlebox.sh, шаблоны правил iptables с сохранением при перезагрузке или редактируемый файл конфигурации для множественных VM.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство