Rate limit · Bot detect · Geo

Архітектура
Множник burst (за замовчуванням 1,5×) дозволяє короткі піки — напр. ліміт 120 → стеля burst 180/хв.
Режими — Monitor vs Enforce
монітор
але пропускає запит
застосовувати
Сигнали виявлення ботів
Порожній User-Agent — блокує клієнтів, що не ідентифікують себе.
Відомі UA ботів — curl, wget, python-requests, go-http-client, bot, crawler, spider, scraper (без урахування регістру).
Відсутній Accept-Language — реальні браузери завжди надсилають; більшість скриптів — ні.
Відсутній Accept-Encoding — те саме.
Власний регулярний вираз блокування — напр. scraper|harvester|probe.
Власний регулярний вираз дозволу — будь-який UA, що не збігається, відхиляється (суворий білий список).
Якщо інтеграція не може надіслати нормальний UA, занесіть її IP у білий список замість глобального послаблення.
Списки IP / Geo / ASN
Чорний список — CIDR отримують 403 негайно, без витрати лічильника.
Заблоковані країни — ISO-2 коди через GeoIP. Порожньо = без блокування за гео.
Заблоковані ASN — хостинг / VPN провайдери (напр. AS14061 Digital Ocean, AS16509 Amazon).
Довідник ключів Redis
Операційний посібник
Перше увімкнення: режим = monitor, увімкніть обмеження швидкості. Зачекайте 24–48 год.
Перегляньте телеметрію: sparkline та таблиця Top-10 порушників. Відкоригуйте ліміти при потребі.
М'яке enforce: режим = enforce з лімітами 2× вище цільових. Спостерігайте 2–3 дні.
Фінальне enforce: виробничі ліміти. violations_before_block = 3 для поглинання піків.
Реагування на інцидент: IP-атаки → Blacklist + зберегти (поширюється на nginx за ≤5 с через Redis).
Розблокування: IPTV Settings → Security → Top offenders → Unblock. Очищає rl:blocked:{ip} + rl:violations:{ip}.
Файли реалізації
Ключі збереженої конфігурації (iptv_defaults)
Всі зберігаються під префіксом sec.*. Зберігаються при кожному кліку в UI.
Огляд безпеки
Загальний огляд безпеки системи.
Інформація про UFW.
Інформація про fail2ban.
Інформація про multicast.
Інформація про CDN.
Найкращі практики
Список найкращих практик.