本地账户与初始化安全
开源独立服务器把鉴权限流状态保存在有界进程内存中,不要求 Redis 或其他外部组件。
账户登录
失败请求默认按 IPv4 /32 或 IPv6 /64 聚合。固定 15 分钟窗口内失败 20 次会触发 临时指数锁定,首次锁定 60 秒。登录成功会清除该网络身份的状态。锁定状态不跨进程, 重启后会清空;公网部署还应配合上游网络防护。
为减少开源部署的配置项,本版策略阈值固定不开放配置;仅 IPv6 聚合前缀和有界的 登录/redeem 容量档位可配置。
初始化令牌
首次初始化前设置 LRD_BOOTSTRAP_TOKEN,可以防止第一个匿名访问者抢注管理员账户。 只有错误令牌才消费 /api/init 与初始化前连接验证共享的预算:10 分钟内 20 次失败。 真正获得授权的外联探测使用独立的 10 分钟 60 次预算,并且只在即将访问网络时计数。
两个安全 quota 的有界表容量耗尽时都会 fail-closed。如果攻击已经停止但首次安装仍被 阻塞,可以重启进程或容器清空内存中的 bootstrap/probe 状态;持久化设置和环境变量中 的令牌不会改变。重启不能防御持续攻击,也不能代替常态 redeem 入口的容量治理。 redeem 使用独立状态表,并保持每个网络身份每分钟 5 次的既有限制。
令牌只能放在 POST body 中。跨主机访问时,请在服务器前终结 TLS,并设置 LRD_COOKIE_SECURE=true;明文 HTTP 可能让网络中的攻击者窃取令牌和会话 Cookie。
反向代理
默认信任回环 peer(127.0.0.0/8、::1)。其他代理地址通过 LRD_TRUSTED_PROXIES 显式加入,不要为了方便信任整个局域网。只有直接 peer 可信时 才读取 X-Forwarded-For。可信判断和限流前会先规范化 IPv4-mapped IPv6 地址。
当前 server 没有 CORS 中间件,正常跨源浏览器预检无法经 loopback 连接发送自定义 XFF。未来任何 CORS 或 Private Network Access 调整都必须重新评审这一前提。