Перейти к содержанию

Камуфляж WL-серверов (mir-vokrug.stream)

Камуфляжная система маскирует WL proxy серверы VK Cloud под легитимный стриминговый relay-сервис «Мир Вокруг». Цель — чтобы хостер и внешний наблюдатель видели нормальный веб-сервер с сайтом и разнообразным трафиком, а не голый VPN-прокси.


Зачем

VK Cloud может детектить VPN-прокси по признакам:

  • 100% трафика = TLS forwarding к иностранным IP
  • Нет легитимных сервисов на сервере
  • Нет HTTP-сайта, нет DNS-запросов, нет разнообразного трафика
  • Паттерн множества одновременных TLS-сессий с DNAT наружу

Камуфляж решает это: сервер выглядит как нода стриминг-relay, который проксирует видеотрафик к Disney+/Netflix/HBO. Это объясняет большой объём TLS-трафика, подключения из РФ к зарубежным серверам и множество одновременных сессий.


Что развёрнуто

Компонент Описание
Сайт «Мир Вокруг» 10 HTML-страниц: главная, каталог (12 платформ), тарифы, FAQ, поддержка, логин, ЛК (dashboard), настройки, биллинг
Fake API /api/health, /api/status, /api/relay/regions, /api/auth (POST → 401)
Noise генератор Cron каждые 15 мин: пробы к Disney+/Netflix/HBO, CDN chunk downloads, DNS запросы к стриминг-доменам
Per-node регион Каждый сервер показывает свой регион в API и dashboard

Страницы сайта

URL Описание
/ Главная — «Стриминг без границ», каталог платформ, how it works, статус
/catalog.html Каталог: Disney+, Netflix, HBO Max, Hulu, Apple TV+, Spotify и ещё 6
/pricing.html Тарифы: Basic $4, Premium $8, Family $14
/faq.html 8 вопросов: что такое, чем отличается от VPN, устройства, качество
/contact.html Email + Telegram поддержка
/login.html Форма входа с JS-анимацией, ~30% → dashboard, ~70% → ошибка
/dashboard.html ЛК: трафик 14.2 GB, 3 streams, relay endpoint, access token, график
/settings.html Профиль, пароль, регион, качество, split routing, danger zone
/billing.html Premium $8/мо, Visa •••4242, история платежей

Домен и DNS

Домен: mir-vokrug.stream

Запись Тип Значение Сервер
@ A 212.233.123.88 vk-01 (DE)
www A 212.233.123.88 vk-01 (DE)
de A 212.233.123.88 vk-01 (DE)
nl A 90.156.214.48 vk-02 (NL)
gb A 90.156.213.143 vk-03 (GB)
fr A 83.166.239.199 vk-04 (FR)
ch A 83.166.238.168 vk-05 (CH)
es A 83.166.235.99 vk-06 (ES)
il A 90.156.218.106 vk-07 (IL)
kz A 90.156.219.233 vk-08 (KZ)
us A 90.156.218.103 vk-09 (US)

Noise генератор

Скрипт /usr/local/bin/traffic-noise.sh запускается cron каждые 15 минут:

  1. Streaming API probes — 2-5 запросов к Disney+/Netflix/HBO/Hulu/Apple TV+/Spotify
  2. CDN chunk downloads — частичные скачивания с jsdelivr/cloudflare CDN (имитация видеочанков)
  3. Общий веб-трафик — 1-3 случайных URL из списка 40 популярных сайтов
  4. DNS запросы — 3-5 резолвов стриминг-доменов (disneyplus.com, netflix.com, akamaized.net...)
  5. Большие скачивания — ~20% вероятность скачать 5-15 MB (имитация cache warming)
  6. HTTPS мониторинг — пробы к httpbin.org/ifconfig.me

Логи: /var/log/traffic-noise.log, ротация weekly, 2 файла, max 10 MB.


Ansible

Роль

ansible/shiva-ansible/roles/wl-camouflage/
├── defaults/main.yml
├── handlers/main.yml
├── tasks/main.yml
├── files/noise-urls.txt
└── templates/
    ├── nginx-camouflage.conf.j2
    ├── site-streaming.html.j2
    ├── style-streaming.css.j2
    ├── catalog.html.j2
    ├── pricing.html.j2
    ├── faq.html.j2
    ├── contact-streaming.html.j2
    ├── login.html.j2
    ├── dashboard.html.j2
    ├── settings.html.j2
    ├── billing.html.j2
    ├── sitemap.xml.j2
    └── traffic-noise.sh.j2

Деплой

cd ansible/shiva-ansible

# Все серверы
ansible-playbook -i inventory/servers.ini playbooks/wl-camouflage.yml

# Один сервер
ansible-playbook -i inventory/servers.ini playbooks/wl-camouflage.yml --limit whitelist-vk-01

Что делает playbook

  1. Устанавливает nginx, certbot, curl, wget, dnsutils
  2. Создаёт /var/www/camouflage/ с 10 HTML-файлами
  3. Конфигурирует nginx на :80 (камуфляжный сайт + fake API)
  4. Открывает порт 80 в nftables input chain
  5. Деплоит noise-скрипт + cron каждые 15 мин
  6. Настраивает logrotate

Безопасность

  • Не трогает nftables DNAT — VPN forwarding остаётся как было
  • Не трогает порт 443 — nginx только на :80
  • Идемпотентно — повторный запуск безопасен

Проверка

# HTTP сайт
curl -s http://de.mir-vokrug.stream/ | grep '<title>'
# → <title>Мир Вокруг — Стриминг без границ</title>

# API health
curl -s http://de.mir-vokrug.stream/api/health
# → {"status":"ok","service":"mir-vokrug","node":"de","region":"Germany",...}

# API status
curl -s http://de.mir-vokrug.stream/api/status
# → {"node":"de","region":"Germany","status":"operational","active_streams":...}

# Login (POST)
curl -s -X POST http://de.mir-vokrug.stream/api/auth
# → {"error":"invalid_credentials","message":"Неверный email или пароль"}

# Noise работает
ssh root@212.233.123.88 "crontab -l | grep noise"
# → */15 * * * * /usr/local/bin/traffic-noise.sh >> /var/log/traffic-noise.log 2>&1

# Noise лог
ssh root@212.233.123.88 "tail -5 /var/log/traffic-noise.log"

TODO

  • Let's Encrypt сертификаты после DNS пропагации
  • Мониторинг — alerting если сайт перестал отвечать
  • Периодическое обновление контента (новые "платформы", даты)

Дата: 29 Mar 2026 См. также: Whitelist серверы — архитектура