4. iLO用户与安全管理

iLO 是服务器带外管理的入口,一旦被未授权访问,攻击者可以在操作系统之外直接开关机、挂载虚拟介质、查看串口日志,甚至重装系统。因此 iLO 的用户与安全管理不是“可选加固项”,而是带外运维的基础。本节围绕五条主线展开:本地账户、目录服务集成、双因素认证、SSH 密钥、会话超时与访问控制,并给出可直接参考的配置思路与判断依据。

一、本地账户:最小可用与权限分层

iLO 出厂时通常有一个默认管理员账户(不同代际名称可能为 Administrator 或 administrator),首次登录必须修改默认密码。本地账户适合小规模环境、应急账户或目录服务不可用时的兜底。建议遵循三条原则:

  • 一人一账户:不要多人共用 Administrator,否则审计日志无法定位到人。
  • 权限分层:iLO 常见权限级别包括 Administer(完全控制)、Configure(配置)、Login(只读登录)等。日常巡检账户只给 Login,避免误操作。
  • 保留应急账户:目录服务故障时,本地账户是唯一入口,应保留一个强密码的本地管理员账户,密码放入密码保险库。

在 iLO Web 界面中,路径通常为 Security → User Administration,可新增用户、设置登录名、密码与权限。命令行方式(iLO SSH 或本地脚本)示例:

# 通过 iLO RESTful 接口创建本地用户(示例)
curl -k -u administrator:password \
  -X POST https://192.168.10.20/redfish/v1/AccountService/Accounts/ \
  -H "Content-Type: application/json" \
  -d '{
        "UserName": "ops_readonly",
        "Password": "Str0ng!Passw0rd",
        "RoleId": "ReadOnly",
        "Enabled": true
      }'

创建后应立即用该账户登录验证权限边界:能否看到系统状态、能否修改引导顺序、能否挂载虚拟介质。若只读账户能执行重启,说明角色映射有误,需要回到角色配置检查。

二、目录服务集成:把账户交给 AD/LDAP 统一管理

当服务器数量超过十几台,逐台维护本地账户会迅速失控。目录服务集成让 iLO 通过 LDAP/LDAPS 向 Active Directory 或 OpenLDAP 验证用户,并把 AD 组映射为 iLO 权限。核心配置项包括:

  • 目录服务器地址与端口:LDAPS 通常为 636,需导入 CA 证书,否则 iLO 无法验证服务器身份。
  • 用户搜索上下文:例如 OU=Servers,DC=corp,DC=example,DC=com。
  • 组映射:将 AD 安全组映射到 iLO 角色,如 GRP-iLO-Admins → Administer,GRP-iLO-Ops → Login。
  • 测试登录:配置完成后用 AD 账户登录,观察 iLO 事件日志中是否出现目录认证成功记录。

常见故障是“本地能登录、AD 不能登录”,多数源于证书链不完整、搜索上下文写错或组名大小写不匹配。排障时先看 iLO 的 Integrated Management Log 与目录测试按钮返回的错误码,再逐项核对。

三、双因素认证:密码之外再加一道门

双因素认证(2FA)要求用户同时提供“知道的东西”(密码)和“拥有的东西”(一次性验证码或硬件令牌)。iLO 支持基于 TOTP 的两步验证,可与本地账户或目录账户叠加使用。启用后登录流程变为:输入用户名密码 → 输入 6 位动态码 → 进入管理界面。

配置要点:在 Security → Two-Factor Authentication 中启用,为每个管理员账户绑定 TOTP 密钥(通常以二维码形式呈现),用手机认证器扫描。建议至少为所有 Administer 级别账户启用 2FA,只读账户可按需启用。若令牌丢失,需要另一名管理员在 iLO 中重置该用户的 2FA 绑定,因此必须保留至少两个可用的管理员账户,避免“锁死”。

四、SSH 密钥:免密登录与自动化

iLO 的 SSH 接口支持公钥认证,适合脚本化巡检与自动化运维。做法是生成密钥对,把公钥导入 iLO 用户配置,私钥保存在受控的跳板机上。示例:

# 生成密钥对
ssh-keygen -t ed25519 -f ~/.ssh/ilo_ops -C "ilo-ops@corp"

# 将公钥导入 iLO(Web: Security → User Administration → 用户 → SSH Key)
# 或通过 RESTful 接口写入
curl -k -u administrator:password \
  -X PATCH https://192.168.10.20/redfish/v1/AccountService/Accounts/3/ \
  -H "Content-Type: application/json" \
  -d '{"Oem": {"Hpe": {"SSHKey": "ssh-ed25519 AAAAC3Nza... ilo-ops@corp"}}}'

导入后可用 ssh -i ~/.ssh/ilo_ops ops_readonly@192.168.10.20 验证。若仍提示输入密码,检查公钥是否完整、用户是否启用 SSH 访问、以及 iLO 固件是否支持该密钥类型。私钥必须设置口令并限制文件权限(chmod 600)。

五、会话超时与访问控制:缩小暴露面

会话超时决定用户无操作多久后被强制登出。建议 Web 会话设为 15~30 分钟,SSH 空闲超时设为 5~10 分钟。访问控制则包括:限制 iLO 管理网段(只允许跳板机或运维 VLAN 访问)、关闭未使用的服务(如 IPMI over LAN、SNMP v1/v2)、启用 IP 封禁与登录失败锁定。

下面这张图把本节五条主线与它们共同保护的 iLO 管理面关系整理在一起,便于对照配置与排障。

iLO 用户与安全管理:五条主线与访问控制边界 本地账户 一人一账户 · 权限分层 应急管理员账户 Administer / Configure / Login 目录服务集成 LDAPS 636 · CA 证书 AD 组 → iLO 角色映射 统一账户 · 集中审计 双因素认证 TOTP 动态码 密码 + 令牌 至少保留两个管理员 iLO 管理面 Web 界面 · SSH · Redfish 虚拟介质 · 电源控制 IML 日志 · 串口控制台 会话超时:Web 15–30 min SSH 空闲:5–10 min 登录失败锁定 · IP 封禁 管理网段白名单 SSH 密钥 ed25519 密钥对 公钥导入 iLO 用户 私钥 chmod 600 · 跳板机 访问控制 关闭 IPMI over LAN 禁用 SNMP v1/v2 仅运维 VLAN 可达 审计与验证 IML 事件日志 登录成功/失败记录 权限边界回归测试 身份来源 → iLO 管理面 → 密钥/访问控制 → 审计验证,形成闭环

六、配置检查与结果判断

完成上述配置后,建议按以下清单逐项验证,而不是只看“保存成功”:

检查项 预期结果 异常判断
本地只读账户登录 可查看状态,无法重启或改引导 能执行重启 → 角色映射错误
AD 账户登录 登录成功,IML 记录目录认证 失败 → 查证书、搜索上下文、组名
2FA 登录 密码后要求 6 位动态码 无提示 → 2FA 未绑定或未启用
SSH 公钥登录 免密进入 iLO CLI 仍要密码 → 公钥不完整或用户未启用 SSH
会话超时 无操作后自动登出 长时间不登出 → 超时值过大或未生效
管理网段限制 非运维网段无法访问 iLO 任意网段可访问 → 白名单未配置
注意:启用 2FA 或目录服务前,务必确认至少有一个可用的本地管理员账户,并记录其密码位置。否则一旦目录服务不可达或令牌丢失,iLO 将无法登录,只能通过物理方式重置,影响生产。
实践建议:把 iLO 账户与权限纳入变更管理,每次人员离职或角色调整后,同步检查本地账户、AD 组映射与 SSH 公钥,避免“人走权限留”。同时定期导出 iLO 配置备份,便于故障后快速恢复安全策略。

总结来看,本地账户解决“有没有入口”,目录服务解决“账户是否统一”,2FA 解决“密码泄露后是否还能进”,SSH 密钥解决“自动化如何安全登录”,会话超时与访问控制解决“暴露面是否足够小”。五者叠加,才构成 iLO 带外管理的完整安全基线。