跳转到主要内容
ipmideck 是为那些阅读源代码而不是信任厂商的人构建的。下面的 声明基于产品的后端代码。

数据与账户安全

凭据在静态时加密,登录被哈希,会话被签名,仅凭 数据库本身永远不足以进入。

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 的热管理。