mirror of
https://github.com/DanielLavrushin/b4.git
synced 2026-04-28 11:30:39 +00:00
Add Russian documentation for UDP handling, backup settings, core settings, discovery settings, geodata, payloads, security, and domain monitoring
- Created UDP documentation detailing traffic handling and filtering options. - Added backup settings documentation for configuration backup and restoration. - Introduced core settings documentation covering service management, packet processing, and logging. - Added discovery settings documentation for automatic configuration detection. - Created geodata documentation explaining GeoSite and GeoIP databases and their usage. - Added payloads documentation for generating and managing TLS payloads for faking. - Introduced security documentation for web interface authorization and HTTPS setup. - Added domain monitoring documentation for automatic detection of blocked domains and recovery processes. - Created footer and navbar localization files for Russian language support.
This commit is contained in:
parent
1df5909e62
commit
ef8bedd247
79 changed files with 3545 additions and 3133 deletions
|
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
sidebar_position: 7
|
||||
title: Бэкап
|
||||
---
|
||||
|
||||
# Бэкап
|
||||
|
||||
## Скачать резервную копию
|
||||
|
||||
Кнопка **Скачать** создаёт архив `.tar.gz` со всей конфигурацией b4. В архив входит содержимое директории конфигурации, кроме файлов `.dat` (GeoSite/GeoIP) и базы OUI (vendor lookup).
|
||||
|
||||

|
||||
|
||||
## Восстановить из копии
|
||||
|
||||
1. Нажмите **Загрузить** и выберите ранее скачанный `.tar.gz`
|
||||
2. Файлы конфигурации будут заменены на содержимое архива
|
||||
3. После восстановления будет предложено перезапустить сервис
|
||||
|
||||
:::warning
|
||||
Восстановление полностью заменяет текущую конфигурацию. Если нужно сохранить текущие настройки - сначала скачайте резервную копию.
|
||||
:::
|
||||
|
|
@ -0,0 +1,239 @@
|
|||
---
|
||||
sidebar_position: 1
|
||||
title: Основные
|
||||
---
|
||||
|
||||
# Основные настройки
|
||||
|
||||
Все изменения на этой вкладке требуют перезапуска сервиса (кроме языка интерфейса).
|
||||
|
||||
## Управление
|
||||
|
||||
Кнопки в верхней части настроек:
|
||||
|
||||
- **Перезапустить сервис** - перезапуск b4 (ожидаемое время простоя: 5–10 секунд)
|
||||
|
||||
:::warning Сброс конфигурации
|
||||
При сбросе конфигурации сохраняются: домены, категории GeoSite/GeoIP и настройки тестирования. Всё остальное (сеть, обход DPI, протоколы, логирование) сбрасывается.
|
||||
:::
|
||||
|
||||

|
||||
|
||||
## Очередь и обработка пакетов
|
||||
|
||||
Настройки ядра обработки пакетов через netfilter.
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | Диапазон | По умолчанию |
|
||||
| --- | --- | --- | --- |
|
||||
| Начальный номер очереди | Номер NFQUEUE. Изменяйте, если другие программы используют те же номера | 0–65535 | `537` |
|
||||
| Метка пакета | Метка netfilter для правил iptables/nftables. b4 использует её для маркировки обработанных пакетов | - | `32768` |
|
||||
| Рабочие потоки | Количество параллельных воркеров. Больше потоков = выше пропускная способность на многоядерных системах | 1–16 | `4` |
|
||||
| Лимит TCP пакетов соединения | Сколько TCP-пакетов на соединение анализировать. Сеты не могут превышать это значение | 1–100 | `19` |
|
||||
| Лимит UDP пакетов соединения | Сколько UDP-пакетов на соединение анализировать. Сеты не могут превышать это значение | 1–30 | `8` |
|
||||
|
||||
:::tip Лимиты пакетов
|
||||
Эти лимиты - глобальный потолок. В каждом сете можно установить свой лимит, но он не может быть выше глобального. Увеличение значения даёт b4 больше времени на анализ, но повышает нагрузку.
|
||||
:::
|
||||
|
||||
## Функции
|
||||
|
||||
### Протоколы
|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Поддержка IPv4 | Обработка IPv4-трафика | Вкл |
|
||||
| Поддержка IPv6 | Обработка IPv6-трафика | Выкл |
|
||||
|
||||
### Фаервол
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Пропустить настройку IPTables/NFTables | b4 не будет создавать правила firewall. Используйте, если настраиваете правила вручную | Выкл |
|
||||
| Интервал мониторинга фаервола | Как часто проверять и восстанавливать правила (сек). Если правила удаляются внешними программами, b4 восстановит их | `10` |
|
||||
| Движок фаервола | Какой backend использовать для правил | Автоопределение |
|
||||
| NAT Masquerade | Включить NAT-маскарад. Нужен для контейнеров и шлюзов, где b4 перенаправляет трафик | Выкл |
|
||||
| Интерфейс Masquerade | На каком интерфейсе применять маскарад. Появляется при включении NAT Masquerade | Все |
|
||||
|
||||
:::warning Интервал мониторинга
|
||||
Значение 0 полностью отключает мониторинг правил. Если внешняя программа или скрипт удалит правила b4 - они не будут восстановлены.
|
||||
:::
|
||||
|
||||
Движок фаервола - выбор из:
|
||||
|
||||
| Значение | Описание |
|
||||
| --- | --- |
|
||||
| Автоопределение | b4 сам определит доступный backend (рекомендуется) |
|
||||
| nftables | Использовать nftables |
|
||||
| iptables | Использовать iptables |
|
||||
| iptables-legacy | Использовать iptables-legacy (для старых систем) |
|
||||
|
||||
### Сетевые интерфейсы
|
||||
|
||||
Выбор интерфейсов для мониторинга. Интерфейсы отображаются как кликабельные метки - нажмите, чтобы включить/выключить.
|
||||
|
||||
:::info
|
||||
Если не выбран ни один интерфейс - b4 слушает все доступные.
|
||||
:::
|
||||
|
||||
## Настройки логирования
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Уровень логирования | Детализация логов | INFO |
|
||||
| Путь к файлу ошибок | Записывать ошибки в файл | `/var/log/b4/errors.log` |
|
||||
| Часовой пояс | Часовой пояс для временных меток | Системный (авто) |
|
||||
| Мгновенный сброс | Сбрасывать буфер после каждой записи. Может влиять на производительность | Вкл |
|
||||
| Syslog | Дублировать логи в системный syslog | Выкл |
|
||||
|
||||
Уровни логирования:
|
||||
|
||||
| Уровень | Что отображается |
|
||||
| --- | --- |
|
||||
| Ошибка | Только ошибки |
|
||||
| Инфо | Ошибки + основные события |
|
||||
| Трассировка | Инфо + детали обработки пакетов |
|
||||
| Отладка | Всё, включая отладочную информацию |
|
||||
|
||||
:::warning Уровень Ошибка
|
||||
При уровне **Ошибка** разделы **Логи** и **Соединения** в веб-интерфейсе не будут показывать данные - они получают информацию из потока логов, который при этом уровне практически пуст.
|
||||
:::
|
||||
|
||||
:::info Файл ошибок
|
||||
b4 не ведёт постоянный лог-файл - всё выводится в stdout/stderr (и перехватывается веб-интерфейсом через WebSocket). В файл `errors.log` записываются только критические ошибки и аварийные завершения.
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Для диагностики проблем используйте **Трассировка** или **Отладка**. Для обычной работы достаточно **Инфо**.
|
||||
:::
|
||||
|
||||
## Веб-сервер
|
||||
|
||||
Настройки веб-интерфейса b4.
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Адрес привязки | IP для прослушивания. `0.0.0.0` = все интерфейсы, `127.0.0.1` = только localhost, `::` = все IPv6 | `0.0.0.0` |
|
||||
| Порт | Порт веб-интерфейса | `7000` |
|
||||
| TLS Сертификат | Путь к файлу сертификата `.crt` или `.pem` (пусто = HTTP) | - |
|
||||
| TLS Ключ | Путь к файлу ключа `.key` или `.pem` (пусто = HTTP) | - |
|
||||
| Язык | Язык интерфейса: English / Русский | English |
|
||||
|
||||
### Авторизация
|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Имя пользователя | Логин для входа в веб-интерфейс | - |
|
||||
| Пароль | Пароль для входа | - |
|
||||
|
||||
:::warning Частичная авторизация
|
||||
Авторизация работает только когда заполнены **оба** поля. Если указано только имя пользователя или только пароль - авторизация не включится.
|
||||
:::
|
||||
|
||||
:::warning HTTP + авторизация
|
||||
Если авторизация включена, но TLS не настроен - логин и пароль передаются по незашифрованному HTTP. Настройте TLS-сертификаты для безопасной передачи. Подробнее - в разделе [Безопасность](./security).
|
||||
:::
|
||||
|
||||
## SOCKS5 Прокси
|
||||
|
||||
Встроенный SOCKS5-прокси. Приложения могут направлять через него трафик - он будет обработан b4 с применением настроенных сетов.
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Включить | Запустить SOCKS5-сервер | Выкл |
|
||||
| Адрес привязки | IP для прослушивания. `0.0.0.0` = все, `127.0.0.1` = только localhost | `0.0.0.0` |
|
||||
| Порт | Порт прокси | `1080` |
|
||||
| Имя пользователя | Логин для SOCKS5-авторизации (пусто = без авторизации) | - |
|
||||
| Пароль | Пароль для SOCKS5-авторизации (пусто = без авторизации) | - |
|
||||
|
||||
Все поля кроме «Включить» становятся доступны только после включения прокси.
|
||||
|
||||
:::info
|
||||
Изменения настроек SOCKS5 требуют перезапуска сервиса.
|
||||
:::
|
||||
|
||||
## MTProto Прокси
|
||||
|
||||
Встроенный Telegram MTProto-прокси с fake-TLS обфускацией. Трафик Telegram оборачивается в TLS-соединение, маскируясь под обычный HTTPS-трафик. Подробное руководство по настройке - в разделе [MTProto Прокси](../mtproto).
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Включить | Запустить MTProto-сервер | Выкл |
|
||||
| Адрес привязки | IP для прослушивания | `0.0.0.0` |
|
||||
| Порт | Порт прокси | `3128` |
|
||||
| Домен для Fake SNI | Домен, который будет виден в TLS-рукопожатии. DPI увидит этот домен вместо Telegram | `storage.googleapis.com` |
|
||||
| DC Relay | Адрес внешнего relay-сервера (host:port) для доступа к Telegram DC, если они заблокированы по IP | - |
|
||||
| Secret | Секрет для подключения клиента Telegram. Вставьте его в настройках прокси в Telegram | - |
|
||||
|
||||
Кнопка **Сгенерировать Secret** создаёт секрет на основе текущего домена Fake SNI.
|
||||
|
||||
:::info DC Relay
|
||||
DC Relay нужен, когда b4 установлен на роутере внутри страны с блокировкой, а IP-адреса серверов Telegram заблокированы. В этом случае нужен VPS за пределами блокировки, который будет relay-сервером.
|
||||
:::
|
||||
|
||||
:::info
|
||||
Изменения настроек MTProto требуют перезапуска сервиса.
|
||||
:::
|
||||
|
||||
## Глобальный MSS Clamping
|
||||
|
||||
Ограничение TCP Maximum Segment Size на SYN/SYN-ACK пакетах для трафика на порт 443. Уменьшает размер сегментов, что приводит к естественной фрагментации - DPI не может собрать фрагментированный ClientHello.
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | Диапазон | По умолчанию |
|
||||
| --- | --- | --- | --- |
|
||||
| Включить | Активировать глобальный MSS Clamping | - | Выкл |
|
||||
| Размер MSS | Размер MSS в байтах. Меньше значение = больше фрагментация | 10–1460 | `88` |
|
||||
|
||||
:::info Глобальный vs индивидуальный MSS
|
||||
Глобальный MSS Clamping применяется ко **всему** трафику на порт 443. Если нужно ограничить MSS только для конкретных устройств (например, телевизор с YouTube) - настройте MSS в столбце **MSS** в [таблице устройств](#фильтрация-устройств) ниже. Индивидуальный MSS работает независимо от глобального.
|
||||
:::
|
||||
|
||||
## Фильтрация устройств
|
||||
|
||||
Ограничение работы b4 трафиком от конкретных устройств в сети (по MAC-адресу). Полезно, если обход нужен не для всех устройств.
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | По умолчанию |
|
||||
| --- | --- | --- |
|
||||
| Включить | Активировать фильтрацию по устройствам | Выкл |
|
||||
| Определение производителя | Скачать базу vendor для определения производителя по MAC (~6 МБ) | Выкл |
|
||||
| Инвертировать выбор | Переключение между белым и чёрным списком | Выкл |
|
||||
|
||||
:::info Режимы фильтрации
|
||||
|
||||
- **Белый список** (по умолчанию) - обход DPI работает **только** для выбранных устройств
|
||||
- **Чёрный список** (инвертировать выбор) - выбранные устройства **исключаются** из обхода DPI
|
||||
|
||||
:::
|
||||
|
||||
### Таблица устройств
|
||||
|
||||
При включении фильтрации появляется таблица обнаруженных устройств:
|
||||
|
||||
| Столбец | Описание |
|
||||
| --- | --- |
|
||||
| Выбор | Чекбокс для включения/исключения устройства |
|
||||
| MAC | MAC-адрес |
|
||||
| IP | Текущий IP-адрес |
|
||||
| Имя | Псевдоним устройства (можно задать через иконку редактирования) или vendor |
|
||||
| MSS | Индивидуальный MSS Clamping для этого устройства (10–1460, пусто = выключен) |
|
||||
|
||||
Кнопка **Обновить** перезагружает список устройств из ARP-таблицы.
|
||||
|
||||
:::tip Индивидуальный MSS
|
||||
MSS Clamping можно настроить для каждого устройства отдельно - например, уменьшить MSS только для телевизора с YouTube, не затрагивая остальные устройства.
|
||||
:::
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
sidebar_position: 6
|
||||
title: Дискавери
|
||||
---
|
||||
|
||||
# Настройки дискавери
|
||||
|
||||
Параметры, влияющие на работу автоматического поиска конфигурации и детектора DPI. Настраиваются в **Настройки → Дискавери**.
|
||||
|
||||

|
||||
|
||||
## Параметры
|
||||
|
||||
| Параметр | Описание | Диапазон | По умолчанию |
|
||||
| --- | --- | --- | --- |
|
||||
| Таймаут поиска | Максимальное время ожидания ответа при проверке каждой стратегии | 3–30 сек | `5` сек |
|
||||
| Задержка распространения | Время ожидания после применения конфигурации перед тестированием. Нужно, чтобы правила успели активироваться | 500–5000 мс | `1500` мс |
|
||||
| Попыток валидации | Сколько раз стратегия должна сработать подряд, чтобы считаться рабочей. Больше = надёжнее, но дольше | 1–5 | `1` |
|
||||
| Эталонный домен | Домен, который заведомо доступен - используется как контрольный при проверке | - | `yandex.ru` |
|
||||
|
||||
## DNS-серверы
|
||||
|
||||
Список DNS-серверов, используемых при проверке DNS-блокировки. Дискавери сравнивает ответы от этих серверов с ответами провайдерского DNS, чтобы определить подмену.
|
||||
|
||||
По умолчанию:
|
||||
|
||||
| Сервер | Провайдер |
|
||||
| --- | --- |
|
||||
| `9.9.9.9` | Quad9 |
|
||||
| `1.1.1.1` | Cloudflare |
|
||||
| `8.8.8.8` | Google |
|
||||
| `9.9.1.1` | Quad9 (резерв) |
|
||||
| `8.8.4.4` | Google (резерв) |
|
||||
|
||||
Серверы можно добавлять и удалять через интерфейс.
|
||||
|
||||
:::tip Когда менять DNS-серверы
|
||||
Если провайдер блокирует обращения к публичным DNS (например, перехватывает трафик на порт 53), дискавери может давать ложные результаты по DNS. В таком случае добавьте DNS-серверы, доступные в вашей сети, или используйте опцию **Пропустить поиск DNS** при запуске дискавери.
|
||||
:::
|
||||
|
||||
:::info Эталонный домен
|
||||
Эталонный домен должен быть **незаблокированным** в вашей сети. Он используется для двух целей:
|
||||
|
||||
- Проверка базовой связности - если он недоступен, результаты дискавери будут некорректными
|
||||
- Измерение базовой скорости - скорость загрузки эталонного домена используется как точка отсчёта для сравнения стратегий между собой
|
||||
|
||||
:::
|
||||
|
||||
:::warning Скорость в результатах дискавери
|
||||
Скорость, которую показывает дискавери (например, «40 КБ/с»), - это **не реальная скорость** вашего соединения. При тестировании загружается очень маленький объём данных, недостаточный для точного измерения. Эти цифры нужны только для **сравнения стратегий между собой** - какая быстрее, какая медленнее. Не ориентируйтесь на абсолютные значения.
|
||||
:::
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
title: Геоданные
|
||||
---
|
||||
|
||||
# Геоданные
|
||||
|
||||
## Что такое GeoSite и GeoIP
|
||||
|
||||
**GeoSite** и **GeoIP** - это базы данных в формате [V2Ray](https://github.com/v2fly/v2ray-core), которые позволяют работать с целыми категориями сайтов и IP-адресов вместо того, чтобы добавлять их по одному.
|
||||
|
||||
- **GeoSite** (`sitedat.dat`) - файл с доменами, сгруппированными по категориям. Например, категория `youtube` содержит все домены, связанные с YouTube (youtube.com, googlevideo.com, ytimg.com и т.д.)
|
||||
- **GeoIP** (`ipdat.dat`) - файл с IP-диапазонами, сгруппированными по странам и ASN
|
||||
|
||||
:::info Зачем это нужно
|
||||
Вместо того, чтобы вручную добавлять десятки доменов YouTube или Discord, достаточно выбрать нужную категорию в настройках сета. При обновлении базы новые домены подхватываются автоматически.
|
||||
:::
|
||||
|
||||
## Источники
|
||||
|
||||
b4 поддерживает несколько предустановленных источников, а также позволяет указать свой URL.
|
||||
|
||||
| Источник | Что содержит | Ссылка |
|
||||
| --- | --- | --- |
|
||||
| **Loyalsoldier** | Глобальная база доменов и IP (Китай + мир) | [GitHub](https://github.com/Loyalsoldier/v2ray-rules-dat) |
|
||||
| **RUNET Freedom** | База, оптимизированная для российских блокировок | [GitHub](https://github.com/runetfreedom/russia-v2ray-rules-dat) |
|
||||
| **b4geoip** | Официальная GeoIP база b4 - IP-диапазоны по ASN (только GeoIP) | [GitHub](https://github.com/DanielLavrushin/b4geoip) |
|
||||
|
||||
:::tip Для российских пользователей
|
||||
Рекомендуется **RUNET Freedom** для GeoSite (домены) и **b4geoip** для GeoIP (IP-диапазоны).
|
||||
:::
|
||||
|
||||
### b4geoip
|
||||
|
||||
Официальная GeoIP база проекта b4. Собирается автоматически из данных [RIPE NCC](https://stat.ripe.net/) - реальные анонсированные IP-префиксы по ASN. Содержит категории для:
|
||||
|
||||
- **Облачные провайдеры** - AWS, Google Cloud, Azure, DigitalOcean, Hetzner, OVH, Scaleway, Oracle Cloud, Contabo, AEZA
|
||||
- **CDN** - Cloudflare, Akamai, Fastly, CDN77
|
||||
- **Игровые компании** - Roblox, Valve/Steam, Sony/PlayStation, Nintendo, EA, Riot Games, Ubisoft, Epic Games, Wargaming, Bungie, Take-Two, CCP
|
||||
- **Платформы** - Telegram, GitHub, Apple, Adobe, Amazon, Blizzard
|
||||
|
||||
В отличие от баз по странам, b4geoip группирует IP именно по сервисам - это позволяет точно маршрутизировать трафик конкретных платформ.
|
||||
|
||||
## Настройка
|
||||
|
||||
<!-- screenshot: секция геоданных с выбором источника и статусом -->
|
||||
|
||||
1. Перейдите в **Настройки → Geodat настройки**
|
||||
2. Укажите **Директорию назначения** - куда сохранять файлы (по умолчанию `/etc/b4`)
|
||||
3. Выберите **Источник** из выпадающего списка или укажите URL вручную
|
||||
4. Нажмите **Скачать**
|
||||
|
||||
Статус файла отображается рядом с названием:
|
||||
|
||||
- **Active** - файл найден, показывается размер и дата
|
||||
- **Not Found** - файл отсутствует, нужно скачать
|
||||
|
||||
Файлы можно также загрузить вручную через кнопку **Загрузить** (upload `.dat` файла).
|
||||
|
||||
:::warning Размер файлов
|
||||
Файлы GeoSite и GeoIP могут занимать 5–15 МБ каждый. На роутерах с ограниченной памятью убедитесь, что места достаточно.
|
||||
:::
|
||||
|
||||
## Использование в сетах
|
||||
|
||||
После загрузки баз категории становятся доступны в настройках сетов (вкладка **Цели**):
|
||||
|
||||
- **Категории GeoSite** - выбрать категории доменов для обхода
|
||||
- **Категории GeoIP** - выбрать категории IP для обхода
|
||||
|
||||
При выборе категории рядом отображается количество доменов/IP в ней. Можно нажать на категорию, чтобы просмотреть содержимое.
|
||||
|
||||
## Обновление
|
||||
|
||||
Базы обновляются вручную - зайдите в настройки и нажмите **Скачать** повторно. Перезапуск b4 после обновления не требуется - новые данные подхватываются автоматически.
|
||||
|
||||
## Инструменты
|
||||
|
||||
| Проект | Описание |
|
||||
| --- | --- |
|
||||
| [GeodatExplorer](https://github.com/DanielLavrushin/GeodatExplorer) | Веб-приложение для просмотра содержимого `.dat` файлов - категории, домены, IP-диапазоны. Помогает понять, что именно входит в базу, перед тем как использовать категорию в сете |
|
||||
| [v2dat](https://github.com/DanielLavrushin/v2dat) | CLI-утилита для распаковки `.dat` файлов V2Ray в текстовые списки. Полезно для скриптов и автоматизации |
|
||||
| [b4geoip](https://github.com/DanielLavrushin/b4geoip) | Официальная GeoIP база b4 (описана [выше](#b4geoip)) |
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
sidebar_position: 5
|
||||
title: Настройки
|
||||
---
|
||||
|
||||
# Настройки
|
||||
|
||||
Настройки b4 разделены на несколько вкладок:
|
||||
|
||||
- [Основные](./core) - сеть, очередь, функции, логирование, прокси, устройства
|
||||
- [Геоданные](./geodata) - базы GeoSite и GeoIP
|
||||
- [Безопасность](./security) - авторизация, HTTPS
|
||||
- [Пэйлоады](./payloads) - генерация и управление TLS-пэйлоадами для faking
|
||||
- [Дискавери](./discovery) - таймауты, DNS-серверы, эталонный домен
|
||||
- [Бэкап](./backup) - резервное копирование и восстановление
|
||||
|
||||
Изменения в настройках применяются после нажатия кнопки сохранения. Некоторые параметры (SOCKS5, MTProto, очередь) требуют перезапуска сервиса.
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
---
|
||||
sidebar_position: 4
|
||||
title: Пэйлоады
|
||||
---
|
||||
|
||||
# Пэйлоады
|
||||
|
||||

|
||||
|
||||
## Зачем нужны пэйлоады
|
||||
|
||||
Одна из стратегий обхода DPI - отправка **фейковых пакетов** (faking). b4 отправляет провайдеру поддельный пакет с подменёнными данными, а настоящий пакет отправляет так, чтобы DPI его не заметила. Для этого фейковый пакет должен содержать какие-то данные - это и есть **пэйлоад**.
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["Браузер отправляет\nзапрос к сайту"] --> B["b4 перехватывает"]
|
||||
B --> C["1. Отправляет фейковый пакет"]
|
||||
C --> D{"DPI провайдера"}
|
||||
D -->|"DPI видит фейк,\nсчитает соединение\nбезопасным"| E["Пакет умирает\nне дойдя до сайта\n(TTL истёк)"]
|
||||
B --> F["2. Отправляет настоящий пакет\n(фрагментирован)"]
|
||||
F --> D
|
||||
D -->|"DPI уже принял\nрешение по фейку,\nпропускает"| G["Сайт получает\nнастоящие данные"]
|
||||
|
||||
style B fill:#e91e63,color:#fff,stroke:none
|
||||
style D fill:#ff9800,color:#fff,stroke:none
|
||||
style E fill:#666,color:#fff,stroke:none
|
||||
style G fill:#4caf50,color:#fff,stroke:none
|
||||
style C fill:#2196f3,color:#fff,stroke:none
|
||||
style F fill:#4a9eff,color:#fff,stroke:none
|
||||
```
|
||||
|
||||
Фейковый пакет отправляется с **заниженным TTL** (время жизни). Он проходит через оборудование провайдера (DPI его видит и анализирует), но не доходит до настоящего сервера - пакет «умирает» по дороге. Сервер никогда не получает мусор, а DPI уже принял решение на основе фейка.
|
||||
|
||||
## Типы пэйлоадов
|
||||
|
||||
b4 поддерживает несколько типов содержимого для фейковых пакетов. Тип выбирается в настройках сета: **TCP → Faking → Тип пэйлоада**.
|
||||
|
||||
| Тип | Что содержит | Когда использовать |
|
||||
| --- | --- | --- |
|
||||
| **Random** | 1200 случайных байтов | По умолчанию. Работает у большинства провайдеров |
|
||||
| **Google ClientHello** | Готовый TLS ClientHello от имени Google | Если DPI пропускает трафик к Google |
|
||||
| **DuckDuckGo ClientHello** | Готовый TLS ClientHello от имени DuckDuckGo | Альтернатива Google |
|
||||
| **Captured Payload** | Сгенерированный или загруженный пэйлоад | Для продвинутой настройки (см. ниже) |
|
||||
| **Zeros** | 1200 нулевых байтов (0x00) | Минимальная нагрузка на процессор |
|
||||
| **Inverted** | Побитовая инверсия оригинального TLS-пакета | Выглядит как повреждённый пакет |
|
||||
|
||||
:::tip Какой выбрать
|
||||
Используйте тот тип, который предложил дискавери. Если настраиваете вручную - начните с **Random** и попробуйте другие варианты, если не сработает. Поведение DPI зависит от провайдера и может меняться со временем.
|
||||
:::
|
||||
|
||||
## Генерация пэйлоада (Captured Payload)
|
||||
|
||||
Сгенерированный пэйлоад - это **оптимизированный TLS ClientHello**, который выглядит как настоящее TLS-рукопожатие браузера. В отличие от случайных байтов, DPI распознаёт его как легитимный TLS и применяет другие правила обработки.
|
||||
|
||||
### Почему SNI-first
|
||||
|
||||
Российские DPI (ТСПУ) используют оптимизацию: если в TLS ClientHello расширение SNI стоит **первым**, система проверяет домен по белому списку и, если домен разрешён - пропускает соединение по ускоренному пути. b4 генерирует ClientHello именно так - SNI на первом месте - чтобы использовать эту особенность.
|
||||
|
||||
### Как сгенерировать
|
||||
|
||||
1. Введите домен в поле **Домен** (например, `youtube.com`)
|
||||
2. Нажмите **Сгенерировать**
|
||||
|
||||
b4 создаст ClientHello с реалистичным набором TLS-расширений и шифров, SNI на первом месте. Генерация мгновенная - реальное соединение с сайтом не устанавливается. Один домен - один пэйлоад. Повторная генерация не создаст дубликат.
|
||||
|
||||
### Загрузка своего пэйлоада
|
||||
|
||||
Если у вас есть бинарный файл (`.bin`, до 64 КБ):
|
||||
|
||||
1. Укажите **Имя/Домен** - идентификатор пэйлоада
|
||||
2. Нажмите **Выбрать файл** и выберите `.bin`
|
||||
3. Нажмите **Загрузить**
|
||||
|
||||
:::tip Имя из файла
|
||||
Если имя файла содержит домен (например, `tls_youtube_com.bin`), поле имени заполнится автоматически.
|
||||
:::
|
||||
|
||||
## Использование в сетах
|
||||
|
||||
После генерации пэйлоады становятся доступны в настройках сета:
|
||||
|
||||
1. Откройте сет → вкладка **TCP** → секция **Faking**
|
||||
2. В поле **Тип пэйлоада** выберите **Captured Payload**
|
||||
3. В появившемся списке выберите нужный пэйлоад по домену
|
||||
|
||||
## Использование в дискавери
|
||||
|
||||
При запуске дискавери можно указать пэйлоады в **Параметрах поиска → Пользовательские payloads**. Дискавери протестирует каждую стратегию с каждым из указанных пэйлоадов и выберет наиболее эффективную комбинацию.
|
||||
|
||||
:::info Когда это полезно
|
||||
Если стандартный дискавери (с Random-пэйлоадом) не находит рабочую конфигурацию - сгенерируйте пэйлоады для нескольких доменов и запустите дискавери с ними. Некоторые провайдеры реагируют на содержимое фейкового пакета, и реалистичный ClientHello может сработать там, где случайные байты не помогли.
|
||||
:::
|
||||
|
||||
## Управление
|
||||
|
||||
Каждый пэйлоад отображается как карточка с доменом, размером и датой создания.
|
||||
|
||||
| Действие | Описание |
|
||||
| --- | --- |
|
||||
| Просмотр hex | Показать содержимое в hex-формате, скопировать в буфер |
|
||||
| Скачать .bin | Скачать как бинарный файл |
|
||||
| Удалить | Удалить пэйлоад |
|
||||
| Очистить все | Удалить все пэйлоады (кнопка в заголовке) |
|
||||
|
||||
Пэйлоады хранятся в директории `captures/` внутри директории конфигурации b4 (обычно `/etc/b4/captures/`).
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
sidebar_position: 3
|
||||
title: Безопасность
|
||||
---
|
||||
|
||||
# Безопасность
|
||||
|
||||
## Авторизация
|
||||
|
||||
По умолчанию веб-интерфейс доступен без пароля. Для ограничения доступа задайте логин и пароль:
|
||||
|
||||
1. Перейдите в **Настройки → Основные → Веб-сервер**
|
||||
2. Заполните поля **Имя пользователя** и **Пароль**
|
||||
3. Сохраните настройки
|
||||
|
||||
После этого при открытии веб-интерфейса потребуется ввести учётные данные.
|
||||
|
||||
:::warning Доступ извне
|
||||
Если b4 доступен извне (например, на VPS), настройте авторизацию. Без неё любой, кто знает адрес и порт, получит полный доступ к управлению.
|
||||
:::
|
||||
|
||||
:::danger Авторизация без HTTPS
|
||||
Если авторизация включена, но HTTPS **не настроен** - логин и пароль передаются по сети **открытым текстом**. Любой, кто может перехватить трафик (например, в публичной Wi-Fi сети), увидит ваши учётные данные. Всегда включайте HTTPS вместе с авторизацией, особенно если b4 доступен не только из локальной сети.
|
||||
:::
|
||||
|
||||
## HTTPS
|
||||
|
||||
Для включения HTTPS:
|
||||
|
||||
1. Подготовьте файлы сертификата и ключа (`.crt`/`.pem` и `.key`/`.pem`)
|
||||
2. В настройках веб-сервера укажите пути к файлам:
|
||||
- **TLS Сертификат** - путь к файлу сертификата (`.crt` или `.pem`)
|
||||
- **TLS Ключ** - путь к файлу ключа (`.key` или `.pem`)
|
||||
3. Сохраните и перезапустите
|
||||
|
||||
Для самоподписанного сертификата (подходит для локальной сети):
|
||||
|
||||
```bash
|
||||
openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes -subj "/CN=b4"
|
||||
```
|
||||
|
||||
Скопируйте файлы в директорию конфигурации (например, `/etc/b4/`) и укажите пути в настройках.
|
||||
|
||||
После включения HTTPS веб-интерфейс будет доступен по `https://`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue