Ты приходишь на секретную конспиративную квартиру, спрятанную в обычном спальном районе. На двери висит фальшивая табличка районной библиотеки, в окнах горит приглушенный желтый свет, а на подоконнике аккуратно расставлены тома энциклопедий. Со стороны улицы идеальная картина: тихое учреждение культуры, никаких вопросов.
Но в полночь к парадной бесшумно подходит патрульный в штатском. Он не ломает замок плечом и не светит фонарем в окна. Он просто подходит к двери и стучит условным сигналом водопроводчика. Затем дергает ручку три раза с интервалом в полторы секунды, делает шаг назад и тихо шепчет в замочную скважину цитату из технического регламента газовой службы. Обычный библиотекарь либо промолчит, либо вызовет полицию, либо испуганно спросит: «Кто там?». Но если из-за двери через расчетные пятьдесят миллисекунд раздастся металлический щелчок специального электронного реле, патрульный достанет рацию. Камуфляж раскрыт. Квартира не библиотека. Это подпольный радиоузел, который выдал себя нестандартной реакцией на провокационный стук.
Именно так работает Active Probing (активное зондирование) современных цензурных комплексов и систем DPI. Противник больше не сидит в засаде, пассивно слушая трафик через зеркало портов. Как только твой зашифрованный туннель VLESS или REALITY устанавливает контакт с удаленной нодой, цензор инициирует серию синтетических контрольных подключений к твоему серверу. Если стек ведет себя хоть на йоту не так, как заявленный белый сайт-прикрытие, IP-адрес отправляется в пожизненный бан.
Внимание. Если ваш предел понимания сетевой безопасности ограничивается скачиванием готового бесплатного конфига из Telegram-канала и нажатием большой круглой кнопки Connect — закройте страницу. Возвращайтесь к чтению глянцевых обзоров на платные VPN.
Но если вы настраивали ядро Linux через sysctl, разбирали аномалии TCP Window Size в дампе Wireshark, видели, как цензор эмулирует испорченные пакеты TLS 1.3 ClientHello, и хотите намертво замуровать свою ноду от сканеров ТСПУ — берите паяльник. Ниже начинается чистая сетевая инженерия.
Механика активного зондирования: от пассивного сниффинга к атаке в лоб
Эпоха, когда DPI просто смотрел на SNI (Server Name Indication) в открытом виде или триггерился на сигнатуры заголовков OpenVPN/WireGuard, осталась позади. Современные комплексы ТСПУ работают по гибридной двухфазной модели:
[Клиент] ────────── (VLESS-REALITY сессия) ──────────> [Сервер (Шлюз)]
│
[ТСПУ / Пассивный сенсор]
(Обнаружил длинную сессию)
│ (Срабатывает триггер эвристики)
▼
[Кластер активных зондов]
│
┌───────────────────────┴───────────────────────┐
▼ ▼
[Тест 1: Replay Attack] [Тест 2: Malformed Handshake]
(Повтор сырого ClientHello) (Запрос с битыми расширениями)
│ │
▼ ▼
[Сверка ответа ноды с эталонным сервером маскировки (dest)]
Фаза 1: Селекция цели пассивным анализатором
Сенсор на магистрали отслеживает непрерывный поток данных:
- Фиксируется соединение по протоколу TCP/443 к внешнему зарубежному IP-адресу, не входящему в пулы крупных CDN.
- Пакет
ClientHelloвыглядит чисто: в нем прописан легитимный домен маскировки (например,gateway.icloud.comили крупный финансовый портал).
- Однако объем переданных данных, энтропия шифрованного потока и длительность удержания сессии не соответствуют типичному серфингу по веб-страницам. В очередь задач планировщика зондов мгновенно падает задание на верификацию целевого IP.
Фаза 2: Сканирование зондами (Probing Vectors)
В течение пары минут с пула адресов, принадлежащих локальным узлам оператора или арендованным сканерам, к целевому серверу прилетает серия специализированных пакетов:
- Атака повтором рукопожатия (Handshake Replay).
- Зонд отправляет на порт 443 точную копию первого пакета
ClientHello, который десять секунд назад отправил реальный клиент. Если сервер использует примитивные реализации прокси без защиты от повторов, он попытается обработать пакет или сбросит соединение с задержкой, отличной от поведения стандартного веб-сервера NGINX/Apache. - Зондирование искаженными заголовками (Malformed TLS Frames).
- Зонд стучится с пакетом TLS 1.3, где намеренно повреждено поле длины расширений (Extension Length), подставлены несуществующие Cipher Suites или вырезан заголовок SNI.
- Реальный NGINX на легитимном сервере немедленно возвращает фатальный алерт
TLS Alert: Decode Error (50)илиUnrecognized Name (112)и отправляет пакет с флагомTCP FIN/ACK.
- Самописный или сырой прокси-демон часто молча закрывает сокет через
TCP RSTлибо зависает по тайм-ауту (Keep-Alive Hang). Эта разница во времени и типах пакетов отсечки регистрируется анализатором с точностью до миллисекунд.
- Рассинхронизация стека TCP/IP (SYN-Packet Fingerprinting).
- Зонд отправляет
TCP SYNс нестандартным размером окна (TCP Window Size), специфическими опциями TCP SACK и необычным значением MSS. Если реальный сайт маскировки физически расположен на сервере под управлением FreeBSD или проприетарной ОС маршрутизатора CDN, а твой прокси-сервер развернут на стандартном ядре Ubuntu 24.04, возвращаемый пакетSYN-ACKвыдает подмену: значения TTL, масштабирования окна и порядок опций TCP различаются кардинально.
Архитектурный пробой: почему обычный REALITY дает осечку
Технология REALITY проектировалась как идеальный щит: если входящее соединение не содержит правильного криптографического ключа авторизации (Short ID / Public Key), сервер перенаправляет сырой поток байтов на реальный белый сайт (dest).
Но в коде конфигурации администраторы допускают три критические ошибки:
- Логистический пинг-разрыв (Latency Gap).
- Твой VPS арендован в Франкфурте, а в качестве
destуказан сервер компании, физически находящийся в Калифорнии. Когда зонд ТСПУ стучится на твой IP, запрос идет до Франкфурта (например, 40 мс), затем твой сервер пересылает запрос через Атлантику в Калифорнию и обратно (+140 мс). Время ответа на проверочный пакет взлетает до 180 мс. При прямом запросе цензора к настоящему сайту время ответа составляет 100 мс. Алгоритм фиксирует временную аномалию (RTT Anomaly), вычисляя наличие скрытого проксирующего колена.
- Несовпадение отпечатков сертификатов в цепочке ALPN.
- Если целевой домен маскировки поддерживает протокол
h2(HTTP/2) иh3(QUIC), а конфигурация ядра Xray собрана с принудительным ограничением наhttp/1.1, зонд получает несоответствие переговорного протокола ALPN заявленным возможностям белого домена.
- Утечка портов через сканирование смежных сервисов.
- Администратор прячет порт 443, но оставляет открытым порт 22 (SSH) со стандартным приветствием
OpenSSH_9.6p1 Ubuntu. Сканер ТСПУ делает пробив соседних портов: если на узле обнаружен стандартный Linux-сервер, вероятность того, что на 443 порту живет публичный портал корпорации Apple или Microsoft, падает до нуля.
Инженерный протокол защиты: глухая круговая оборона узла
Чтобы свести шансы активного зондирования к нулю, нода обязана быть неотличима от эталонного веб-сервера как на прикладном уровне (TLS), так и на уровне транспортных протоколов ядра (Layer 4).
- Синхронизация RTT и локации целевого узла маскировки (dest).
- Адрес маскировки подбирается строго в пределах той же автономной системы (ASN) или того же географического региона, где физически стоит ваш сервер:
- Bash
# Проверка времени отклика до сервера маскировки с хоста # Значение RTT не должно превышать 3-5 мс ping -c 4 target-server.com traceroute target-server.com
- Целевой сайт обязан поддерживать TLS 1.3, протокол HTTP/2 и отдавать идентичный набор Cipher Suites.
- Паранойя параметров ядра: маскировка TCP-стека.
- В файле
/etc/sysctl.d/99-network-hardening.confпереписываются параметры обработки сетевого стека, чтобы сбить профилирование сканеров:
- Ini, TOML
# Защита от SYN-флуда и зондирования неполными рукопожатиями net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_max_syn_backlog = 4096 # Запрет утечки временных меток и отключение маршрутизации от источника net.ipv4.tcp_timestamps = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # Игнорирование фиктивных ICMP-ошибок net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 # Выравнивание TCP Window Scaling под профиль крупных CDN net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rmem = 4096 87380 6291456 net.ipv4.tcp_wmem = 4096 16384 4194304
- Применение директив без перезагрузки:
sysctl --system.
- Фильтрация сканеров через iptables по белому списку сетевых портов.
- Удаляется любая видимость сторонних служб. Стандартный порт SSH переносится в закрытый диапазон, а доступ к нему наглухо закрывается для всех внешних адресов, кроме вашей доверенной подсети или туннельного интерфейса управления:
- Bash
# Сброс нелегитимных пакетов с аномальными комбинациями флагов iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP # Защита от зондирования нулевым размером окна MSS iptables -A INPUT -p tcp -m tcpmss --mss 1:500 -j DROP # Доступ к SSH разрешен исключительно с внутреннего VPN-интерфейса wg0 iptables -A INPUT -i eth0 -p tcp --dport 22 -j DROP iptables -A INPUT -i wg0 -p tcp --dport 22 -j ACCEPT
- Обязательная настройка Fallback в конфигурации Xray/Sing-box.
- В конфигурационном блоке
streamSettingsдля REALITY директивы перенаправления должны вести на реально существующий хост, полностью прозрачно отрабатывая любые битые запросы:
- JSON
"realitySettings": {
"show": false,
"dest": "cdn-edge-node.net:443",
"xver": 0,
"serverNames": [
"cdn-edge-node.net"
],
"privateKey": "ВШ_ПРИВАТНЫЙ_КЛЮЧ_ГЕНЕРАЦИИ",
"shortIds": [
"a1b2c3d4",
"e5f60718"
]
}
- Параметр
xver: 0исключает передачу заголовков PROXY-протокола, если целевой сервер маскировки не ожидает их приема, предотвращая мгновенный сброс сессии с ошибкойBad Request.
Борьба с сетевой цензурой давно перестала быть соревнованием алгоритмов шифрования. Криптография в туннелях безупречна: математику нельзя взломать перебором на лету. Война сместилась в плоскость микроповедения, таймингов и физики распространения сигналов. Твой сервер остается живым ровно до тех пор, пока он реагирует на мир точно так же, как гигантский белый дата-центр за углом. Прояви малейшую индивидуальность в ответах на провокации зондов — и твой приватный коридор схлопнется до следующей смены адреса.