Device Guard
Детектор шеринга подписок. HWID-лимит панели держит честных пользователей — устройство сверх лимита просто не подключится. Device Guard ловит тех, кто делится в обход: раз в 20 минут он собирает онлайн-IP каждой подписки по всем нодам и сравнивает их число с лимитом устройств тарифа.
Как работает скан
Фоновая задача device_guard_scan запускается каждые 20 минут и:
- Берёт все ноды со статусом ONLINE и через ip-control API панели запрашивает по каждой список «пользователь → онлайн-IP» (панель считает это фоновой джобой; результат опрашивается до 10 раз с паузой 2 секунды).
- Агрегирует уникальные IP по каждой подписке суммарно по всем нодам.
- Сравнивает с лимитом:
device_limitтарифа подписки, а если у тарифа лимита нет — значениеDEVICE_GUARD_MAX_IPS(0 — такие подписки не проверяются). К лимиту добавляется допускDEVICE_GUARD_TOLERANCE. - По каждому нарушению применяет настроенное действие и шлёт алерт в отчётный топик «alerts»: номер подписки, клиент, тариф, лимит, список IP (до 10) и применённое действие.
Недоступная нода просто пропускается — скан продолжает по остальным. Один и тот же нарушитель не заспамит топик: алерт по подписке уходит не чаще раза в сутки (Redis-кулдаун).
Три режима реакции
DEVICE_GUARD_ACTION | Что происходит |
|---|---|
alert (по умолчанию) | Только алерт админам — вы смотрите и решаете сами |
drop | Алерт + принудительный разрыв живых соединений подписки на панели |
disable | Алерт + отключение panel-юзера; подписка переводится в статус disabled, клиенту в личку уходит «⚠️ Подписка приостановлена: замечено одновременное использование на слишком многих устройствах» |
Если действие drop/disable не удалось выполнить на панели (панель недоступна, юзер не найден), нарушение фиксируется как alert — вы всё равно узнаете о нём из топика.
Настройки
Категория «Безопасность» в настройках кабинета:
| Параметр | По умолчанию | Что это |
|---|---|---|
DEVICE_GUARD_ENABLED | выкл | Включить скан |
DEVICE_GUARD_MAX_IPS | 0 | Лимит IP для подписок без лимита устройств в тарифе; 0 — такие не проверять |
DEVICE_GUARD_TOLERANCE | 1 | Запас сверх лимита, прежде чем считать шерингом |
DEVICE_GUARD_ACTION | alert | Реакция: alert / drop / disable |
Зачем нужен допуск
Один человек легально даёт больше одного IP: телефон переключился с Wi-Fi на LTE, CGNAT у оператора, ноутбук + телефон в разных сетях. Допуск 1 съедает этот шум. Ужесточайте только если уверены в аудитории.
Начинайте с alert
Включайте Guard в режиме alert и неделю смотрите на алерты: сколько срабатываний, похожи ли они на реальный шеринг. Переходить на drop/disable стоит только после того, как поймёте картину — автоматическое отключение честного клиента дороже, чем один шерящий.
