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

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

5 min read Сеть Обновлено 07 Nov 2025
Маршрутизация VirtualBox через Tor
Маршрутизация VirtualBox через Tor

Цель и краткое описание

Этот гайд позволяет запустить на хосте Tor в режиме прозрачного проксирования (transparent proxy) и заставить виртуальную машину в VirtualBox использовать этот хост как шлюз — при этом весь её трафик проходит через сеть Tor. Такой подход упрощает централизованное управление трафиком нескольких VMs и снижает риск утечек при некорректной конфигурации внутри гостевой ОС.

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

Требования и предпосылки

  • Хост с Linux (в примере — Ubuntu).
  • Установленный VirtualBox.
  • Права root для установки пакетов и выполнения сетевых команд.
  • Понимание базовых сетевых понятий: IP, netmask, DHCP, NAT, iptables.

Основные шаги

  • Создать мостовой интерфейс на хосте и назначить ему IP.
  • Настроить dnsmasq для выдачи DHCP/DNS адресов гостям.
  • Установить и настроить Tor (transparent proxy и DNS через Tor).
  • Добавить iptables‑правила, которые перенаправляют трафик VM в Tor.
  • Настроить сеть VirtualBox: подключить VM к bridge vnet0.

Важно: тестируйте конфигурацию на изолированной виртуальной машине перед использованием в продакшене.

Подробная инструкция

Шаг 1 — Добавление мостового интерфейса на хосте

Установите утилиты для работы с мостами:

# 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:

# 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 и добавьте следующие параметры:

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 на хосте и сделайте его исполняемым. Пример:

#!/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

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

  1. Откройте VirtualBox и запустите VM.
  2. Перейдите Devices > Network Adapter. Отключите все сетевые адаптеры, кроме Adapter 1.
  3. Настройте Adapter 1: Attached to: Bridged Adapter; Name: vnet0; нажмите OK.
  4. Убедитесь, что VM получает IP по DHCP и имеет адрес в сети 172.16.0.0/24, шлюз и DNS 172.16.0.1.

После загрузки гостя проверьте внешний IP и DNS:

  • Проверка IP: используйте curl/certainty сервисы или посещение сайтов проверки IP.
  • Проверка DNS: убедитесь, что DNS разрешение проходит через Tor (на хосте DNSPort настроен на 53).

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

  • VM получает IP из диапазона 172.16.0.2–172.16.0.254.
  • По умолчанию весь трафик TCP перенаправляется на порт TransPort Tor (9040).
  • DNS‑запросы перенаправляются на локальный порт 53 и обрабатываются Tor.
  • Внешний IP, показываемый из VM, соответствует выходному узлу Tor (а не вашему реальному IP).

Проверка и отладка

  • На хосте выполните: iptables -t nat -L -n -v и убедитесь, что правила присутствуют.
  • На VM выполните: ip addr show и убедитесь в правильном IP.
  • Используйте tcpdump на хосте для интерфейса vnet0, чтобы увидеть исходящие соединения.
  • Если DNS не резолвится — проверьте, что dnsmasq запущен и Tor слушает DNSPort.

Частые проблемы и когда решение не сработает

  • Если гостевая ОС использует статические DNS-серверы, DNS запросы могут обходить Tor — настройте DHCP правильно.
  • Некоторые приложения реализуют собственные протоколы поверх UDP (например, VoIP), они могут не работать через Tor.
  • Tor не предназначен для P2P/BitTorrent; такой трафик может утечь или нарушить работу сети Tor.
  • Если на хосте есть firewall, блокирующий порт 9040 или 53, пересмотрите правила.

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

  • Whonix — готовое решение с разделением Gateway/Workstation, где Gateway выполняет роль Tor middlebox.
  • Запуск Tor внутри каждой VM (больше контроля над гости).
  • Использование Qubes OS с шаблонами, маршрутизирующими трафик через Tor.

Рекомендации по безопасности и жёсткая конфигурация

  • Сохраняйте правила iptables в файл и восстанавливайте при перезагрузке (iptables-persistent или systemd unit).
  • Ограничьте доступ к самому хосту: отключите ненужные сервисы и закройте порты управления.
  • Логируйте и мониторьте исключения (кто и какие IP пытается соединяться за пределами Tor).
  • Не используйте Tor для приложений, требующих низкой задержки или открытого P2P-трафика.

Роли и чеклисты

Хост‑администратор:

  • Установить bridge-utils, dnsmasq, tor.
  • Настроить /etc/network/interfaces и перезапустить интерфейс.
  • Настроить /etc/tor/torrc и перезапустить Tor.
  • Развернуть и протестировать middlebox.sh, обеспечить персистентность правил.

Пользователь VM:

  • Убедиться, что VM получает IP и DNS от хоста.
  • Проверить внешний IP и базовую работоспособность приложений.
  • Сообщать администратору о нарушениях работы приложений, требующих UDP/P2P.

Приватность и соответствие

  • Tor повышает сетевую анонимность, но не защищает данные внутри приложений. Для конфиденциальных данных по возможности используйте шифрование на прикладном уровне (TLS, end‑to‑end).
  • Хранение логов на хосте может содержать метаданные соединений; минимизируйте логирование, если это необходимо по требованиям конфиденциальности.

Итоговое резюме

  • Настройка middlebox на хосте позволяет централизовать маршрутизацию трафика VM через Tor.
  • Обязательно протестируйте DNS и IP, следите за правилами iptables и обеспечьте персистентность конфигурации.
  • Рассмотрите альтернативы (Whonix, Tor в госте) при специфичных требованиях к безопасности или совместимости.

FAQ

Как проверить, что трафик действительно идёт через Tor?
Проверьте внешний IP из VM (например, curl ifconfig.me) — он должен отличаться от IP хоста и соответствовать одному из выходных узлов Tor. Также убедитесь в отсутствии прямых TCP соединений к интернету на интерфейсе vnet0.

Что делать, если некоторые приложения не работают?
Проверьте, не используют ли они UDP или P2P. Такие приложения часто не работают через Tor. Рассмотрите возможность исключить их из прозрачного перенаправления (NON_TOR) или запустить их вне Tor.

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

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

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти