Rate limit · Bot detect · Geo

Architecture
Multiplicateur de rafale (défaut 1,5×) autorise de courtes pointes — ex. limite auth contenu 120 → plafond rafale 180/min.
Modes — Surveiller vs Appliquer
surveiller
mais laisse passer la requête
appliquer
Signaux de détection de bots
User-Agent vide — bloque les clients qui ne s'identifient pas.
Sous-chaînes UA de bots connus — correspond à curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, etc.
Accept-Language absent — les vrais navigateurs l'envoient toujours ; la plupart des scripts ne le font pas.
Accept-Encoding absent — idem.
Regex de blocage personnalisé — votre propre motif (insensible à la casse) ex. scraper|harvester|probe.
Regex d'autorisation personnalisé — si défini, TOUT UA qui ne correspond pas est rejeté (liste blanche stricte).
Si une intégration spécifique ne peut pas envoyer un UA normal (ex. une tâche d'arrière-plan légitime), mettre son IP en liste blanche plutôt que d'assouplir les règles UA.
Listes IP / Geo / ASN
Liste noire — CIDRs qui reçoivent un 403 immédiat, sans compteur dépensé. Utile pour les récidivistes persistants.
Pays bloqués — codes ISO-2 résolus via GeoIP local. Vide = pas de blocage géographique.
ASNs bloqués — fournisseurs d'hébergement / VPN (ex. AS14061 Digital Ocean, AS16509 Amazon). Résolu via GeoIP.
Référence des clés Redis
Manuel opérationnel
Première activation : définir mode = monitor, activer la limitation de débit. Attendre 24–48 h.
Analyser la télémétrie : le graphique en barres montre quand les pics de 429 se produiraient ; le tableau des 10 principaux contrevenants montre les récidivistes. Ajuster les limites.
Application douce : définir mode = enforce avec des limites 2× plus élevées que la cible. Surveiller le graphique + le canal de support pendant 2–3 jours.
Application finale : resserrer les limites aux valeurs de production. Garder violations_before_block à 3 (défaut) pour absorber les pointes occasionnelles.
Réponse aux incidents : attaques IP → ajouter à la zone de texte Liste noire et enregistrer (se propage à nginx en ≤5 s via Redis).
Débloquer un faux positif : Paramètres IPTV → Sécurité → Principaux contrevenants → Débloquer. Efface rl:blocked:{ip} + rl:violations:{ip}.
Fichiers d'implémentation
Clés de configuration persistées (iptv_defaults)
Toutes stockées sous le préfixe sec.*. Enregistrées à chaque clic sur l'UI.
Aperçu
Stream Manager utilise UFW (Uncomplicated Firewall) pour le contrôle d'accès réseau et fail2ban pour la prévention des intrusions. Ensemble, ils protègent le serveur contre les accès non autorisés et les attaques par force brute.
UFW contrôle quel trafic réseau est autorisé à atteindre le serveur.|Règles par défaut : HTTP (80), HTTPS (443) et Media Server (8080) sont ouverts à tous. SSH (22) est restreint aux seuls réseaux internes et CDN.|Le trafic multicast (224.0.0.0/4) est restreint aux réseaux sources de confiance.|Gérez les règles depuis l'onglet Config > Security, ou via la ligne de commande avec 'sudo ufw'.
fail2ban surveille les fichiers journaux pour détecter les échecs d'authentification répétés et bannit automatiquement les adresses IP fautives.|La prison sshd protège l'accès SSH en bannissant les adresses IP après plusieurs tentatives de connexion échouées.|Utilise le backend nftables pour un filtrage de paquets efficace.|Les adresses IP bannies peuvent être débloquées manuellement depuis l'onglet Config > Security.
Le trafic multicast (224.0.0.0/4) est restreint à deux réseaux de confiance :|10.0.0.0/8 - Réseau interne pour les sources de flux locales et la gestion.|147.78.168.0/22 - Réseau CDN pour la distribution aux serveurs de bordure.|Cela empêche les sources multicast non autorisées d'injecter du trafic dans la chaîne de diffusion.
Le réseau CDN (147.78.168.0/22) est utilisé pour distribuer les flux vers les serveurs de bordure.|L'accès SSH est autorisé depuis les adresses IP du CDN pour la gestion à distance.|La diffusion multicast est activée entre les réseaux internes et le réseau CDN.|Tout autre trafic provenant du CDN suit les règles standard du pare-feu.
Bonnes Pratiques
Gardez UFW activé en permanence|Restreignez l'accès SSH aux seuls réseaux connus|Surveillez régulièrement les prisons fail2ban pour détecter les schémas d'attaque|Utilisez des mots de passe forts et l'authentification SSH par clés|Révisez périodiquement les règles du pare-feu et supprimez les entrées inutilisées|Maintenez les packages fail2ban et UFW à jour