Предложение года Оплатите 1 месяц — получите 2 На все VPS и выделенные серверы, при любом сроке: оплачиваете 12 месяцев — сервер работает 24. Удвоить срок
Главная / Руководства по приватному хостингу / Скрытие IP исходного сервера: CDN, обратный прокси и утечки
Конфиденциальность

Скрытие IP исходного сервера

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

Без KYC
Только крипто
Без логов
DMCA игнорируется
Полный root
NVMe SSD

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

Эта путаница дорого обходится в обоих направлениях. Одни ставят крупный американский CDN перед контентом, ради которого выбрали хостинг, игнорирующий DMCA, и тем самым возвращают канал для жалоб именно тому посреднику, которого пытались избежать. Другие не делают вообще ничего, получают флуд на уровне приложений, который сетевая фильтрация в принципе не способна увидеть, и делают вывод, что защита от DDoS — обман. Это руководство разделяет две задачи, объясняет, что на самом деле делает каждый уровень защиты, и большую часть текста посвящает тому, что решает исход в любом случае: шести способам, которыми исходный адрес утекает, даже когда всё остальное настроено правильно.

Две задачи, которые выглядят как одна

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

Что вас беспокоитЧто это действительно решаетЧто не решает
Объёмный флуд, забивающий ваш канал (уровни 3 и 4)Фильтрация на периметре сети хостера, включена в каждый тарифНичего из того, что вы установите на сервере, — к этому моменту канал уже заполнен
Прикладной флуд запросов, которые выглядят настоящими (уровень 7)CDN или WAF, кеширование, ограничение частоты запросов, более дешёвые эндпоинтыПакетная фильтрация — она видит корректный HTTP и пропускает его
Сервер не должен быть доступен напрямуюФронт (CDN или собственный узел) плюс файрвол, пропускающий только егоОдин лишь CDN, если источник по-прежнему отвечает всему интернету
Никто не должен узнать, кто им управляетРегистрация без KYC, приватная оплата, дисциплина в ведении аккаунтовЛюбой объём инфраструктуры — это вопрос идентичности, а не техники
Контент должен пережить жалобыЮрисдикция и хостер, который не реагирует на нихCDN, который добавляет канал для жалоб, а не убирает его

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

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

Что уже делает ваш хостер и где это заканчивается

Фильтрация уровней 3 и 4 включена в каждый тариф, который мы продаём, без доплаты, и работает на периметре сети, а не на вашем сервере — это единственное место, где она вообще может работать, поскольку насыщенный канал невозможно исправить чем-либо, запущенным позади него. Трафик безлимитный, поэтому атака не превращается в счёт. Для подавляющего большинства того, что люди называют «DDoS», на этом история заканчивается.

Того, что она не видит, — другого рода. Пятьсот запросов в секунду к поисковому эндпоинту с сорока тысяч домашних адресов — это не искажённый трафик, это просто трафик. Slowloris-соединения, по одному заголовку раз в несколько секунд каждое, сами по себе выглядят пристойно. Форма входа, забрасываемая настоящими POST-запросами, на уровне пакетов неотличима от загруженного понедельника. Пакетный фильтр здесь бессилен, потому что с пакетами всё в порядке.

Проверка на то, нужно ли вам больше, чем сетевая фильтрация: может ли один корректно оформленный запрос обойтись вашему серверу в сканирование базы данных, изменение размера изображения или хеширование пароля? Если да, у вас есть поверхность атаки уровня 7, и решение — кеширование, ограничение частоты запросов и более дешёвые эндпоинты, с CDN перед ними или без него.

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

Что скрывает CDN — и какой канал для жалоб вы получаете в придачу

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

Вместе с этим приходят три вещи, и ни одна не спрятана в мелком шрифте:

  • TLS терминируется на периметре провайдера. Внутри сети провайдера трафик — открытый текст, так и задумано: именно это позволяет работать кешированию и фильтрации. Всё, что вводят ваши пользователи, попадает к третьей стороне раньше, чем к вам.
  • Канал для жалоб, которого раньше не было. Жалобы можно подавать напрямую на CDN, и CDN на них реагирует: пересылает вам, называет вашего хостера или отключает вас. Если вы выбрали офшор именно потому, что жалобы уходят в никуда, размещение американского посредника впереди заново соединяет цепочку, за разрыв которой вы заплатили.
  • Аккаунт. Адрес электронной почты, способ оплаты, часто номер телефона — всё это привязано к вашему домену и хранится бессрочно. Подробнее об этом ниже, потому что обычно это самое слабое звено во всей схеме.

Ничто из этого не делает CDN неправильным выбором. Это лишь решение с двумя сторонами: отличное для магазина или приложения с реальными пользователями и реальной нагрузкой уровня 7, и откровенно контрпродуктивное для публикаций, которые привлекают жалобы на удаление. Наш собственный ответ на этот вопрос на странице о хостинге, игнорирующем DMCA, всегда был короткой версией того же самого: для устойчивости к удалению используйте уже имеющуюся у вас сетевую фильтрацию и обойдитесь без CDN.

Шесть способов, которыми исходный адрес всё равно утекает

Это самый важный раздел, потому что скрытность — не товар, который покупают, а свойство, которое либо поддерживают, либо теряют, обычно в течение нескольких дней, из-за одной из шести причин. Исходные серверы находят каждый день даже за безупречно настроенным CDN.

  • Журналы Certificate Transparency. Каждый публично доверенный сертификат, выданный для вашего домена, в течение нескольких минут публикуется в открытых, постоянных и доступных для поиска журналах. Публикуют не ваш адрес, а ваши имена хостовstaging, mail, vpn, поддомен, который вы однажды настроили ещё в 2024 году. Каждое из них — кандидат на резолвинг, и достаточно одной записи, не указывающей на фронт, чтобы всё закончилось.
  • История DNS. Сервисы passive-DNS архивируют каждый адрес, в который когда-либо резолвился ваш домен. Переход за CDN впоследствии не отменяет публикацию уже записанного — скрытность должна начинаться до первого резолвинга домена, иначе вам нужен новый адрес, а не новый фронт.
  • Записи, которые нельзя проксировать, и те, что вы забыли. Записи почтовых серверов должны указывать на что-то доступное. То же касается забытой записи AAAA, если вы проксировали только IPv4, старого имени хоста для FTP или панели, wildcard-записи или «временного» тестового сервера, которому уже три года.
  • Всё, что отправляет сервер. Письмо с источника несёт его адрес в заголовках Received — письмо о сбросе пароля само раскрывает адрес. Вебхуки, исходящая загрузка изображений, превью ссылок, пингбэки, проверки обновлений и системы отчётов о сбоях — всё это обращается наружу с реального адреса, и его узнает любой, кто заставит ваше приложение обратиться к контролируемому им хосту.
  • Сканирование всего интернета. Каждый адрес IPv4 непрерывно сканируется и индексируется публичными сервисами, а результаты доступны для запроса за секунды. Если ваш источник отвечает на порту 443 вашим сертификатом или отдаёт главную страницу на любой заголовок Host, найти совпадение — вопрос одного запроса по хешу тела страницы, отпечатку сертификата или хешу favicon. Так находят большинство исходных серверов, и это ничего не стоит тому, кто ищет.
  • Приложение, которое рассказывает о себе. Абсолютные URL и редиректы с необработанным адресом внутри, открытые эндпоинты статуса или метрик, подробные трассировки стека с именами внутренних хостов, заголовки, раскрывающие бэкенд, и виртуальный хост по умолчанию, который с готовностью отдаёт ваш сайт любому, кто обратится по адресу.
Пять из этих шести пунктов — вопрос конфигурации, а не криптографии. Ни один из них не решается более дорогим тарифом CDN, и ни один не является экзотикой — это первые шесть вещей, которые проверяет любой заинтересованный, именно в этом порядке.

Как закрыть источник так, чтобы к нему мог обращаться только фронт

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

  • Запрет по умолчанию, затем разрешение для фронта. Принимайте 80 и 443 только с опубликованных диапазонов адресов провайдера и обновляйте этот список автоматически — диапазоны меняются, а устаревший список откроется или закроется в самый неподходящий момент. Всё остальное, включая SSH, должно жить в туннеле или на управляющем адресе, как описано в нашем чек-листе для первого часа настройки VPS.
  • Аутентифицируйте фронт. Клиентские сертификаты между CDN и вашим источником — обычно называемые authenticated origin pulls — означают, что даже верный адрес вместе с верным заголовком Host не даёт ничего без сертификата.
  • Лучше: вообще без входящих портов. Исходящий туннель от источника к периметру — будь то собственный коннектор CDN или WireGuard до узла, которым управляете вы, — означает, что источник никогда не слушает на публичном интерфейсе. Сканирование не найдёт то, что не отвечает, и это самая надёжная версия всей схемы.
  • Один виртуальный хост, один заголовок Host. Сервер по умолчанию не должен возвращать ничего полезного. Если ваш сайт открывается по адресу, сканер найдёт совпадение в течение недели.
  • Уберите почту с веб-источника. Почта обязана быть доступной и обязана себя идентифицировать; держите её на отдельной машине, как и предполагает наше руководство по почтовому серверу.
  • Проверяйте извне. Любая проверка из этого списка бессмысленна, если запущена с самого сервера. Тестируйте из сети, которая вам не принадлежит.

Собственный фронт-узел вместо CDN

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

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

Чего вы не получаете — так это ёмкости anycast-сети. У одного узла ёмкость одного узла, и хотя наша сетевая фильтрация защищает его точно так же, как и любой другой сервер, по-настоящему крупная объёмная атака — это состязание по пропускной способности, которое выигрывает глобальная сеть. Честная позиция такова: фронт-узел — правильный ответ для сокрытия тяжёлого или дорогого бэкенда — хранилища, GPU-сервера, почтового сервера, базы данных — и для разделения юрисдикций. Он не заменяет CDN при устойчивой нагрузке уровня 7.

Выбор в одной таблице

Ваша ситуацияСхемаОбоснование
Публикации, привлекающие жалобы на удалениеНапрямую, без CDN, в осознанно выбранной юрисдикцииCDN добавляет канал для жалоб, которого у вашего хостера намеренно нет
Магазин или SaaS с реальными пользователями и нагрузкой уровня 7CDN спереди, источник закрыт только для его диапазоновУровень 7 — это именно та задача, для которой создан CDN
Конечная точка обхода блокировок в стране с цензуройПрикрытие через CDNЦензор видит адрес, который не может позволить себе заблокировать
Большой объём статического или медиатрафикаCDN для разгрузки через кешСуть в пропускной способности и задержке; скрытность — побочный эффект
Анонимность — главное требованиеСобственный фронт-узел или вообще ничего спередиСторонний аккаунт — это идентификационная запись, которой раньше не было
Тяжёлый бэкенд, который стоит скрытьФронт-узел плюс исходящий туннельДорогая машина никогда не появляется в публичном интернете

Аккаунт — обычно самое слабое звено

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

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

Проверка собственной уязвимости за десять минут

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

  • Составьте список всех имён хостов, на которые вы когда-либо получали сертификат. Найдите свой корневой домен в поисковике по Certificate Transparency и зарезолвьте каждый результат. Всё, что не указывает на фронт, — утечка, включая хосты, которыми вы больше не пользуетесь.
  • Изучите собственную историю DNS. Запрос к passive-DNS покажет адреса, в которые резолвился ваш домен до CDN. Если вчерашний источник — это и сегодняшний источник, скрытности никогда не было.
  • Спросите источник напрямую. curl -sI --resolve example.com:443:198.51.100.10 https://example.com/ — если сайт отвечает, ваш файрвол не ограничивает доступ фронтом, и любой, у кого есть адрес-кандидат, подтвердит это одним запросом.
  • Спросите его грубо. curl -skI https://198.51.100.10/ не должен вернуть ничего узнаваемого. Виртуальный хост по умолчанию, отдающий вашу главную страницу, — самая частая ошибка из всех перечисленных здесь.
  • Проверьте все типы записей, а не только A. dig +short AAAA example.com, dig +short MX example.com и то же самое для каждого поддомена, обнаруженного в журналах прозрачности. Непроксированный IPv6 — классика жанра.
  • Отправьте себе письмо из приложения. Запустите сброс пароля и прочитайте всю цепочку заголовков Received. Если адрес источника там есть, значит, он есть и в каждом письме, которое вы когда-либо отправляли.
  • Убедитесь, что порты закрыты. Из посторонней сети команда nmap -Pn -p80,443 198.51.100.10 должна показать filtered, а не open.
  • Проверьте по сканерам. Найдите отпечаток своего сертификата и хеш favicon главной страницы в публичном индексе сканирования интернета. Если ваш источник проиндексирован, именно так его и найдут.

Если адрес уже сожжён

Считайте, что он сожжён навсегда. Адрес, попавший в passive-DNS и в индексы сканирования, остаётся в постоянной публичной записи, и никакое изменение конфигурации это не отменит. Ответные действия — механические, а не хитрые.

  • Сначала устраните утечку. Переход на новый адрес без закрытия дыры воспроизведёт ту же ситуацию в течение нескольких дней, и вы потратите миграцию, ничему не научившись.
  • Затем переезжайте. Разверните замену — в другой юрисдикции, если причина была юридической, а не технической, — восстановите данные и переключитесь. Поскольку с первым сервером не была связана никакая личность, это чистый старт, а не переговоры, — практичный, неброский результат покупки серверов без истории аккаунта.
  • Подготовьте переключение заранее, до чрезвычайной ситуации. Короткий TTL DNS-записи, конфигурация, которую можно развернуть заново из репозитория, и протестированное восстановление превращают тяжёлый день в двадцать минут. Этим не занимаются во время атаки.
  • Правильно выведите старый адрес из эксплуатации. Не оставляйте старый сервер на старом адресе с тем же содержимым — это живое подтверждение для любого наблюдателя, и оно поддерживает запись свежей.

Коротко

Сетевая фильтрация справляется с объёмными атаками, идёт вместе с сервером и не стоит ничего сверх этого. CDN справляется с прикладным уровнем и скрывает источник ценой посредника, который терминирует ваш TLS, отвечает на жалобы и знает, кто вы. Собственный фронт-узел покупает скрытность без посредника, но без глобальной ёмкости. Юрисдикция решает правовой вопрос, и ни один из трёх вариантов его не затрагивает. И все три сводятся на нет одной непроксированной записью, одним письмом с источника или одним виртуальным хостом по умолчанию.

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

FAQ

IP исходного сервера и DDoS — частые вопросы

01 Скрывает ли CDN реальный IP-адрес моего сервера?

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

02 Отменяет ли размещение Cloudflare или другого CDN перед сервером эффект хостинга, игнорирующего DMCA?

На практике — да. CDN становится стороной вашего сервиса и имеет собственный процесс работы с жалобами: уведомления можно подавать напрямую на него, и обычно он пересылает их вам, называет вашего хостера или отказывается от вас как от клиента. Это заново соединяет цепочку удаления, ради разрыва которой и выбирают офшорный хостинг. Для контента, привлекающего жалобы, лучшая схема — прямой хостинг в осознанно выбранной юрисдикции с сетевой фильтрацией от DDoS, которая уже входит в сервер.

03 Достаточно ли защиты от DDoS на уровне 3/4 самой по себе?

Для объёмных атак — тех, что забивают ваш канал, — да, и это единственный уровень защиты, который вообще может помочь, потому что он работает до того, как трафик доходит до вас. Он включён в каждый тариф с безлимитным трафиком, так что атака не обернётся ещё и счётом. Чего он не решает — это флуда уровня 7 из корректно оформленных запросов. Если один запрос к вашему приложению может вызвать сканирование базы данных или изменение размера изображения, риск именно там, и ответ — кеширование, ограничение частоты запросов и WAF, а не пакетная фильтрация.

04 Как находят исходный IP-адрес за CDN?

Почти всегда это один из шести путей: журналы Certificate Transparency, раскрывающие непроксированные поддомены; архивы passive-DNS, хранящие адрес, который домен использовал до переезда; записи, которые нельзя проксировать, например почтовые серверы; исходящие соединения от самого сервера, включая заголовки собственных писем; сканирование всего интернета, сопоставляющее источник по сертификату или содержимому страницы; и само приложение, раскрывающее свой адрес через редиректы, эндпоинты статуса или виртуальный хост по умолчанию. Ни один из этих способов не требует особых навыков.

05 Можно ли использовать CDN и сохранить анонимность?

Только если аккаунт настолько же анонимен, как и сервер, а это бывает редко. Аккаунт CDN содержит адрес электронной почты, способ оплаты и часто номер телефона, привязанные к вашему домену и хранящиеся бессрочно компанией, которая отвечает на правовые запросы. Если вы оплатили сервер в Monero без документов, удостоверяющих личность, а затем открыли аккаунт CDN с личной картой, теперь именно этот аккаунт — самая надёжная идентификационная запись во всей схеме. Либо держите фронт под собственным контролем, либо сделайте аккаунт таким же одноразовым, как и всё остальное.

06 Нужно ли всё это для небольшого сайта?

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

07 Должен ли почтовый сервер работать на том же IP, что и сайт?

Нет, и это один из самых распространённых способов раскрытия источника. Почта должна быть доступна по адресу, который нельзя проксировать, и каждое отправленное письмо несёт этот адрес в заголовках. Работа почты на отдельной машине не даёт веб-источнику попасть ни в одно отправленное письмо и ни в одну DNS-запись, которую можно запросить. Это также не позволяет проблеме с репутацией почты превратиться в проблему сайта.

08 Мой исходный IP уже утёк — что делать?

Считайте адрес постоянно публичным, потому что архивы passive-DNS и сканеров сохраняют его навсегда. Сначала закройте утечку — будь то непроксированная запись, путь через электронную почту или виртуальный хост по умолчанию, — затем переходите на новый адрес и переключайтесь с заранее подготовленным коротким TTL DNS-записи. Не оставляйте старый сервер отвечающим на старом адресе с тем же содержимым. Поскольку ничто в исходном сервере не было привязано к личности, его замена — обычное развёртывание, а не переговоры с кем-либо.

Поставьте нужный уровень защиты перед нужным сервером

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

Тарифы VPS DMCA игнорируется Офшорный хостинг