数据与账户安全
凭据在静态时加密,登录被哈希,会话被签名。单凭数据库永远不足以进来。
AES-256-CBC
AES-256-CBC 凭据加密
BMC 凭据在静态时用 AES-256-CBC 加密,每个机密配一个随机 IV。加密密钥存于一个独立的密钥文件(data/encryption.key,32 个随机字节,仅所有者可读),从不放进数据库,因此单凭一份被盗的数据库无法解密任何东西。
BCRYPT · HMAC-SHA256
bcrypt 登录 + HMAC-SHA256 签名会话
登录密码用 bcrypt 哈希(每个密码加盐,常数时间校验)。会话令牌用 HMAC-SHA256 签名,每次请求重新校验,并在用户名变更时失效;cookie 是 HttpOnly 且 SameSite=Lax。
EXP-BACKOFF
暴力破解锁定
按用户名锁定,五次失败后采用指数退避(最长一小时),外加防时序泄露的通用错误,让攻击者无法从登录如何失败中学到任何东西。
IPMITOOL
无 shell 的 ipmitool,完全离线
ipmitool 通过参数列表(create_subprocess_exec)调用,从不经过 shell,因此没有命令注入面。整个系统完全离线运行:无遥测、无云、无外部调用。
硬件保护
FanPilot 被设计为安全失效:热限制胜过任何曲线,而控制回路即使在你不看的时候也继续运转。
临界温度处的安全覆盖
在临界温度或更高时风扇被强制到 100%(默认 85°C,可配置)。任何风扇曲线都无法绕过该覆盖。热限制始终获胜。


- 用滞回阻止来回摆动
- 一个可配置的滞回余量(默认 3°C)防止风扇在温度限制附近快速上下摆动,让转速变化平滑且可预测。
- 自主的后台回路
- 风扇控制运行在一个后台任务里(约 30 秒轮询),即使仪表盘关闭也继续工作。保护不依赖于浏览器标签页是否打开。
- 非正常关机恢复 + 正常关机
- 在非正常停机(断电或 kill -9)之后,ipmideck 会恢复 BMC 自身的自动模式,并在检测到服务器离线和传感器过期时自动恢复。一次正常关机会把风扇交还给 BMC 的热管理。
自己来验证
别信我们。读源码。
加密、锁定、安全覆盖:每一项都是真实的后端代码,而不是营销的勾选框。ipmideck 完全离线运行,没有云,没有遥测。
一行安装:
docker run --network host devluigi06/ipmideck:latestpip install ipmideck