背景
近期漏洞掃描時,發現有很多關于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連接服務器進行測試,能順利連上沒有問題才行
(文章僅供參考,生產環境請測試好之后再謹慎操作)