Как создать скрытый сайт (hidden service) в Tor на Windows

Tor — это анонимная и защищённая сеть, позволяющая подключаться к сайтам без раскрытия вашей личности. Обычно люди используют Tor для посещения обычных сайтов, адаптированных к Tor, но вы также можете запустить собственный скрытый сервис (hidden service). Скрытый сервис запускается целиком внутри сети Tor: публичная часть — это адрес .onion, а реальный хост и его владелец остаются скрытыми. Доступ к скрытому сервису возможен только через Tor, что делает его удобным для активистов, журналистов и других пользователей, которым нужна анонимная публикация.
Важно: скрытый сервис не обязан быть веб‑сервером — это может быть SSH, IRC или любой TCP‑сервис. В этом руководстве мы сфокусируемся на веб‑сайте, используя Savant на Windows как пример (Tor рекомендует Savant на Windows). Шаги при желании применимы и к другим ОС и серверам.
Кому это полезно
- Анонимные публикации (журналисты, активисты);
- Тестирование приватных сервисов внутри Tor;
- Экспериментальная инфраструктура для защищённого доступа.
Что нужно знать заранее
- Tor должен всегда быть запущен, чтобы сервис был доступен.
- Скрытые сервисы по‑прежнему могут выдавать подсказки об активности (доступность/недоступность), если ваши внешние условия меняются.
- Не публикуйте private_key — с его помощью можно выдавать себя за ваш сайт.
Шаг 1 — Установите Tor
Скачайте и установите Tor Browser Bundle на Windows. Если он уже установлен — переходите к следующему шагу. По умолчанию пакет устанавливает Tor вместе со специально настроенным браузером на базе Firefox.
Когда Tor подключён к сети, в системном трее появится зелёная луковица. Пример: в Tor Browser можно ввести примерный .onion‑адрес duskgytldkxiuqc6.onion, чтобы убедиться, что браузер работает.
Tor должен быть запущен постоянно, когда вы хотите, чтобы скрытый сервис был доступен. Если компьютер выключен или Tor остановлен, ваш сервис будет недоступен — это может давать внешним наблюдателям косвенные подсказки о вашей активности.
Шаг 2 — Установите и настройте веб‑сервер
Вам нужен веб‑сервер, который будет отдавать контент локально. Документация Tor рекомендует избегать тяжёлых серверов, таких как Apache, поскольку они имеют много точек потенциальных утечек (страницы ошибок, заголовки и т. д.). На Windows рекомендуют Savant; на Unix‑системах часто указывают thttpd или другие простые серверы.
Главная идея: привязать веб‑сервер к localhost, чтобы доступ к нему был возможен только с вашей машины. Тогда Tor будет пробрасывать трафик из сети Tor на ваш локальный сервер, а внешний мир не увидит прямого соединения.
Мы рассмотрим Savant как пример.
Настройка Savant
- Запустите Savant и откройте окно Configuration.
- В поле “Server DNS Entry” задайте localhost — это привяжет сервер к 127.0.0.1.
Обратите внимание на порт сервера (обычно 80). Если вы используете нестандартный порт — запомните его, он потребуется при конфигурации Tor.
Корневая директория по умолчанию — C:\Savant\Root (можно изменить во вкладке Paths). Поместите ваш index.html и другие файлы туда.
- Проверьте, что сайт открывается локально: в браузере введите localhost или localhost:PORT, если используется порт отличный от 80.
Совет: отключите любые модули/плагины сервера, которые вставляют динамические заголовки с информацией о хосте, версии программного обеспечения, трассировках ошибок и т. п.
Шаг 3 — Настройте скрытый сервис в torrc
Теперь сообщите Tor, куда пробрасывать входящие соединения к вашему локальному серверу.
- Остановите Tor, если он запущен.
- Найдите файл torrc. В Tor Browser Bundle он обычно находится в папке Tor Browser\Data\Tor.
- Откройте torrc в текстовом редакторе и добавьте в конец файла секцию HiddenService. Пример для сервера на порту 80 и каталога с правами чтения/записи:
# Hidden Service
HiddenServiceDir C:\Users\Name\tor_service
HiddenServicePort 80 127.0.0.1:80Замените C:\Users\Name\tor_service на путь к пустой директории, к которой Tor имеет доступ на чтение и запись. Не используйте ту директорию, где находится ваш веб‑контент. Если ваш веб‑сервер слушает другой порт (например, 5000), укажите 127.0.0.1:5000 во второй строке.
- Сохраните файл и создайте директорию HiddenServiceDir, если её ещё нет.
- Запустите Tor и проверьте Message Log на предмет ошибок.
- Если всё прошло успешно, в директории HiddenServiceDir появятся два файла: hostname и private_key. Не передавайте private_key третьим лицам.
- Откройте файл hostname — в нём записан .onion‑адрес вашего скрытого сервиса. Введите этот адрес в Tor Browser, чтобы проверить доступность сайта.
Примечание: доступ к сайту возможен только через Tor Browser или другое приложение, работающее через Tor.
Безопасность и рекомендации по конфиденциальности
- Привязка к localhost — ключевой базовый шаг. Никогда не слушайте публичный интерфейс (0.0.0.0), если хотите сохранить анонимность.
- Проверьте заголовки HTTP: удалите или маскируйте Server, X‑Powered‑By и другие метаданные, которые указывают на ПО и версию.
- Отключите детальные страницы ошибок (stack traces), которые могут раскрывать структуру сервера.
- Настройте файловые права: директория HiddenServiceDir должна быть доступна только для учетной записи, под которой запускается Tor.
- Логи: не храните подробные лог‑файлы с IP‑адресами или метаданными, которые позволят сопоставить трафик.
- Обновления ОС: регулярно применяйте обновления безопасности для Windows и ПО сервера.
- Разделение ролей: держите веб‑контент, Tor и управляющие инструменты в отдельных учетных записях/контейнерах, если возможно.
- Фингерпринги доступности: если ваш компьютер редко в сети, внешние наблюдатели могут по времени доступности делать выводы. Рассмотрите использование VPS или виртуальной машины, которая доступна круглосуточно.
Важно: для самых чувствительных сервисов рассмотрите размещение на отдельной виртуальной машине или выделенном хосте, чтобы снизить риск корреляции активности.
Альтернативные подходы и варианты
- Использовать thttpd, Caddy или nginx на Linux/Unix: более зрелые сервера позволяют гибче контролировать заголовки и TLS (хотя для .onion TLS не обязателен).
- Развёртывание на VPS: если вам важна постоянная доступность, разверните Tor и скрытый сервис на удалённом VPS, но будьте осторожны с оплатой и идентификацией хостинга.
- Контейнеризация: запуск Tor и веб‑сервера в контейнере (Docker) помогает управлять зависимостями и изолировать окружение.
- Onion v3: используйте современные форматы адресов v3 (они длиннее и криптографически надежнее), если ваш Tor поддерживает их.
Контрольный список перед публикацией
- Tor запущен и без ошибок в логах.
- HiddenServiceDir создан и имеет корректные права.
- Файлы hostname и private_key на месте; private_key хранится в безопасном месте.
- Веб‑сервер привязан к localhost и отвечает на локальные запросы.
- Удалены/маскированы серверные заголовки и страницы ошибок.
- Нет логов, которые содержат внешние IP или данные пользователей.
- Тест доступа: сайт открывается в Tor Browser с .onion‑адреса.
Роли:
- Владелец: проверяет политику хранения private_key.
- Оператор: следит за обновлениями, правами и логами.
- Редактор контента: проверяет, чтобы опубликованные файлы не содержали скрытой метаинформации (например, EXIF у изображений).
Критерии приёмки
- Сайт доступен по .onion‑адресу через Tor Browser.
- Файл hostname содержит ожидаемый адрес; private_key присутствует и защищён.
- Запросы к сайту из интернета не достигают вашего публичного IP (проверка с внешним сканером или помощью знакомого через Tor).
- Сервер не выдаёт служебных заголовков, указывающих на версию ПО.
- Логи не содержат идентифицирующих метаданных.
Отладка и план действий при инциденте
Симптом: сайт недоступен в Tor
- Шаг 1: Проверить, запущен ли Tor и нет ли ошибок в Message Log.
- Шаг 2: Убедиться, что HiddenServiceDir существует и содержит hostname и private_key.
- Шаг 3: Проверить, что веб‑сервер слушает localhost:PORT (netstat / TCPView).
- Шаг 4: Откройть локально http://127.0.0.1:PORT для подтверждения работы сервера.
- Шаг 5: Перезапустить Tor и сервер, посмотреть логи.
Инцидент: private_key скомпрометирован
- Немедленно удалить старую HiddenServiceDir, сгенерировать новую директорию и перезапустить Tor (это создаст новый .onion‑адрес).
- Распространить новый адрес проверенным контактам и отозвать старый.
Риски и смягчение (качественная матрица)
- Утечка IP из заголовков/ошибок — устранение: маскировка заголовков, отключение verbose ошибок.
- Компрометация private_key — устранение: защитить доступ к директории, резервирование ключей в зашифрованном хранилище.
- Корреляция времени работы — устранение: повышенная доступность хоста (VPS/VM) или использование транспарентных мостов.
Короткий глоссарий
- Tor: сеть для анонимного трафика.
- .onion: домен скрытого сервиса в сети Tor.
- HiddenServiceDir: папка, где Tor хранит ключи и hostname для скрытого сервиса.
- private_key: секретный ключ, позволяющий аутентифицировать скрытый сервис.
Часто задаваемые вопросы (кратко)
Q: Могут ли обычные пользователи интернета открыть мой .onion‑сайт? A: Нет, только через Tor.
Q: Нужно ли мне TLS для onion‑сайта? A: На уровне Tor соединение уже зашифровано; TLS можно использовать для дополнительной защиты и совместимости, но он не обязателен.
Итог
Скрытые сервисы Tor дают способ публиковать сайт без привязки к вашей реальной сетевой идентичности. Главное — правильно привязать сервер к localhost, корректно настроить torrc и защитить директорию HiddenServiceDir и private_key. Дополнительные меры безопасности (маскировка заголовков, управление логами, надёжные права доступа) снижают риск деанонимизации.
Источник изображения: Blurred Silhouette via Shutterstock