文档目录

适用场景

  • 产品:ZCF
  • 组件:ZStack Cloud
  • 版本:4.8.x
  • 环境: ZStack 4.8.x、C76、双管理
  • 触发条件:需要对 OpenSSH Server 远程代码执行漏洞做整改。

问题现象

  • 当前节点上的 OpenSSH 版本为 8.7.Xp1-30.el7.x86_64。
  • 需要对所有节点实施修复或缓解。
  • 若不能直接升级,可采用配置方式降低风险。

判断方法

  1. 变更前检查各节点 openssh / openssl 版本。
  2. 升级后确认 openssh 已变为 9.9.Xp2,或确认 sshd_config 中已写入 LoginGraceTime 0。
  3. 检查 sshd 重启后服务正常,平台资源状态正常。

原因说明

本次用于整改 OpenSSH Server 远程代码执行漏洞,因此需要对所有节点做 OpenSSH 升级,或在无法升级时通过配置方式缓解风险。

解决方案

  1. 执行前准备
  • 风险等级:低风险。
  • 先确认各资源连接状态正常。
  • 先关闭云主机全局高可用。
  • 该方案覆盖所有节点。
  1. 方法1:升级 OpenSSH 到 9.9.Xp2
  2. 查看当前版本:
   rpm -qa | grep openssh
   rpm -qa | grep openssl
  • 预期结果:确认当前 openssh 和 openssl 版本。
  1. 若 OpenSSL 不是 1.1.Xs,则先升级:
   tar zxvf openssl1.1.1s-full.tgz && cd openssl1.1.1s-full
   bash update.sh
  • 预期结果:OpenSSL 升级到 1.1.Xs。
  1. 升级 OpenSSH:
   tar zxvf openssh-9.9p2-1.tgz && cd openssh-9.9p2-1
   yum -y --disablerepo=* update ./*rpm
  • 预期结果:OpenSSH 升级到 9.9.Xp2。
  1. 若报错 Requires: crypto-policies,则先安装:
   yum -y install crypto-policies-20170816-1.git2618a6c.el7.noarch.rpm
  • 然后重新执行 OpenSSH 升级命令。
  • 预期结果:解决依赖问题后继续升级成功。
  1. 重启 SSH 服务:
   systemctl restart sshd.service
  • 预期结果:新版本 OpenSSH 生效。
  1. 依次对其他节点重复上述步骤。
  • 预期结果:所有节点完成升级。
  1. 方法2:无法升级时的配置缓解
  2. 编辑 sshd_config:
   vi /etc/ssh/sshd_config
  1. 添加或修改配置项:
   LoginGraceTime 0
  1. 保存后重启 sshd:
   systemctl restart sshd.service
  1. 依次对其他节点执行相同配置。
  • 预期结果:所有节点完成配置级缓解。
  1. 收尾
  2. 检查各资源连接状态正常。
  3. 重新开启云主机全局高可用。
  • 预期结果:平台恢复正常运行。

验证方法

  • 检查 rpm -qa | grep openssh 输出是否已到 9.9.Xp2。
  • 或检查 /etc/ssh/sshd_config 中 LoginGraceTime 0 是否存在。
  • 检查 systemctl restart sshd.service 后 SSH 服务正常。
  • 检查平台资源状态正常。

风险与回滚

  • 风险:升级依赖不满足时会阻塞 OpenSSH 升级。
  • 风险:错误修改 sshd_config 可能影响 SSH 连接。
  • 风险等级:低。
  • 回滚:无独立命令级回退链路;升级场景需依赖原包或备份回退,配置场景可恢复原 sshd_config。
升级OpenSSH版本 | 技术方案 · KB | ZStack 资源中心