3. iDRAC初始安全配置与网络隔离
iDRAC(Integrated Dell Remote Access Controller)是PowerEdge服务器上独立于主机操作系统的带外管理控制器。它拥有自己的处理器、内存、网络接口和固件,即使主机断电(只要服务器接入市电),iDRAC仍可运行。正是这种"独立"特性,使iDRAC成为运维利器,同时也成为攻击者眼中的高价值目标——一旦iDRAC被攻陷,攻击者可以远程开关机、挂载虚拟介质重装系统、读取主机屏幕,甚至通过它横向渗透整个机房。因此,iDRAC的初始安全配置与网络隔离,是PowerEdge安全基线中优先级最高的一环。
一、出厂默认设置的风险画像
新到货的PowerEdge服务器,iDRAC出厂状态通常具有以下特征:默认用户名root、默认密码为位于机箱抽拉式标签上的随机字符串(较新固件)或历史遗留的calvin(老固件);IP地址获取方式为DHCP;启用了IPMI over LAN、SSH、Telnet、SNMP、Web Server等一整套服务;默认开启了"IPMI 1.5/2.0"和"虚拟控制台"功能。这些默认值在实验室里方便,在生产网络中就是敞开的门。
风险可以归纳为三类:凭据风险——默认密码公开可查,且常被多台设备共用;暴露面风险——iDRAC默认监听多个端口,任何能路由到它的主机都可尝试连接;权限风险——默认root账户拥有全部权限,且没有账户锁定、没有登录告警。真实案例中,攻击者常通过扫描443/623端口发现暴露在公网的iDRAC,用默认凭据登录后植入固件级后门。
二、专用管理网络规划
最有效的隔离手段是物理隔离:为iDRAC规划一张专用的管理网络(Out-of-Band Management Network),与业务网络、存储网络完全分离。规划时需明确几个要素:
- 网段划分:例如业务网使用10.10.0.0/16,管理网单独使用172.16.100.0/24,两者之间不配置路由,或仅通过跳板机(Bastion Host)单向访问。
- 地址分配:iDRAC应使用静态IP,避免DHCP租约变化导致管理失联。建议按机柜/机架编号规划地址段,如172.16.100.10~172.16.100.99对应A01~A90机位。
- 访问入口:所有iDRAC访问必须经过跳板机,跳板机启用多因素认证(MFA),并记录完整会话日志。
- 专用交换机:管理交换机独立于业务交换机,端口配置端口安全(Port Security),只允许已知MAC地址接入。
如果受限于成本无法物理隔离,则必须使用VLAN逻辑隔离。将iDRAC划入独立VLAN(如VLAN 100),在核心交换机上配置ACL,仅允许跳板机所在VLAN访问该VLAN的443、5900、623等必要端口,其余一律拒绝。
三、VLAN与防火墙策略
在iDRAC自身层面,也提供了网络访问控制能力。较新固件的iDRAC支持"网络接口"下的"高级设置",可以配置IP范围过滤(IP Range Filtering),只允许特定源IP访问Web界面。更彻底的做法是在iDRAC上启用"专用管理模式"(Dedicated Mode),将iDRAC流量与主机LOM口彻底分离,避免共享端口带来的VLAN跳转风险。
防火墙策略应遵循"默认拒绝、按需放行"原则。下表给出一个最小化放行示例(假设跳板机IP为172.16.100.5):
| 端口 | 协议 | 用途 | 策略 |
|---|---|---|---|
| 443 | TCP | Web管理界面 | 仅允许172.16.100.5 |
| 5900 | TCP | 虚拟控制台(VNC) | 仅允许172.16.100.5 |
| 623 | UDP | IPMI over LAN | 默认关闭,如需则仅允许监控服务器 |
| 22 | TCP | SSH(RACADM) | 仅允许自动化运维平台 |
| 161 | UDP | SNMP | 默认关闭,如需则限制源IP并启用SNMPv3 |
四、iDRAC端口与协议最小化
iDRAC出厂时启用了大量服务,很多在生产中并不需要。建议按以下顺序关闭:
- 关闭Telnet——明文传输,必须禁用。
- 关闭IPMI over LAN——除非有带外监控硬需求,否则关闭;若必须使用,限制源IP并启用强密码。
- 关闭SNMP v1/v2——如需SNMP,改用SNMPv3并配置认证与加密。
- 关闭"自动更新"和"远程文件共享"等非必要功能。
- 将Web界面会话超时设置为15分钟以内,启用"登录失败锁定"(如5次失败锁定5分钟)。
下图展示了从出厂默认状态到加固后状态的端口/协议收敛过程,以及管理网络隔离的拓扑关系:
五、初始密码与账户清理实战
加固操作可以通过iDRAC Web界面完成,也可以使用RACADM命令行批量执行。以下给出一个基于RACADM的示例流程(假设已通过SSH登录到iDRAC):
# 1. 修改root密码为强密码(示例,实际请使用密码管理器生成)
racadm set iDRAC.Users.2.Password "N3wP@ssw0rd!2024"
# 2. 创建独立管理员账户,禁用root
racadm set iDRAC.Users.3.UserName "svc_admin"
racadm set iDRAC.Users.3.Password "An0ther$trongPwd"
racadm set iDRAC.Users.3.Privilege 0x1ff
racadm set iDRAC.Users.2.Enable 0
# 3. 关闭Telnet和IPMI
racadm set iDRAC.Telnet.Enable 0
racadm set iDRAC.IPMILan.Enable 0
# 4. 设置静态IP
racadm set iDRAC.IPv4.Address 172.16.100.10
racadm set iDRAC.IPv4.Netmask 255.255.255.0
racadm set iDRAC.IPv4.Gateway 172.16.100.1
racadm set iDRAC.IPv4.DHCPEnable 0
# 5. 启用登录失败锁定
racadm set iDRAC.Security.MaxLoginFailures 5
racadm set iDRAC.Security.LoginLockoutTime 300
# 6. 设置会话超时
racadm set iDRAC.WebServer.SessionTimeout 900
执行完成后,用racadm get iDRAC.Users确认账户状态,用racadm get iDRAC.IPv4确认网络配置。随后从跳板机尝试SSH登录新账户,验证旧root账户已被禁用。最后,在管理交换机上抓包或查看ACL计数器,确认除跳板机外没有其他源IP能访问iDRAC的443端口。
完成以上配置后,iDRAC从"出厂即暴露"转变为"仅跳板机可达、仅必要端口开放、强凭据+锁定策略"的受控状态。这不仅是合规要求,更是防止带外管理通道成为攻击跳板的关键防线。