Linux升级OpenSSL版本 - (OpenSSL拒绝服务漏洞、操作系统命令注入漏洞)

964 阅读1分钟

什么是openssl

openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。

openssl采用C语言作为开发语言,这使得它具有优秀的跨平台性能。openssl支持Linux、UNIX、windows、Mac等平台。

OpenSSL出现的漏洞

CVE-2020-1971 OpenSSL拒绝服务漏洞

详情:OpenSSL 在处理 EDIPartyName (X.509 GeneralName类型标识)的时候存在一处空指针解引用,并引起程序崩溃导致拒绝服务。远程攻击者通过构造特制的证书验证过程触发该漏洞,并导致服务端拒绝服务,影响业务/功能正常运行。

影响版本:OpenSSL: >1.1.1;<1.1.1h||>1.0.2;<1.0.2w

CVE-2022-1292 OpenSSL操作系统命令注入漏洞

详情:OpenSSL 存在操作系统命令注入漏洞,该漏洞源于c_rehash 脚本未正确清理 shell 元字符导致命令注入。攻击者利用该漏洞执行任意命令。

影响版本:OpenSSL: >=1.0.2,<=1.0.2zd||>=1.1.1,<=1.1.1n||>=3.0.0,<=3.0.2

如何升级OpenSSL到1.1.1最新版本

安装必要的依赖

# 安装zlib库
yum install -y zlib zlib-devel

#安装gcc、c++编译器以及内核文件
yum -y install gcc gcc-c++ kernel-devel

# 安装Perl
yum install perl
yum install cpan

下载最新文件并升级

OpenSSL官网地址:www.openssl.org/source/ ,选择1.1.1最新版本进行下载,并上传到服务器上。

# 解压文件
tar -zxvf openssl-1.1.1i

cd openssl-1.1.1i

# 配置,其中--prefix是指定安装目录的,shared zlib库是在安装时寻找zlib库依赖的,都不能少
./config --prefix=/usr/local/openssl shared zlib

make depend

make && make install

配置使用最新的版本

ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

# 把新的库文件地址写入记录so库的配置文件中去
echo "/opt/openssl/lib/" >> /etc/ld.so.conf

# 使配置生效并打印出来,如果不想显示具体内容,可以ldconfig
ldconfig -v

做一个软连接

ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/

ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/

ldconfig

查看版本

openssl version