×

🛡 API Guard

Rate limit · Bot detect · Geo

Защита IPTV

Архитектура

Множителят за пакети (по подразбиране 1,5×) позволява кратки пикове — напр. лимит за удостоверяване на съдържание 120 → таван при пакет 180/мин.

Режими — Монитор срещу Принудителен

монитор

но пропуска заявката

принудителен

Сигнали за засичане на ботове

Празен User-Agent — блокира клиенти, които не се идентифицират.

Известни поднизове на UA на ботове — съответства на curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (без разлика на главни/малки букви).

Липсващ Accept-Language — истинските браузъри винаги го изпращат; повечето скриптове — не.

Липсващ Accept-Encoding — същото като по-горе.

Потребителски блок regex — вашият собствен шаблон (без разлика на главни/малки букви), напр. scraper|harvester|probe.

Потребителски разрешен regex — ако е зададен, ВСЕКИ UA, който не съответства, се отхвърля (строг разрешен списък).

Ако конкретна интеграция не може да изпрати нормален UA (напр. легитимна фонова задача), добавете нейния IP в белия списък вместо да отпускате сигналите за ботове глобално.

Списъци IP / Geo / ASN

Черен списък — CIDR адреси, получаващи 403 незабавно, без изразходване на брояч. Полезно за упорити нарушители.

Блокирани държави — ISO-2 кодове, разрешени чрез локален GeoIP. Празно = без гео блокиране.

Блокирани ASN — хостинг / VPN доставчици (напр. AS14061 Digital Ocean, AS16509 Amazon). Разрешени чрез GeoIP.

Справочник за Redis ключове

Оперативен наръчник

Първоначално активиране: задайте режим = монитор, активирайте ограничаване на скоростта. Изчакайте 24–48 ч.

Прегледайте телеметрията: sparkline показва кога биха настъпили пикове от 429; таблицата с топ 10 нарушители показва повтарящите се нарушители. Регулирайте лимитите, ако легитимни потребители ги достигат.

Мек принудителен режим: задайте режим = принудителен с лимити 2× по-високи от целевите. Наблюдавайте sparkline + канал за поддръжка в продължение на 2–3 дни.

Финален принудителен режим: стегнете лимитите до производствени стойности. Дръжте violations_before_block на 3 (по подразбиране) за поглъщане на случайни пикове.

Реакция при инцидент: IP атаки → добавете в текстовото поле Черен списък и запазете (разпространява се до nginx за ≤5 с чрез Redis).

Деблокиране на фалшиви положителни: IPTV Настройки → Сигурност → Топ нарушители → Деблокиране. Изчиства rl:blocked:{ip} + rl:violations:{ip}.

Файлове за реализация

Съхранявани конфигурационни ключове (iptv_defaults)

Всички се съхраняват под префикс sec.*. Запазват се при всяко кликване в UI.

Сигурност

Преглед на сигурността

Общ преглед на системната сигурност.

UFW

UFW информация.

Fail2ban

Fail2ban информация.

Multicast

Мультикаст информация.

CDN

CDN информация.

Най-добрите практики

Списък с най-добрите практики.