违规累计封禁

违规累计封禁

把各子系统的处置按权重累计成「封禁分」,越阈自动封禁 IP:加权防误封、TTL 自愈、可选内核层 ipset 丢包。

单看每个子系统,处置都是「就事论事」:这次请求拦了,下次照来。「违规累计封禁」把检测拦截、限流、UA 黑名单、地理围栏、敏感路径探测、扫描器 404、蜜罐命中这些散落的信号按权重汇总成同一个「每 IP 封禁分」,越过阈值就把这个 IP 直接封掉——后续请求在网关最外层就被拒,连检测都不用跑。

加权是这套机制的灵魂:攻击级信号一次即封,限流这种「正常用户突发也会踩」的信号权重压得很低,挑战下发干脆不计分。防的是误封真人和 NAT 出口

#打开它

  1. 1
    进「防护配置 → 违规累计封禁」这一页自带封禁器,不依赖人机验证的自动拉黑是否开启。
  2. 2
    先开「试运行」shadow 模式只记录「本应封禁谁」,不真封。观察一两天,确认没有误伤真人。
  3. 3
    核对权重表默认权重已经调过;有特殊业务(如高频轮询接口)可把 rate_limit 再调低或置 0。
  4. 4
    转正式关掉试运行。封禁自带 TTL,误封也会自愈,不必怕一步做死。

#关键字段

字段 / 控件默认 / 示例说明
enabledfalse总开关(配置段 access_control.auto_ban)。
threshold100封禁分阈值。默认 100 意味着「一次检测拦截即封」。
window_seconds300滚动计分窗口;必须在窗口内累计到阈值才触发,窗口外自然淡出。
ttl_seconds600封禁基础时长,到期自动解封——误封 NAT 出口会自己恢复。
escalatetrue同一 IP 反复触发时封禁时长指数递增(基础 → ×2 → ×4 …)。
max_ttl_seconds86400梯度升级的封顶时长。
shadowfalse试运行:只记录会封谁、不真封。
modeapp强制档位:app 在网关拒绝(跨平台);kernel 下发 Linux ipset 由 iptables 在 L3 丢包。切换需重启数据面。
weights见下表每种来源贡献的封禁分;留空的用默认值,置 0 = 该来源不累计。

#默认权重表(阈值 100)

来源权重含义
detection 检测引擎拦截100SQLi / XSS / RCE 等,近乎确定是攻击,单次即封
honeypot 蜜罐命中100访问了正常用户永远不会访问的陷阱路径,几乎必是自动化
sensitive_path 敏感路径探测40.git / .env / *.sql 之类的侦察行为
scanner_404 扫描器 404 枚举40目录爆破 / 文件枚举
ua_deny UA 黑名单命中40已知扫描器 User-Agent
geo 地理围栏拦截40违规地域来源
rate_limit 限流命中10突发的正常流量也会触发,故权重很低
challenge_issued 挑战下发0真人能解开挑战,绝不计分

权重的意义在于跨信号累计:两次敏感路径探测(40+40)再加一次 UA 拦截(40)合计 120 就封——三个信号单看都不到阈值,合起来才是一次真实的扫描行为。

#谁不会被累计

  • IP 白名单内的客户端全程豁免,永不参与计分。
  • 已验证的好爬虫(反向 DNS 校验通过的搜索引擎)豁免。
  • 已登录用户豁免——登录态是强身份,不该被行为分误伤。
  • 已经在名单里的拒绝(静态黑名单 / 动态 IP 规则 / 威胁情报 / 已封禁)不再计分,避免自我反馈滚雪球。
  • 观察类事件(detect / shadow)不计分,只有真实的处置才算数。
计分依赖存储;存储出错时一律放行不计分(fail-open)——计数故障绝不能变成误封。

#内核层封禁(Linux,可选)

mode: kernel 会把封禁 IP 下发到 Linux 内核的 ipset 集合,由 iptables / ip6tables 在三层直接丢包:省掉 TLS 握手、HTTP 解析与协程调度,面对惯犯和 CC 更省资源。自动封禁(带 TTL)与手动黑名单分属两个集合,互不覆盖;机器重启后存量封禁会按剩余 TTL 回灌内核。

内核层的适用边界三个前提缺一不可:仅 Linux、进程需 CAP_NET_ADMIN(root)、墨守必须部署在真正的网络边缘。前面若有 LB / CDN,内核匹配的是数据包源 IP(= LB 的 IP),与墨守从 X-Forwarded-For 还原出的客户端 IP 不是一回事——不会误封 LB(安全),但内核层也拦不住,只能靠应用层兜底。
无论哪种档位,应用层网关始终强制这些封禁,内核层只是 L3 加速。所以同步慢一拍或漏掉 CIDR 段都不构成安全缺口。

#在哪里看和解封

「访问控制」页的「自动封禁」选项卡把所有来源的 IP 封禁合并成一张表:静态黑名单、动态 IP 规则、威胁情报、蜜罐 / 扫描器自动拉黑、违规累计封禁,都带来源标签与到期时间,可一键解封。所有 IP 封禁一处管理,不用再去各个模块里找。

相关页面:访问控制 · 人机验证 · CC 与限流 · 攻击日志