×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 Proteção API IPTV — Limitação de Taxa & Deteção de Bots

Arquitetura

O multiplicador de burst (padrão 1,5×) permite picos curtos — ex. limite de autenticação de conteúdo 120 → teto de burst 180/min.

Modos — Monitor vs Enforce

monitor

mas deixa o pedido passar

aplicar

Sinais de Deteção de Bots

User-Agent vazio — bloqueia clientes que não se identificam.

Substrings de UA de bots conhecidos — corresponde a curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (sem distinção de maiúsculas/minúsculas).

Accept-Language ausente — os browsers reais enviam sempre; a maioria dos scripts não envia.

Accept-Encoding ausente — igual ao anterior.

Regex de bloqueio personalizado — o seu próprio padrão (sem distinção de maiúsculas/minúsculas) ex. scraper|harvester|probe.

Regex de permissão personalizado — se definido, QUALQUER UA que não corresponda é rejeitado (lista branca estrita).

Se uma integração específica não puder enviar um UA normal, adicione o seu IP à lista branca em vez de relaxar os sinais de bot globalmente.

Listas de IP / Geo / ASN

Lista negra — CIDRs que recebem 403 imediatamente, sem gastar contador. Útil para infratores persistentes.

Países bloqueados — códigos ISO-2 resolvidos via GeoIP local. Vazio = sem bloqueio geográfico.

ASNs bloqueados — fornecedores de hosting / VPN (ex. AS14061 Digital Ocean, AS16509 Amazon). Resolvido via GeoIP.

Referência de Chaves Redis

Manual Operacional

Primeira ativação: defina modo = monitor, ative limitação de taxa. Aguarde 24–48 h.

Rever telemetria: o gráfico mostra quando ocorreriam picos de 429; a tabela Top-10 infratores mostra infratores recorrentes. Ajuste os limites se utilizadores legítimos os estiverem a atingir.

Enforce suave: defina modo = enforce com limites 2× superiores ao alvo. Observe o gráfico + canal de suporte por 2–3 dias.

Enforce final: reduza os limites para os valores de produção. Mantenha violations_before_block em 3 (padrão) para absorver picos ocasionais.

Resposta a incidentes: ataques de IP → adicione à textarea de Lista Negra e guarde (propaga para nginx em ≤5 s via Redis).

Desbloquear falso positivo: Definições IPTV → Segurança → Principais infratores → Desbloquear. Limpa rl:blocked:{ip} + rl:violations:{ip}.

Ficheiros de Implementação

Chaves de Configuração Persistidas (iptv_defaults)

Todas guardadas sob o prefixo sec.*. Salvas a cada clique na UI.

Configuração de Segurança

Visão Geral

O Stream Manager usa UFW (Uncomplicated Firewall) para controle de acesso de rede e fail2ban para prevenção de intrusão. Juntos, eles protegem o servidor contra acesso não autorizado e ataques de força bruta.

Firewall UFW

O UFW controla qual tráfego de rede é permitido alcançar o servidor.|Regras padrão: HTTP (80), HTTPS (443) e Media Server (8080) estão abertos para todos. SSH (22) é restrito apenas às redes internas e da CDN.|O tráfego multicast (224.0.0.0/4) é restrito a redes de origem confiáveis.|Gerencie as regras em Config > Aba Segurança, ou via linha de comando com 'sudo ufw'.

Prevenção de Intrusão fail2ban

O fail2ban monitora arquivos de log por falhas repetidas de autenticação e bloqueia automaticamente os endereços IP infratores.|A jail sshd protege o acesso SSH bloqueando IPs após múltiplas tentativas de login falhas.|Usa o backend nftables para filtragem de pacotes eficiente.|IPs bloqueados podem ser desbloqueados manualmente em Config > Aba Segurança.

Restrições de Roteamento Multicast

O tráfego multicast (224.0.0.0/4) é restrito a duas redes confiáveis:|10.0.0.0/8 - Rede interna para fontes de stream locais e gerenciamento.|147.78.168.0/22 - Rede CDN para distribuição em servidores de borda.|Isso impede que fontes multicast não autorizadas injetem tráfego no pipeline de streaming.

Arquitetura da Rede CDN

A rede CDN (147.78.168.0/22) é usada para distribuir streams para servidores de borda.|O acesso SSH é permitido a partir dos IPs da CDN para gerenciamento remoto.|O encaminhamento multicast está habilitado entre as redes internas e da CDN.|Todo o outro tráfego da CDN segue as regras padrão do firewall.

Melhores Práticas

Mantenha o UFW habilitado o tempo todo|Restrinja o acesso SSH apenas a redes conhecidas|Monitore regularmente as jails do fail2ban por padrões de ataque|Use senhas fortes e autenticação SSH baseada em chaves|Revise as regras do firewall periodicamente e remova entradas não utilizadas|Mantenha os pacotes fail2ban e UFW atualizados