BitVPS
Скрытый сервис Tor: как поднять .onion-сайт, v3-адрес и типичные утечки
Разбор анонимности

Скрытый сервис Tor: как поднять .onion-сайт, v3-адрес и типичные утечки

Обычный сайт начинает с того, что объявляет о своём местонахождении. DNS-запись указывает на адрес, удостоверяющий центр вписывает это имя в публичный журнал, и любому, кто хочет найти машину за доменом, достаточно просто посмотреть. Скрытый сервис Tor не делает ничего из этого. У него нет DNS-записи, нет удостоверяющего центра, нет адреса, опубликованного хоть где-нибудь — само имя и есть открытый ключ, а сервер сам выходит в сеть, вместо того чтобы ждать, пока его найдут. Именно это свойство покупают редакции, зеркала пакетов Debian и горстка очень крупных сайтов, когда поднимают такой сервис. В этом руководстве разобрано, что даёт протокол сам по себе, десять строк конфигурации, которые поднимают сервис, и куда более длинный список способов, которыми люди выдают себя сверх этого.

Никакого KYC — никогда DMCA игнорируется Без журналов трафика Готов за 60 секунд

Что такое скрытый сервис Tor на самом деле

Скрытый сервис Tor — это сервер, который никому и никогда не сообщает о своём местонахождении. Вместо того чтобы опубликовать адрес в DNS и ждать входящих соединений, он сам строит исходящие цепочки через сеть Tor к нескольким узлам, которые выбирает в качестве точек представления, и публикует подписанный дескриптор с сообщением: «того, кто владеет этим ключом, можно найти через эти узлы». Клиент, которому известен адрес, получает этот дескриптор, выбирает третий узел в качестве точки встречи и просит точку представления передать запрос на встречу там. Обе стороны строят собственную цепочку к точке встречи, и ни одна из них никогда не узнаёт IP-адрес другой — просто потому, что его никто ей не сообщает.

Самое интересное — сам адрес. v3-адрес onion — это 56 символов в base32 плюс .onion, и это не имя, указывающее на ключ, — это и есть ключ: закодированные открытый ключ ed25519, контрольная сумма и байт версии. Здесь нечего искать и нечему доверять на веру. Когда клиент подключается, полученный им дескриптор подписан именно этим ключом, так что адрес аутентифицирует сервис по самой своей конструкции. Удостоверяющий центр не участвует, никто не может выпустить сертификат на ваш адрес, и не существует журнала прозрачности, фиксирующего сам факт существования сервиса. Если хотите разобраться в полном рукопожатии, стоит прочитать спецификацию rendezvous.

Что публикует обычный сайтКто это видитЧто вместо этого публикует скрытый сервис
DNS-запись, связывающая имя с IPКто угодно, навсегда, а пассивный DNS хранит историюНичего — DNS здесь не задействован вообще
TLS-сертификат с именем хостаКто угодно, через публичные журналы прозрачности сертификатовНичего — адрес и есть ключ, поэтому удостоверяющий центр не нужен
IP-адрес, отвечающий на порту 443Кто угодно, непрерывно сканирующий интернетНичего — сервис открывает исходящие цепочки и не слушает ни один публичный порт
Хостинг-провайдер и ASNКто угодно, по самому адресуНичего нельзя вывести из одного адреса
Записи WHOIS или регистратораКто угодно, а регистраторы отвечают на повесткиНичего — здесь нет ни регистрации, ни регистратора

Этот список и есть вся ценность технологии, и он же объясняет, кто именно её использует. Экземпляры SecureDrop в редакциях — это скрытые сервисы именно потому, что источник не обязан доверять DNS. Debian зеркалирует свой архив через скрытый сервис, чтобы сам факт обновления пакета не выдавал адрес назначения. Несколько очень крупных потребительских платформ публикуют такой адрес, чтобы пользователи в подцензурных сетях могли достучаться до них без заблокированного IP посередине. Ничего экзотического в этом нет — это транспорт с другим набором гарантий.

Что защищает скрытый сервис Tor, а что — нет

Гарантия протокола узкая, но прочная: сетевой уровень не раскрывает, где именно работает сервис. Противник, способный наблюдать за значительной частью интернета, всё равно не может сопоставить ваш адрес с конкретной машиной, потому что здесь просто нет этапа разрешения адреса, за которым можно было бы наблюдать. Хостинг-провайдеру невозможно предъявить адрес и спросить, какому клиенту он принадлежит, потому что на стороне провайдера этого никто не знает. Сканеры не находят сервис, потому что он не отвечает ни на одном публичном порту. А атаке, которая обрушила бы обычный сайт, попросту некуда бить — поэтому эта тема всплывает в разговорах о защите от DDoS не реже, чем в разговорах о приватности.

Всё, что выше сетевого уровня, всё ещё можно испортить самостоятельно, и именно здесь разворачивается настоящая история деанонимизаций. Сервисы находили потому, что приложение печатало трассировку стека с реальным именем хоста, потому что тот же веб-сервер отвечал на публичном IP идентичной страницей, потому что на той же машине был установлен сертификат другого домена оператора, потому что изображение несло в метаданных GPS-координаты, потому что машина отправляла почту через открытый интернет, или потому что открытый всему миру статус-эндпоинт выдавал собственный адрес сервера. Tor во всех этих случаях сделал свою работу. Человек над ним — нет.

Поэтому держите в голове сразу две мысли. Транспорт надёжен и остаётся таким уже много лет; считать его слабым звеном — значит неверно читать историю реальных расследований. И этот транспорт же — лёгкая половина задачи: трудная половина — это дисциплина в отношении всего, что машина говорит и делает, чему и посвящена большая часть этого руководства. Если вы здесь из-за более широкого вопроса о том, насколько прослеживаем арендованный сервер, хорошим дополнением к этой странице будет честный ответ на него.

Как поднять скрытый сервис: две директивы и перезапуск

Конфигурация на удивление короткая, что удивляет тех, кто ждёт какого-то ритуала. Установите демон tor, затем добавьте в torrc две директивы: HiddenServiceDir — она задаёт каталог, который Tor создаст и будет им владеть, — и HiddenServicePort, которая связывает виртуальный порт, к которому будут обращаться клиенты, с локальным адресом, на котором слушает ваше приложение. Перезапустите демон — и Tor сгенерирует пару ключей ed25519 и запишет ваш адрес в файл hostname внутри этого каталога.

СтрокаЧто она делаетЧто сломается, если её пропустить
HiddenServiceDir /var/lib/tor/site/Где Tor хранит ключи и записывает адрес; создаёт каталог с правами 0700Неверный владелец или доступный всем режим — и Tor отказывается запускаться
HiddenServicePort 80 127.0.0.1:8080Клиенты обращаются к порту 80 на onion-адресе; Tor перенаправляет запрос на ваш локальный обработчикУказание публичного адреса вновь раскрывает сервис в открытом интернете
Приложение привязано к 127.0.0.1Достучаться до него может только TorТот же контент отвечает на публичном IP, и вся затея теряет смысл
HiddenServiceVersion 3Указано явно, хотя v3 — единственная оставшаяся версияСегодня — ничего: v2 удалена из Tor в 2021 году

Самая частая ошибка описана в третьей строке. Веб-сервер по умолчанию слушает на 0.0.0.0, а это значит — публичный IPv4-адрес, а обычно и IPv6 тоже. Поставьте перед ним скрытый сервис — и вы уже отдаёте одни и те же байты в двух местах, одно из которых индексируют все сканеры интернета подряд. Тому, кто сравнит хеш страницы, favicon, ETag или характерную страницу ошибки, хватит секунд, чтобы связать их между собой. Привяжитесь к 127.0.0.1 и проверьте это командой ss -ltnp, а не просто поверьте на слово — проверка занимает пять секунд, а предположение стоило людям всего.

Прежде чем идти дальше, сделайте резервную копию hs_ed25519_secret_key в зашифрованном виде и вне этой машины. Этот файл не связан с адресом — он и есть адрес. Потеряете его — адрес пропадёт безвозвратно, без восстановления и без права на апелляцию. Утечёт он — и кто-то другой сможет поднять сервис, который отвечает за ваш адрес и криптографически неотличим от вас. Относитесь к нему как к подписывающему ключу — потому что это он и есть, — а если диск, на котором он лежит, арендован, очевидным дополнительным шагом будет шифрование этого диска — с оговорками, которые изложены в том руководстве.

Теперь закройте входную дверь. Скрытому сервису не нужен ни один входящий порт — каждое соединение, которое он использует, он открыл сам, исходящим, в сеть Tor. Можно сбрасывать на файрволе весь входящий трафик, и сервис продолжит работать как ни в чём не бывало. Почти ничто другое из того, что можно разместить на сервере, такого не предлагает, и это устраняет целый класс атак, начинающихся со сканирования портов. Заведите и собственный административный доступ через Tor — и машина просто перестанет отвечать интернету вообще.

v3-адреса, vanity-префиксы и фишинговая проблема, которую они создают

Если в руководстве, которое вы читаете, упоминаются 16-символьные адреса, речь идёт о протоколе, которого больше не существует. Скрытые сервисы версии 2 использовали 80-битные хеши RSA-1024 — достаточно короткие, чтобы быть удобными, и достаточно слабые, чтобы быть проблемой; вдобавок их можно было перечислить, поскольку любой, кто держал директорийный узел, мог собирать проходившие через него адреса. Tor Project объявил график отказа от v2 в 2020 году, отключил v2 в ветке 0.4.6 в июле 2021 года и полностью удалил код в октябре того же года. Адреса версии 3 состоят из 56 символов, построены на ed25519 и больше не утекают через директорийные узлы.

За это приходится платить длиной, и именно поэтому существуют vanity-адреса. Такие инструменты, как mkp224o, массово генерируют пары ключей и оставляют те, чей адрес начинается с выбранного префикса. Это ничего не ослабляет: вы не ограничиваете ключ, а отбраковываете кандидатов, пока один из них случайно не закодирует нужные буквы, и уцелевший ключ ровно так же силён, как и любой другой. Платить приходится временем, и цена растёт экспоненциально — каждый дополнительный символ умножает объём работы на 32, так что четырёхсимвольный префикс подбирается мгновенно на ноутбуке, шесть-семь символов — это уже часы работы машины, а десять становятся серьёзным предприятием. Полный 56-символьный адрес методом перебора не берёт никто — в этом и весь смысл пространства поиска.

Настоящая опасность — зеркальное отражение этого удобства. Если узнаваемый префикс помогает пользователям опознать вас, он точно так же помогает кому-то другому сгенерировать похожий адрес и выставить его на фишинговой странице, ведь человек на деле проверяет лишь те восемь символов, что он читает. Защищайте адрес так же, как всегда защищали отпечатки ключей: публикуйте полный адрес в нескольких независимых местах, подписывайте его ключом, который у людей уже есть, добавьте его в заголовок Onion-Location вашего сайта в обычном интернете, если он у вас есть, и прямо заявите, что никогда не объявите новый адрес только через социальные сети. Vanity-префикс — это удобство использования, а не аутентификация.

Поверхность утечек, которая реально деанонимизирует сервисы

Это самый важный раздел руководства. Схема во всех публично задокументированных случаях одна и та же: сетевой уровень выдержал, а что-то выше него указало на конкретную машину, конкретного человека или конкретный другой ресурс. Большинство таких причин довольно скучны, все они проверяются за один вечер, и вся работа как раз и заключается в этой проверке.

УтечкаКак её находятКак исправить
То же приложение отвечает на публичном IPЗапросить оба адреса, сравнить хеш страницы, favicon, ETag или характерную страницу ошибкиПривязка только к 127.0.0.1; проверка через ss -ltnp
Виртуальный хост по умолчанию или TLS-сертификат на публичном адресеДанные сканирования всего интернета, доступные для поиска и архивируемые по датамНикакого слушателя на публичном интерфейсе вообще; файрвол, сбрасывающий входящий трафик
Баннеры сервера и страницы ошибок фреймворкаПрочитать заголовки ответа и намеренно вызвать ошибку 500Скрыть баннеры версий, заменить отладочные страницы ошибок статичными
Абсолютные URL, зашитые в шаблоныПрочитать HTML: достаточно одного захардкоженного хоста из обычного интернетаОтносительные URL везде либо базовый URL, зависящий от хоста
Запросы к третьим сторонам: аналитика, шрифты, аватары, CDNЗагрузить страницу и посмотреть, что она пытается запроситьРазместить все ресурсы на своём сервере; сторонним запросам здесь не место
Метаданные изображенийПрочитать блок EXIF: серийные номера камер и GPS-координатыУдалять метаданные при загрузке, на стороне сервера, без исключений
Открытые статус-эндпоинтыЗапросить /server-status и прочитать, что сервер сам о себе сообщаетОтключить их или привязать к loopback-интерфейсу
Исходящий трафик, выдающий хостПочта, уходящая с машины, агент мониторинга, звонящий домой, cron-задача с API-ключомАудит исходящего трафика, маршрутизация всего необходимого через Tor и полный отказ от почты
SSH host key, повторно используемый с другой машиныДанные сканирования по отпечатку host key мгновенно связывают две машиныСвежие ключи для каждого инстанса; доступ к SSH через сам скрытый сервис
Временные метки и локальМетки времени в логах, сгенерированные документы и очевидный рабочий деньРаботать в UTC; не позволять приложению отображать локальный часовой пояс

Две из этих причин стоит выделить особо — они подводят даже осторожных людей. Первая — исходящий трафик: машина, которая никогда не принимает соединения, всё равно может выдать себя, установив соединение сама. Обновления пакетов — это нормально и неизбежно; а вот агент мониторинга, отчитывающийся на панель, привязанную к вашему имени, — уже нет, как и приложение, отправляющее письма для сброса пароля через открытый интернет с машины, чей единственный смысл существования — оставаться ненайденной. Вторая причина — SSH host key. Повторное использование одного и того же ключа на разных машинах кажется аккуратной привычкой, но создаёт постоянную, легко находимую криптографическую связь между двумя серверами, которые должны были оставаться никак не связанными.

Проводите аудит как посторонний, а не как оператор сервиса. Откройте сервис в Tor Browser на машине, которая никогда не имела отношения к проекту, прочитайте все заголовки ответа, намеренно вызовите ошибку, просмотрите исходный код страницы, как будто её писали не вы, и понаблюдайте за панелью сети — не запрашивает ли страница что-то ещё извне. Затем сядьте у сервера и понаблюдайте, что уходит с него в течение целых суток. То, что вы найдёте за эти сутки, и есть вся суть этого руководства.

Авторизация клиентов: сервис, доступный только избранным

Существует режим, о котором мало кто знает, и это, пожалуй, самая изящная деталь всего протокола. При использовании авторизации клиентов дескриптор, который публикует ваш сервис, шифруется на набор открытых ключей x25519, которые вы сами назначаете. Клиент без соответствующего закрытого ключа не может даже расшифровать дескриптор, а значит, не может узнать точки представления, а значит, не может подключиться — и даже не может подтвердить, что там вообще что-то есть. Вы кладёте открытые ключи клиентов в каталог authorized_clients рядом с ключами сервиса, по одному файлу на клиента, и перезапускаете демон.

Сравните это с обычными способами ограничить доступ. Белый список IP требует заранее знать, где находятся ваши пользователи, и оставляет сервис отвечающим в интернете — его по-прежнему может просканировать и снять отпечаток кто угодно ещё. Базовая HTTP-аутентификация оставляет на виду форму входа, которая сама объявляет, что здесь что-то есть. VPN добавляет целую вторую систему, которую нужно поддерживать, да ещё и со своим адресом, который тоже можно раскрыть. Авторизация клиентов убирает сервис из поля зрения всех, кого нет в списке, — а это принципиально другое свойство: не запертая дверь, а отсутствие двери как таковой.

Естественнее всего это подходит для административных интерфейсов. Разместите публичный сайт на обычном скрытом сервисе, а панель администратора, дашборд метрик, консоль базы данных и точку входа SSH — за отдельными авторизованными сервисами, и те части вашего развёртывания, которые иначе непрерывно прощупывали бы сканеры, просто невозможно будет найти. Цена — распространение ключей: каждому клиенту нужно установить свой закрытый ключ в конфигурацию Tor, что вполне приемлемо для горстки операторов и непрактично для публичной аудитории. Используйте этот режим там, где аудиторию можно пересчитать по пальцам.

Задержки, отказоустойчивость и честные компромиссы

Onion-соединение проходит через шесть узлов: три выбирает клиент, три — сервис, и они встречаются посередине. Это и есть плата за то, что ни одна из сторон не знает другую, и проявляется она в задержке, а не в пропускной способности — первый байт идёт медленно, а дальнейшая скорость передачи обычно вполне приемлема. Проектируйте с учётом этого: меньше циклов запрос-ответ, агрессивное кеширование, никаких «болтливых» цепочек запросов, никакой страницы, которой нужно одиннадцать вложенных ресурсов, прежде чем она отрисуется. Сайт, которым приятно пользоваться через скрытый сервис, — это, как правило, сайт, который изначально хорошо спроектирован.

Если вашему сервису анонимность местоположения сама по себе не нужна — например, крупная публичная платформа публикует onion-адрес исключительно для того, чтобы до неё могли достучаться пользователи в подцензурных сетях, — Tor предлагает режим single onion service с однохоповым маршрутом на стороне сервиса. Он примерно вдвое сокращает задержку и явно жертвует анонимностью самого сервиса — название директивы конфигурации говорит об этом прямым текстом. Это правильный выбор для известной организации и абсолютно неправильный для всех, чьё местоположение как раз и требуется защитить. Выбирайте его осознанно — или не выбирайте вовсе.

ПроблемаВариант решенияЧем приходится платитьКогда это уместно
ЗадержкаСтандартный шестихоповый сервисМедленный первый байт, нормальная пропускная способностьВсегда, если только анонимность сервиса действительно не нужна
ЗадержкаSingle onion service (один хоп на стороне сервиса)Полностью анонимность местоположения самого сервисаИзвестная организация, публикующая адрес для пользователей из подцензурных сетей
ОтказоустойчивостьOnionBalance на нескольких бэкендахУправляющий демон и обработка ключей на каждом бэкендеВсё, что должно оставаться доступным, пока пересобирается один из бэкендов
Обнаружение с вашего сайта в обычном интернетеЗаголовок Onion-LocationОсознанно и публично связывает оба адресаКогда связать их не проблема и вы хотите получить трафик
Ограниченная аудиторияАвторизация клиентовРаспространение ключей каждому клиентуПанели администратора, внутренние инструменты, пересчитываемая аудитория

Отказоустойчивость заслуживает отдельного замечания, потому что наивный подход здесь не работает. Нельзя просто скопировать ключевой материал на вторую машину и запустить обе — два сервиса, публикующих дескрипторы для одного и того же адреса, начинают конфликтовать за директорию, и клиенты попадают то на один, то на другой непредсказуемо. Именно для этого существует OnionBalance: фронтенд-инстанс держит публичный адрес и публикует дескриптор, указывающий на точки представления нескольких бэкенд-сервисов, у каждого из которых свой ключ. Бэкенды можно пересобирать или переносить по одному, и адрес при этом никогда не меняется.

Скрытый сервис рядом с обычным сайтом

Немало скрытых сервисов — это просто второй парадный вход к тому, что и так уже существует открыто, и это совсем другая задача, чем сервис, чьё местоположение должно оставаться тайной. Решите, какую из двух задач вы решаете, прежде чем писать хоть строку конфигурации, потому что они требуют противоположных вещей. Если цель — устойчивость к цензуре для сайта, который и так все знают как ваш, связка двух адресов — это как раз и есть нужная функция: опубликуйте заголовок Onion-Location на сайте в обычном интернете, и Tor Browser сам предложит посетителям onion-адрес. Если же цель в том, чтобы никто не знал, где работает сервис, тогда любая связь между двумя адресами — это утечка, и правильное их количество равно нулю.

Именно полумера и подводит людей. Запускать оба сайта с одной машины, с одной базой данных, с одним доменом для сессионных cookie и одним набором загружаемых файлов — уговаривая себя, что аудитории всё равно разные, — значит, что одна-единственная ошибка конфигурации обрушивает всё разделение, и вы узнаете об этом не раньше, чем кто-то другой. Если оба сервиса должны существовать и при этом не должны быть связаны, это два разных развёртывания на двух машинах с двумя независимыми наборами учётных данных, и операционные издержки на это — и есть цена того свойства, которое вам было нужно.

Один практический совет, если вы всё же связываете два адреса: держите сессии и cookie привязанными к конкретному хосту. Пользователь, который вошёл на сайте в обычном интернете, а затем зашёл через onion-адрес, должен получить свежую сессию, а не общую с прежней, — иначе вы построили механизм, который сопоставляет оба визита для любого, кто видит хотя бы один из них. И отдавайте onion-адресу собственные канонические ссылки, чтобы сайт «заботливо» не перенаправлял пользователя Tor Browser обратно на тот хост в обычном интернете, которого он сознательно избегал.

Что на стороне хостинга должно быть сделано правильно

Требования здесь необычные, поэтому обычный хостинг зачастую подходит плохо. Вам нужен беспрепятственный исходящий путь в сеть Tor, потому что это единственный тип соединения, которое устанавливает ваш сервис; некоторые провайдеры попросту фильтруют трафик директорийных и ретрансляционных узлов Tor, и вы обнаружите это по тому, что сервис так и не публикует дескриптор. Вам нужен провайдер, чья политика допустимого использования упоминает Tor письменно, а не обходит его молчанием, — потому что молчание превращается в письмо о блокировке аккаунта при первой же жалобе на что-то совершенно постороннее. Вам не нужен ни стабильный IP, ни домен, ни сертификат, ни хоть один входящий порт — а значит, почти всё, чем хостинговые компании обычно кичатся, здесь просто не имеет значения.

Приятный сюрприз — профиль жалоб на злоупотребления. Выходной узел устанавливает соединения с открытым интернетом от имени незнакомцев и поэтому собирает жалобы — таковы условия игры, и именно поэтому выходным узлам нужен провайдер с задокументированной позицией по этому вопросу. Скрытый сервис работает ровно наоборот: каждое соединение входящее, из сети Tor, он никогда не обращается к открытому интернету от чьего-либо имени и, как следствие, практически не порождает жалоб вообще. Это гораздо более тихая нагрузка, чем соседний ретранслятор, и куда более тихая, чем публичный веб-сервер.

На BitVPS Tor разрешён письменно — в равной мере ретрансляторы, мосты, выходные узлы и скрытые сервисы, а случай с выходными узлами отдельно задокументирован на странице о злоупотреблениях, а не оставлен на волю случая. Страница о хостинге Tor описывает подбор ресурсов для ретрансляторов; скрытым сервисам требуется меньше. На практике тариф Growth за $13.50 с 4 vCPU, 8 ГБ ОЗУ и безлимитным каналом тянет серьёзный скрытый сервис с запасом под приложение за ним, а тарифа Starter за $8.50 достаточно для небольшого. Выбирайте локацию исходя из её юридической позиции, а не задержки: шесть хопов делают разницу между близким и далёким дата-центром почти незаметной.

Страница о сети публикует ASN и информацию о пиринге, и здесь это важно по косвенной причине. Вы не раскрываете адрес, поэтому обычный повод беспокоиться о сети провайдера отпадает, — но хостинг, который открыто документирует свою инфраструктуру, это ещё и хостинг, который письменно зафиксировал, что он делает, когда кто-то спрашивает о клиенте, а именно это вы на самом деле и покупаете.

Где проходит граница

Об этом стоит сказать прямо, потому что у технологии репутация, не соответствующая реальному трафику. Скрытые сервисы — это транспорт с конкретным свойством приватности, и подавляющее большинство тех, кто их использует, — самые обычные люди: редакции, принимающие сообщения от источников, архив пакетов, не желающий логировать, какая машина скачала какое обновление, проекты обмена сообщениями и самостоятельного хостинга, жители стран, где обычный интернет фильтруется, и администраторы, которые просто предпочитают, чтобы их панель управления нельзя было просканировать. В подавляющем большинстве юрисдикций запускать такой сервис законно, и сам этот факт ничего не говорит о том, что именно вы размещаете.

Чего эта технология точно не делает — не меняет сами правила. Провайдер, игнорирующий уведомления об авторских правах, — а мы именно так и поступаем, как объясняется в том руководстве, — всё равно реагирует на материалы о сексуальном насилии над детьми и на достоверные угрозы людям, причём реагирует быстро: заявленное окно реакции — четыре часа для этих случаев против сорока восьми для всего остального. Это не лазейка в остальном либеральной политике — это и есть политика, и никакой транспорт её не меняет. Политика допустимого использования короткая, и её стоит прочитать до начала работы, а не после.

Ещё одно честное замечание: анонимность — это свойство всей системы, а не товар, который можно купить. Адрес скрывает машину, но не скрывает платёжный след, повторно используемый пароль, стиль письма, домен, который вы зарегистрировали много лет назад на тот же email, или скриншот с путями вашей собственной файловой системы на нём. Если модель угроз серьёзная, транспорт — самая лёгкая её часть, и именно на неё вы потратите меньше всего времени. Более широкий разбор охватывает остальные звенья этой цепочки, а объяснение про bulletproof-хостинг — полезное противоядие от маркетинга, который окружает всю эту тему.

Быстрые ответы

Часто задаваемые вопросы

Законно ли размещать сайт в .onion?
В подавляющем большинстве юрисдикций — да: скрытый сервис — это транспорт, и запускать его законно ничуть не менее, чем обычный веб-сервер. Крупные редакции, проект Debian и несколько больших платформ открыто используют их. То, что вы публикуете, регулируется тем же законом, что применялся бы в любом другом случае, и нашей политикой допустимого использования, которую сам адрес никак не меняет.
Нужно ли открывать входящие порты для скрытого сервиса?
Нет, и это одно из лучших его свойств. Каждое соединение, которое использует сервис, он открыл сам, исходящим, в сеть Tor. Можно настроить файрвол на сброс всего входящего трафика — и сервис продолжит работать, что устраняет целый класс атак, начинающихся со сканирования портов. Заведите доступ и к собственному SSH через скрытый сервис — и машина вообще перестанет отвечать интернету.
Можно ли по .onion-адресу узнать реальный IP-адрес сервера?
Не по самому адресу — это открытый ключ, и здесь нет этапа разрешения адреса, который сопоставлял бы его с конкретной машиной. На практике сервисы находили по всему, что выше сетевого уровня: то же приложение отвечало на публичном IP, баннер сервера или страница ошибки, запрос стороннего ресурса, метаданные изображения, открытый статус-эндпоинт, повторно используемый SSH host key или почта, уходящая с машины. Протокол выдерживает; вся работа — в том, как развёрнут сервис вокруг него.
Что случилось со старыми 16-символьными .onion-адресами?
Это были адреса версии 2 на основе хешей RSA-1024, и их больше нет. Tor Project объявил об отказе от них в 2020 году, отключил v2 в ветке релизов 0.4.6 в июле 2021-го и удалил код в октябре того же года. Адреса версии 3 состоят из 56 символов, используют ed25519 и больше не собираются директорийными узлами так, как это было возможно с адресами v2. Любое руководство, всё ещё показывающее короткий адрес, написано раньше всех этих событий, и в целом к нему стоит относиться с подозрением.
Можно ли получить свой .onion-адрес с нужным именем?
Префикс — да: такие инструменты, как mkp224o, генерируют пары ключей, пока одна из них не закодирует нужные вам символы. Ключ от этого не ослабевает, потому что вы отбраковываете кандидатов, а не ограничиваете сам ключ, но цена растёт в 32 раза за каждый символ: четыре символа — мгновенно, семь — часы работы на быстрой машине, десять — уже целый проект. Учитывайте и обратную сторону: узнаваемый префикс так же легко имитировать достаточно похоже, чтобы обмануть читателя, поэтому публикуйте полный адрес в нескольких местах и подписывайте его.
Скрытые сервисы медленнее обычных сайтов?
По задержке — да, по пропускной способности — обычно нет. Соединение проходит через шесть узлов — по три с каждой стороны, — поэтому первый байт идёт заметно дольше, а дальнейшая скорость передачи, как правило, вполне приемлема. Проектируйте с учётом этого: агрессивно кешируйте, избегайте длинных цепочек зависимых запросов, держите число вложенных ресурсов небольшим. Сайты, которые плохо ощущаются через Tor, — это, как правило, сайты, которые изначально были тяжёлыми.
Будут ли жалобы на злоупотребления из-за скрытого сервиса?
Практически никаких — это удивляет тех, кто мысленно ставит их в один ряд с выходными узлами. Выходной узел устанавливает соединения с открытым интернетом от имени незнакомцев и в результате собирает жалобы. Скрытый сервис же только принимает соединения изнутри сети Tor и никогда не обращается к открытому интернету от чьего-либо имени, так что третьей стороне попросту не на что жаловаться. Это более тихая нагрузка для хостинга, чем обычный публичный веб-сервер.
Можно ли разместить скрытый сервис и обычный сайт на одном VPS?
Технически да, и это правильное решение, если оба адреса и должны быть публично связаны, — опубликуйте заголовок Onion-Location, и Tor Browser сам предложит посетителям onion-адрес. Но это неправильное решение, если скрытый сервис должен оставаться несвязанным с обычным сайтом, потому что одна общая база данных, одна сессионная cookie или одна ошибка в шаблонах разрушают всё разделение. Если они не должны быть связаны, разворачивайте их как два отдельных развёртывания на двух машинах.
Применить

Нагрузки, к которым относится это руководство

Каждая карточка открывает страницу с рекомендациями по размеру и FAQ системного администратора.

Читать дальше

Другие руководства

Сопутствующие материалы, продолжающие там, где это руководство заканчивается.

Доверие и отслеживаемость Анонимен ли VPS? Насколько отслеживаем хостинг за криптовалюту на самом деле

Анонимен ли VPS? Насколько отслеживаем хостинг за криптовалюту на самом деле

Честная карта того, что no-KYC хостинг может и не может увидеть о вас — платёжный след, IP подключения, контент, который вы размещаете — и три разных вида «анонимности», которые люди путают между собой.

9 мин чтения Читать руководство
Операционный гайд Как разместить сайт анонимно в 2026

Как разместить сайт анонимно в 2026

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

12 мин чтения Читать руководство
Разбор по усилению защиты Полное шифрование диска на VPS: LUKS, удалённая разблокировка и что на самом деле остаётся после изъятия

Полное шифрование диска на VPS: LUKS, удалённая разблокировка и что на самом деле остаётся после изъятия

Шифровать диск арендованного сервера стоит, но оно не делает того, что большинству кажется. Где именно проходит граница между выключенной машиной и работающей, как установить зашифрованный root и разблокировать его по SSH, и что на самом деле выдаёт снятый образ диска.

14 мин чтения Читать руководство
Терминология Что такое bulletproof-хостинг? (И чем от него отличается DMCA-ignored)

Что такое bulletproof-хостинг? (И чем от него отличается DMCA-ignored)

Термином «bulletproof hosting» бросаются небрежно, а часто и нечестно. Разберёмся, откуда он на самом деле взялся, почему большинство объявлений с этим словом — это разводы или honeypot-ловушки, и где проходит точная граница между ним и легитимным DMCA-ignored оффшорным хостингом.

8 мин чтения Читать руководство

Прочитали достаточно? Развернуть за 60 секунд

Без верификации email, без удостоверения, без аккаунта. Выберите тариф, оплатите любой криптовалютой, получите root.