Камуфляж 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 минут:
- Streaming API probes — 2-5 запросов к Disney+/Netflix/HBO/Hulu/Apple TV+/Spotify
- CDN chunk downloads — частичные скачивания с jsdelivr/cloudflare CDN (имитация видеочанков)
- Общий веб-трафик — 1-3 случайных URL из списка 40 популярных сайтов
- DNS запросы — 3-5 резолвов стриминг-доменов (disneyplus.com, netflix.com, akamaized.net...)
- Большие скачивания — ~20% вероятность скачать 5-15 MB (имитация cache warming)
- 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¶
- Устанавливает nginx, certbot, curl, wget, dnsutils
- Создаёт
/var/www/camouflage/с 10 HTML-файлами - Конфигурирует nginx на
:80(камуфляжный сайт + fake API) - Открывает порт 80 в nftables input chain
- Деплоит noise-скрипт + cron каждые 15 мин
- Настраивает 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 серверы — архитектура