×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 IPTV API 保护 — 速率限制和机器人检测

建筑学

突发乘数(默认 1.5×)允许短尖峰 — 例如

模式——监控与强制

监视器

但通过请求

执行

机器人检测信号

空用户代理 — 阻止不识别自己身份的客户端。

已知机器人 UA 子字符串 — 匹配curl、wget、python-requests、python-urllib、go-http-client、httpie、java-http-client、okhttp、apache-httpclient、bot、crawler、spider、scraper(不区分大小写)。

缺少接受语言——真正的浏览器总是发送它;

缺少 Accept-Encoding — 与上面相同。

自定义块正则表达式 - 您自己的模式(不区分大小写),例如

自定义允许正则表达式 — 如果设置,任何不匹配的 UA 都会被拒绝(严格允许列表)。

如果特定集成无法发送正常的 UA(例如合法的后台作业),请将其 IP 列入白名单,而不是全局放宽机器人信号。

IP/地理/ASN 列表

黑名单 — CIDR 立即收到 403,无需计数器。

被封锁的国家/地区 - ISO-2 代码通过本地 GeoIP 解析。

被阻止的 ASN — 托管/VPN 提供商(例如 AS14061 Digital Ocean、AS16509 Amazon)。

Redis 关键参考

操作手册

首次启用:设置mode=monitor,启用速率限制。

回顾遥测:迷你图显示了可能出现的 429 峰值的时间;

软强制:设置模式 = 强制实施,限制比目标高 2 倍。

强制执行最终结果:收紧对生产值的限制。

事件响应:IP攻击→添加到黑名单文本区域并保存(通过Redis在≤5秒内传播到nginx)。

解锁误报:IPTV 设置 → 安全 → 主要违规者 → 解锁。

实施文件

持久配置密钥 (iptv_defaults)

全部存储在前缀 sec.* 下。

安全配置

概述

Stream Manager 使用 UFW(简单防火墙)进行网络访问控制,并使用fail2ban 进行入侵防御。

UFW 防火墙

UFW 控制允许哪些网络流量到达服务器。|默认规则:HTTP (80)、HTTPS (443) 和媒体服务器 (8080) 对所有人开放。

fail2ban 入侵防御

fail2ban 监视日志文件中是否有重复的身份验证失败,并自动禁止违规 IP 地址。|sshd监狱通过在多次登录尝试失败后禁止 IP 来保护 SSH 访问。|使用 nftables 后端进行高效的数据包过滤。|可以从“配置”>“安全”选项卡手动取消禁止被禁止的 IP。

组播路由限制

多播流量 (224.0.0.0/4) 仅限于两个受信任的网络:|10.0.0.0/8 - 用于本地流源和管理的内部网络。|147.78.168.0/22 - 用于边缘服务器分发的 CDN 网络。|这可以防止未经授权的多播源将流量注入流管道。

CDN网络架构

CDN 网络 (147.78.168.0/22) 用于将流分发到边缘服务器。|允许从 CDN IP 进行 SSH 访问以进行远程管理。|在内部和 CDN 网络之间启用多播转发。|来自 CDN 的所有其他流量都遵循标准防火墙规则。

最佳实践

始终保持 UFW 启用|仅限制对已知网络的 SSH 访问|定期监控fail2ban 监狱的攻击模式|使用强密码和基于密钥的 SSH 身份验证|定期检查防火墙规则并删除未使用的条目|保持fail2ban 和 UFW 软件包更新