Rate limit · Bot detect · Geo

建筑学
突发乘数(默认 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 控制允许哪些网络流量到达服务器。|默认规则:HTTP (80)、HTTPS (443) 和媒体服务器 (8080) 对所有人开放。
fail2ban 监视日志文件中是否有重复的身份验证失败,并自动禁止违规 IP 地址。|sshd监狱通过在多次登录尝试失败后禁止 IP 来保护 SSH 访问。|使用 nftables 后端进行高效的数据包过滤。|可以从“配置”>“安全”选项卡手动取消禁止被禁止的 IP。
多播流量 (224.0.0.0/4) 仅限于两个受信任的网络:|10.0.0.0/8 - 用于本地流源和管理的内部网络。|147.78.168.0/22 - 用于边缘服务器分发的 CDN 网络。|这可以防止未经授权的多播源将流量注入流管道。
CDN 网络 (147.78.168.0/22) 用于将流分发到边缘服务器。|允许从 CDN IP 进行 SSH 访问以进行远程管理。|在内部和 CDN 网络之间启用多播转发。|来自 CDN 的所有其他流量都遵循标准防火墙规则。
最佳实践
始终保持 UFW 启用|仅限制对已知网络的 SSH 访问|定期监控fail2ban 监狱的攻击模式|使用强密码和基于密钥的 SSH 身份验证|定期检查防火墙规则并删除未使用的条目|保持fail2ban 和 UFW 软件包更新