漏洞描述:

OpenSSL 是 OpenSSL团队的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输层(TLSv1)协议的通用加密库。该产品支持多种加密算法,包括对称密码、哈希算法、安全散列算法等。近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSL 安全漏洞(CNNVD-202207-242、CVE-2022-2274)情况的报送。成功利用此漏洞的攻击者,成功利用此漏洞的攻击者,可造成目标机器内存损坏,进而在目标机器远程执行代码。OpenSSL 3.0.4版本受漏洞影响。

危害影响:

成功利用此漏洞的攻击者,可造成目标机器内存损坏,进而在目标机器远程执行代码。OpenSSL 3.0.4版本受漏洞影响。

影响版本:

OpenSSL版本号 == 3.0.4

使用OpenSSL1.1.1/1.0.2 的用户不受到该漏洞影响。

可以使用openssl version以及ssh -V 命令来查询当前openssl版本。

修复建议:

目前,OpenSSL官方已发布新版本修复了漏洞,请用户及时确认是否受到漏洞影响,尽快采取修补措施。官方链接如下:

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=4d8a88c134df634ba610ff8db1eb8478ac5fd345

升级步骤:

1、为避免升级过程中网络中断或升级失败,导致ssh连接不上服务器,在服务器上提前安装并启用telnet服务,ssh方式连接不上服务器时可以用telnet方式连接服务器。

Telnet服务安装启用步骤:

2、下载升级所需安装包并上传服务器

1)openssl-3.0.5
https://www.openssl.org/source/openssl-3.0.5.tar.gz

2)openssh-9.0p1.tar.gz 
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz 

3)zlib-1.2.11.tar.gz
https://www.zlib.net/fossils/zlib-1.2.11.tar.gz

3、安装zlib

tar xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install

4、安装openssl

#备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak

#安装openssl
tar xvf openssl-3.0.5.tar.gz
cd openssl-3.0.5
./config --prefix=/usr/local/openssl shared zlib      
#此步一定要加上shared 和zlib 参数,要不在安装openssh的时候就无法找到安装路径
make && make install

#因为上一步openssl安装的位置是 /usr/local/openssl     需要将创建软链接到系统位置
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

#将openssl 的lib 库添加到系统,或者直接使用vi编辑生成该文件
echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf

#使新添加的lib被系统找到
ldconfig

#查看openssl版本,如果能正常显示openssl最新的版本,证明安装成功
openssl version -a

5、安装openssh

#备份原openssh文件	
mv /etc/init.d/ssh /etc/init.d/ssh.old
cp -r /etc/ssh /etc/ssh.old

#openssh
tar xvf openssh-9.0p1.tar.gz 
cd openssh-9.0p1 
./configure --prefix=/usr --sysconfdir=/etc/ssh  --with-pam --with-zlib --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd #需要指定openssl的安装路径
make && make install

#查看并确认当前SSH的版本。
ssh -V
sshd -V

#还原ssh配置及启动程序
cd /etc/ssh
mv sshd_config sshd_config.default
cp ../ssh.old/sshd_config ./
mv /etc/init.d/ssh.old /etc/init.d/ssh

#取消注销指定服务
systemctl unmask ssh

#重启服务
systemctl restart sshd

#查看ssh端口是否正常启动监听并进行ssh登陆验证测试
netstat -lntp |grep ssh