> 技术文档 > CentOS7升级openssh10.0p2和openssl3.5.0详细操作步骤

CentOS7升级openssh10.0p2和openssl3.5.0详细操作步骤


背景

近期漏洞扫描时,发现有很多关于openssh的相关高危漏洞,因此需要升级openssh版本

升级步骤

由于opensshopenssl的版本是需要相匹配的,这次计划将openssh升级至10.0p2版本,将openssl升级至3.5.0版本,都是目前官网最新版本

升级包下载

openssh源码包官网下载地址:Index of /pub/OpenBSD/OpenSSH/portable/

openssl源码包官网下载地址:Downloads | OpenSSL Library

这里我们采用更加简单的方式来升级openssh,可以直接使用rpm包来升级opensshCentOS7openssh10.0p2版本rpm包下载地址:CentOS7系统openssh10.0p2版本rpm升级包资源-CSDN下载

升级openssh

查看系统版本

先使用命令 cat /etc/centos-release 查看下当前系统版本

查看软件版本

使用命令 ssh -V 查看当前openssh版本,使用命令 openssl version 查看当前openssl版本

拷贝安装文件

openssh10.0p2rpm文件拷贝至/root文件夹下,进入该文件夹里面可以看到3个rpm文件

卸载旧版软件

使用命令 rpm -qa | grep openssh 查看当前系统中安装的包含opensshrpm包

使用命令 rpm -e --nodeps 包名 将当前系统中安装的包含opensshrpm包卸载

再次使用命令 rpm -qa | grep openssh 查看当前系统安装的包中已经没有包含opensshrpm包

安装软件

使用命令 yum -y localinstall *.rpm 安装该文件夹下所有rpm

安装已完成

报错处理

安装完成后我们使用命令 systemctl start sshd 启动sshd服务,发现有报错

使用命令 systemctl status sshd.service 查看报错原因如下

Permissions 0640 for \'/etc/ssh/ssh_host_rsa_key\' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

译文:

“/etc/ssh/ssh_host_rsa_key”的权限0640太开放。
要求您的私钥文件不能被其他人访问。
此私钥将被忽略。

使用命令 chmod -v 600 /etc/ssh/ssh_host_*_key 更改文件权限

再次使用命令systemctl start sshd 启动sshd服务,服务已经正常启动了

验证

使用命令 ssh -V 查看当前openssh版本如下,但是使用命令 openssl version 查看当前openssl的版本还未更新

升级openssl

拷贝安装文件

openssl的源码包上传到系统/opt目录下,使用命令 tar -xvf openssl-3.5.0.tar.gz 解压

卸载旧版软件

使用命令 yum -y remove openssl 和 yum -y remove openssl-devel 卸载掉原有openssl安装包

安装相关依赖包

使用命令 yum -y install perl gcc perl-IPC-Cmd perl-ExtUtils-CBuilder先安装后面步骤所需的依赖包

配置、编译和安装

进入到openssl-3.5.0文件夹里面,使用命令 ./config 配置

使用命令 make && make install 编译安装,完成后还是看不到openssl的版本信息

更新软链接

使用如下命令

[root@localhost openssl-3.5.0]# ln -sf /usr/local/bin/openssl /usr/bin/openssl[root@localhost openssl-3.5.0]# ln -sf /usr/local/include/openssl /usr/include/openssl[root@localhost openssl-3.5.0]# ln -sf /usr/local/lib/libssl.so /usr/lib/libssl.so[root@localhost openssl-3.5.0]# ln -sf /usr/local/lib/libcrypto.so /usr/lib/libcrypto.so

更新共享库缓存

使用命令 ldconfig 更新下共享库缓存

/etc/profile添加环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openssl-3.5.0

使用命令  source /etc/profile 环境变量生效

验证

使用命令 openssl version 验证openssl版本已经成功更新

最终升级结果

最终升级结果如下图所示,再次漏洞扫描,发现之前关于openssh的中高危漏洞均消除

功能验证测试

最后不要忘记退出再重新ssh连接服务器进行测试,能顺利连上没有问题才行

(文章仅供参考,生产环境请测试好之后再谨慎操作)