×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 Ochrona API IPTV — ograniczanie szybkości i wykrywanie botów

Architektura

Mnożnik burst (domyślnie 1,5×) pozwala na krótkie skoki — np. limit uwierzytelniania treści 120 → sufit burst 180/min.

Tryby — Monitor vs Egzekwuj

monitor

ale przepuszcza żądanie

enforce

Sygnały wykrywania botów

Pusty User-Agent — blokuje klientów, którzy się nie identyfikują.

Znane podciągi UA botów — dopasowuje curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (bez rozróżniania wielkości liter).

Brak Accept-Language — prawdziwe przeglądarki zawsze go wysyłają; większość skryptów nie.

Brak Accept-Encoding — analogicznie jak wyżej.

Własne wyrażenie regularne blokowania — własny wzorzec (bez rozróżniania wielkości liter) np. scraper|harvester|probe.

Własne wyrażenie regularne zezwolenia — jeśli ustawione, dowolny UA niedopasowany jest odrzucany (ścisła lista dozwolonych).

Jeśli konkretna integracja nie może wysłać normalnego UA (np. legalny proces w tle), wstaw jej IP na białą listę zamiast globalnego rozluźniania sygnałów botów.

Listy IP / Geo / ASN

Czarna lista — CIDRy, które dostają 403 natychmiast, bez zużywania licznika. Przydatne dla stałych napastników.

Blokowane kraje — kody ISO-2 rozwiązywane przez lokalny GeoIP. Puste = brak blokowania geograficznego.

Blokowane ASN — dostawcy hostingu / VPN (np. AS14061 Digital Ocean, AS16509 Amazon). Rozwiązywane przez GeoIP.

Referencja kluczy Redis

Poradnik operacyjny

Pierwsze włączenie: ustaw tryb = monitor, włącz ograniczanie szybkości. Poczekaj 24–48 godzin.

Przegląd telemetrii: wykres iskierki pokazuje, kiedy występowałyby spike'i 429; tabela Top-10 sprawców pokazuje powtarzających się sprawców. Dostosuj limity, jeśli legalni użytkownicy je osiągają.

Łagodne egzekwowanie: ustaw tryb = enforce z limitami 2× wyższymi niż docelowe. Obserwuj wykres iskierki + kanał wsparcia przez 2–3 dni.

Końcowe egzekwowanie: zaostrz limity do wartości produkcyjnych. Zachowaj violations_before_block na 3 (domyślnie), aby absorbować okazjonalne skoki.

Reakcja na incydent: ataki IP → dodaj do obszaru tekstowego Czarna lista i zapisz (propaguje do nginx w ≤5 s przez Redis).

Odblokuj fałszywy alarm: Ustawienia IPTV → Bezpieczeństwo → Najczęstsi sprawcy → Odblokuj. Czyści rl:blocked:{ip} + rl:violations:{ip}.

Pliki implementacji

Klucze konfiguracji trwałej (iptv_defaults)

Wszystkie przechowywane pod prefiksem sec.*. Zapisywane przy każdym kliknięciu w interfejsie.

Konfiguracja bezpieczeństwa

Przegląd

Stream Manager używa UFW (Uncomplicated Firewall) do kontroli dostępu sieciowego oraz fail2ban do zapobiegania włamaniom. Razem chronią serwer przed nieautoryzowanym dostępem i atakami typu brute-force.

Zapora UFW

UFW kontroluje, jaki ruch sieciowy może dotrzeć do serwera.|Domyślne reguły: HTTP (80), HTTPS (443) i Media Server (8080) są otwarte dla wszystkich. SSH (22) jest ograniczone do sieci wewnętrznych i CDN tylko.|Ruch multicastu (224.0.0.0/4) jest ograniczony do zaufanych sieci źródłowych.|Zarządzaj regułami z karty Config > Security lub za pomocą wiersza poleceń za pomocą "sudo ufw".

Zapobieganie włamaniom fail2ban

fail2ban monitoruje pliki dziennika pod kątem powtarzających się niepowodzeń uwierzytelniania i automatycznie blokuje adresy IP sprawców.|Węzeł sshd chroni dostęp SSH, blokując adresy IP po kilku nieudanych próbach logowania.|Używa backendu nftables do efektywnego filtrowania pakietów.|Zablokowane adresy IP można ręcznie odblokować w zakładce Konfiguracja > Bezpieczeństwo.

Ograniczenia routingu multicastu

Ruch multicast (224.0.0.0/4) jest ograniczony do dwóch zaufanych sieci:|10.0.0.0/8 — Sieć wewnętrzna dla lokalnych źródeł strumieni i zarządzania.|147.78.168.0/22 — Sieć CDN do dystrybucji na serwerach brzegowych.|Zapobiega to nieautoryzowanym źródłom multicastu wstrzykiwaniu ruchu do potoku strumieniowego.

Architektura sieci CDN

Sieć CDN (147.78.168.0/22) jest używana do dystrybucji strumieni do serwerów brzegowych.|Dostęp SSH jest dozwolony z adresów IP CDN w celu zdalnego zarządzania.|Przekazywanie multicastu jest włączone między sieciami wewnętrznymi a CDN.|Cały inny ruch z CDN podlega standardowym regułom zapory sieciowej.

Najlepsze praktyki

Trzymaj UFW włączony przez cały czas|Ogranicz dostęp SSH do znanych sieci tylko|Regularnie monitoruj więzienia fail2ban pod kątem wzorów ataków|Używaj silnych haseł i uwierzytelniania opartego na kluczach SSH|Regularnie przeglądaj reguły zapory i usuwaj nieużywane wpisy|Trzymaj pakiety fail2ban i UFW zaktualizowane