4. iDRAC用户账户与角色权限管理

iDRAC 是 PowerEdge 服务器的带外管理入口,一旦账户与权限失控,攻击者无需接触操作系统即可关机、重装、挂载虚拟介质甚至重刷固件。因此账户与角色管理不是“建几个用户”这么简单,而是一套围绕最小权限、职责分离、可审计、可回收展开的治理机制。本节从本地用户创建、角色划分、权限粒度、生命周期和批量审计五个角度展开。

一、本地用户与角色模型

iDRAC 的用户账户分为本地账户和目录服务账户(AD/LDAP)。本地账户保存在 iDRAC 自身,适合数量少、无集中目录的环境;目录账户由 AD 统一认证,适合规模化运维。无论哪种来源,权限都由角色(Role)决定。iDRAC 内置角色通常包括:

  • Administrator(管理员):拥有全部权限,可管理用户、固件、网络、虚拟介质、电源等,是最高权限角色。
  • Operator(操作员):可执行日常运维动作,如开关机、重启、查看日志、挂载虚拟介质,但不能修改用户账户、网络配置和固件。
  • Read Only(只读):仅能查看状态、日志、硬件清单,不能执行任何改变性操作。
  • None(无权限):账户存在但无任何 iDRAC 权限,常用于保留账户或临时禁用。
  • Custom(自定义):在支持权限粒度控制的固件版本中,可基于上述角色裁剪具体权限位。

角色划分的核心是职责分离:监控人员用只读,一线运维用操作员,只有少数平台管理员持有管理员角色。切忌把所有人建成 Administrator,否则一次凭据泄露就等于交出整台服务器的控制权。

二、本地用户创建与权限粒度

创建本地用户可通过 Web 界面(iDRAC Settings → Users → Local Users)或 RACADM 命令行完成。以下为 RACADM 示例,创建一个操作员账户并限定其权限:

# 创建用户 ID 3,启用账户,用户名为 ops01
racadm set iDRAC.Users.3.UserName ops01
racadm set iDRAC.Users.3.Password "Str0ng#Pass2024"
racadm set iDRAC.Users.3.Enable Enabled

# 分配操作员角色(权限粒度控制)
racadm set iDRAC.Users.3.Privilege 0x000001f0

# 限制来源 IP,仅允许运维网段访问
racadm set iDRAC.Users.3.IpMILinkLocalOnly Disabled
racadm set iDRAC.Users.3.IpMIRange 192.168.20.0/24

# 查看该用户当前配置
racadm get iDRAC.Users.3

其中 Privilege 是一个位掩码,不同位对应不同权限,例如登录、配置、用户管理、虚拟介质、电源控制、日志清除等。示例中的 0x000001f0 表示授予登录、电源控制、虚拟介质等操作员级权限,但不含用户管理与固件更新位。实际位定义随固件版本略有差异,配置前应查阅对应版本的 iDRAC RACADM Command Line Reference,不要照搬掩码。

权限粒度控制的价值在于“按需授权”:例如备份系统只需要挂载虚拟介质和重启权限,就不应给它用户管理或固件更新权限。掩码方式比直接选角色更精细,但维护成本更高,建议只在确有需要时使用。

三、账户生命周期管理

账户不是“建完就完”,而是有明确的生命周期:申请 → 创建 → 使用 → 复核 → 变更 → 禁用 → 删除。关键控制点包括:

  • 命名规范:使用可追溯到人的账号名(如 ops_zhang),禁止共享账户和 admin 类通用名。
  • 初始密码:首次登录强制修改,避免长期使用初始口令。
  • 定期复核:每季度核对账户清单,确认在职、权限匹配、无长期未登录账户。
  • 离职/转岗:立即禁用而非删除,保留审计痕迹,观察期后再删除。
  • 密码策略:设置最小长度、复杂度、有效期和失败锁定次数。

iDRAC 支持账户锁定策略,例如连续 3 次失败锁定 5 分钟,可有效缓解暴力破解。同时应关闭不必要的服务(如 IPMI over LAN、SSH 若不用),减少攻击面。

四、批量账户审计任务

当管理数十上百台服务器时,逐台登录检查不现实。批量审计的思路是:用 RACADM 或 Redfish 批量导出账户配置,再与基线比对。以下为批量导出示例:

# 对服务器列表批量导出用户配置
for host in $(cat idrac_hosts.txt); do
  racadm -r $host -u audit -p 'Audit#Pass' get iDRAC.Users >> users_$host.txt
done

# 提取关键字段:用户名、角色、启用状态
grep -E "UserName|Privilege|Enable" users_*.txt

审计应重点关注:是否存在多余的管理员账户、是否有已离职人员账户仍启用、是否有账户权限高于其职责、密码策略是否被绕过、是否有来源 IP 未限制的账户。将导出结果与基线表比对,差异项即为整改对象。

iDRAC 账户生命周期与权限审计闭环 申请 工单+职责说明 创建 分配角色/掩码 使用 最小权限运行 复核 季度权限核对 禁用/删除 离职即时回收 角色权限对照(示例) 权限项 Administrator Operator Read Only 查看状态/日志 ✓ ✓ ✓ 电源控制/重启 ✓ ✓ ✗ 虚拟介质挂载 ✓ ✓ ✗ 用户账户管理 ✓ ✗ ✗ 网络/固件更新 ✓ ✗ ✗ 批量审计闭环 导出账户配置 RACADM / Redfish 与基线比对 角色/状态/来源IP 差异整改 降权/禁用/删除 记录归档 审计证据留存

五、审计结果判读与整改

拿到导出结果后,可按以下顺序判读:先看账户总数是否与台账一致,多出的账户优先排查;再看角色分布,管理员账户应控制在极少数;接着看启用状态,长期未登录却仍启用的账户应禁用;最后看来源限制,未限定 IP 的账户风险更高。整改时遵循“先降权、后禁用、再删除”的顺序,避免误删导致运维中断。

修改 iDRAC 用户权限后,已建立的会话可能不会立即失效。涉及降权或禁用时,应主动断开该账户的现有会话,或重启 iDRAC(racadm racreset)使变更完全生效,否则存在权限残留窗口。

综上,iDRAC 账户管理的要点可归纳为:用角色实现职责分离,用权限掩码实现按需授权,用生命周期管理保证账户始终“在职、在权、在控”,用批量审计把分散在数百台服务器上的账户状态收敛到统一基线。这四者缺一不可,共同构成带外管理平面的访问控制基础。