背景
近期漏洞扫描时,发现有很多关于openssh的相关高危漏洞,因此需要升级openssh的版本
升级步骤
由于openssh和openssl的版本是需要相匹配的,这次计划将openssh升级至10.0p2版本,将openssl升级至3.5.0版本,都是目前官网最新版本
升级包下载
openssh源码包官网下载地址:Index of /pub/OpenBSD/OpenSSH/portable/
openssl源码包官网下载地址:Downloads | OpenSSL Library
这里我们采用更加简单的方式来升级openssh,可以直接使用rpm包来升级openssh,CentOS7的openssh10.0p2版本rpm包下载地址:CentOS7系统openssh10.0p2版本rpm升级包资源-CSDN下载
升级openssh
查看系统版本
先使用命令 cat /etc/centos-release 查看下当前系统版本
查看软件版本
使用命令 ssh -V 查看当前openssh版本,使用命令 openssl version 查看当前openssl版本
拷贝安装文件
将openssh10.0p2的rpm文件拷贝至/root文件夹下,进入该文件夹里面可以看到3个rpm文件
卸载旧版软件
使用命令 rpm -qa | grep openssh 查看当前系统中安装的包含openssh的rpm包
使用命令 rpm -e --nodeps 包名 将当前系统中安装的包含openssh的rpm包卸载
再次使用命令 rpm -qa | grep openssh 查看当前系统安装的包中已经没有包含openssh的rpm包
安装软件
使用命令 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连接服务器进行测试,能顺利连上没有问题才行
(文章仅供参考,生产环境请测试好之后再谨慎操作)