适用场景
- 产品:
ZCF - 组件:
ZStack Cloud - 版本:
4.8.x - 环境:
ZStack 4.8.x、C76、双管理 - 触发条件:需要对 OpenSSH Server 远程代码执行漏洞做整改。
问题现象
- 当前节点上的 OpenSSH 版本为
8.7.Xp1-30.el7.x86_64。 - 需要对所有节点实施修复或缓解。
- 若不能直接升级,可采用配置方式降低风险。
判断方法
- 变更前检查各节点
openssh/openssl版本。 - 升级后确认
openssh已变为9.9.Xp2,或确认sshd_config中已写入LoginGraceTime 0。 - 检查
sshd重启后服务正常,平台资源状态正常。
原因说明
本次用于整改 OpenSSH Server 远程代码执行漏洞,因此需要对所有节点做 OpenSSH 升级,或在无法升级时通过配置方式缓解风险。
解决方案
- 执行前准备
- 风险等级:低风险。
- 先确认各资源连接状态正常。
- 先关闭云主机全局高可用。
- 该方案覆盖所有节点。
- 方法1:升级 OpenSSH 到 9.9.Xp2
- 查看当前版本:
rpm -qa | grep openssh
rpm -qa | grep openssl
- 预期结果:确认当前
openssh和openssl版本。
- 若 OpenSSL 不是
1.1.Xs,则先升级:
tar zxvf openssl1.1.1s-full.tgz && cd openssl1.1.1s-full
bash update.sh
- 预期结果:OpenSSL 升级到
1.1.Xs。
- 升级 OpenSSH:
tar zxvf openssh-9.9p2-1.tgz && cd openssh-9.9p2-1
yum -y --disablerepo=* update ./*rpm
- 预期结果:OpenSSH 升级到
9.9.Xp2。
- 若报错
Requires: crypto-policies,则先安装:
yum -y install crypto-policies-20170816-1.git2618a6c.el7.noarch.rpm
- 然后重新执行 OpenSSH 升级命令。
- 预期结果:解决依赖问题后继续升级成功。
- 重启 SSH 服务:
systemctl restart sshd.service
- 预期结果:新版本 OpenSSH 生效。
- 依次对其他节点重复上述步骤。
- 预期结果:所有节点完成升级。
- 方法2:无法升级时的配置缓解
- 编辑
sshd_config:
vi /etc/ssh/sshd_config
- 添加或修改配置项:
LoginGraceTime 0
- 保存后重启
sshd:
systemctl restart sshd.service
- 依次对其他节点执行相同配置。
- 预期结果:所有节点完成配置级缓解。
- 收尾
- 检查各资源连接状态正常。
- 重新开启云主机全局高可用。
- 预期结果:平台恢复正常运行。
验证方法
- 检查
rpm -qa | grep openssh输出是否已到9.9.Xp2。 - 或检查
/etc/ssh/sshd_config中LoginGraceTime 0是否存在。 - 检查
systemctl restart sshd.service后 SSH 服务正常。 - 检查平台资源状态正常。
风险与回滚
- 风险:升级依赖不满足时会阻塞 OpenSSH 升级。
- 风险:错误修改
sshd_config可能影响 SSH 连接。 - 风险等级:低。
- 回滚:无独立命令级回退链路;升级场景需依赖原包或备份回退,配置场景可恢复原
sshd_config。
