数据与账户安全
凭据在静态时加密,登录被哈希,会话被签名,仅凭 数据库本身永远不足以进入。AES-256-CBC 凭据加密
BMC 凭据在静态时用 AES-256-CBC 和每个机密一个随机 IV 加密。 加密密钥位于一个单独的密钥文件中(data/encryption.key,32 个随机字节,
仅所有者权限),绝不在数据库中,因此仅凭被盗的数据库无法
解密任何内容。
bcrypt 登录 + HMAC-SHA256 签名会话
登录密码用 bcrypt 哈希(每个密码加盐,恒定时间校验)。会话 令牌用 HMAC-SHA256 签名,在每次请求时重新校验,并在用户名更改时 失效。Cookie 为 HttpOnly 且 SameSite=Lax。暴力破解锁定
按用户名锁定,在五次失败尝试后采用指数退避(最长一小时), 外加防时序泄露的通用错误,因此攻击者从登录失败的方式中什么也学不到。无 shell 的 ipmitool,完全离线
ipmitool 通过参数列表(create_subprocess_exec)调用,绝不通过 shell,
因此不存在命令注入面。整个系统完全离线运行:没有
遥测、没有云、没有外部调用。
硬件保护
FanPilot 为故障安全而构建:热限值胜过任何曲线,控制回路 即使在你不看着时也持续运行。临界温度下的安全覆盖
在达到或超过临界温度时,风扇被强制设为 100%(默认 85°C,可配置)。 没有任何风扇曲线能覆盖该覆盖,热限值始终胜出。用迟滞停止振荡
可配置的迟滞裕度(默认 3°C)防止风扇在温度限值附近快速上下 振荡,使速度变化保持平滑且可预测。自主后台回路
风扇控制运行在一个后台任务中(约 30 秒轮询),即使仪表板 关闭也持续工作,保护并不依赖于浏览器标签页处于打开状态。非干净关闭恢复 + 优雅关闭
在非干净停止(断电或kill -9)后,ipmideck 会恢复 BMC 自己的自动模式,
并在检测到服务器离线和传感器陈旧时自动恢复。一次干净关闭会将
风扇交还给 BMC 的热管理。