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 管理面关系整理在一起,便于对照配置与排障。
六、配置检查与结果判断
完成上述配置后,建议按以下清单逐项验证,而不是只看“保存成功”:
| 检查项 | 预期结果 | 异常判断 |
|---|---|---|
| 本地只读账户登录 | 可查看状态,无法重启或改引导 | 能执行重启 → 角色映射错误 |
| AD 账户登录 | 登录成功,IML 记录目录认证 | 失败 → 查证书、搜索上下文、组名 |
| 2FA 登录 | 密码后要求 6 位动态码 | 无提示 → 2FA 未绑定或未启用 |
| SSH 公钥登录 | 免密进入 iLO CLI | 仍要密码 → 公钥不完整或用户未启用 SSH |
| 会话超时 | 无操作后自动登出 | 长时间不登出 → 超时值过大或未生效 |
| 管理网段限制 | 非运维网段无法访问 iLO | 任意网段可访问 → 白名单未配置 |
总结来看,本地账户解决“有没有入口”,目录服务解决“账户是否统一”,2FA 解决“密码泄露后是否还能进”,SSH 密钥解决“自动化如何安全登录”,会话超时与访问控制解决“暴露面是否足够小”。五者叠加,才构成 iLO 带外管理的完整安全基线。