失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【转】linux /centos 中OpenSSL升级方法详解

【转】linux /centos 中OpenSSL升级方法详解

时间:2022-03-13 23:53:47

相关推荐

【转】linux /centos 中OpenSSL升级方法详解

相关软件下载地址

Apache:/

Nginx:/en/download.html

OpenSSL:/

openssl-poc

附件说明

PoC.py : 漏洞利用测试PoC脚本

showssl.pl:OpenSSL动态库版本检测脚本

安装OpenSSL步骤

由于运营环境不同,以下过程仅供参考。openssl属于系统应用,被较多应用依赖,由于环境不同等因素,请先在测试环境进行充分测试。

从官方下载最新版本的opensssl库

wget /source/openssl-1.0.1g.tar.gz

解压下载的openssl压缩包

tar -zxvf openssl-1.0.1g.tar.gz

进入解压后的openssl文件夹

cd openssl-1.0.1g

执行文件夹中的config文件,这里openssl的安装目录默认是/usr/local/ssl(由于系统环境差异路径可能不一致,下同),注意添加zlib-dynamic参数,使其编译成动态库

ldconfig -v

查看现在openssl的版本是否是升级后的版本

openssl version

更新Webserver的 OpenSSL依赖库

如果webserver在安装编译时加载了openssl,还需对webserver进行重启或者重新编译操作。因webserver安装时分为动态编译和静态编译openssl两种方式,所以具体操作方式也不同。

判断webserver是否为动态编译ssl的两种方法

通过ldd命令查看依赖库

ldd查看程序依赖库,存在libssl.so则为动态编译ssl(如上图),反之为静态(如下图):

查看编译参数

如输入以命令/usr/sbin/nginx -V,查看nginx的编译参数,参数中不存在--with-openssl则为动态编译ssl的,反之为静态:

更新OpenSSL库

a) 如果webserver是动态编译ssl安装的,直接重启apache,nginx等相应webserver服务即可。

b) 如果webserver是静态编译ssl安装的,可参照以下方法更新:

apache静态编译ssl的情况:

源码重新安装apache,使用ssl静态编译:

执行apache的configure文件时,除了业务需要的参数外,需要指定ssl为静态编译

安装apache

恢复原有apache配置,重启服务即可

nginx静态编译ssl的情况:

源码重新安装nginx,使用ssl静态编译:

执行nginx的configure文件时,除了业务需要的参数外,需要指定ssl为静态编译,编译参数带上--with-openssl便表明为静态编译ssl

安装nginx

恢复原有nginx配置,重启服务即可

如有其他使用openssl的情况,参照apache和nginx的解决方式。

测试漏洞是否存在

使用附件PoC.py根据脚本提示检测是否存在漏洞。

如:

测试https://192.168.0.1漏洞是否存在执行命令如下

检测动态库libssl.so版本

检测当前进程使用的libssl.so版本

执行附件showssl.pl检查脚本,无信息输出或无漏洞版本openssl输出,表示升级成功;如输出中有unknown,请业务自查libssl.so.1.0.0的版本是否是受影响的版本。

(详情见附件)

检测系统使用的libssl.so版本

执行命令:

查看openssl依赖库版本是否为1.0.1g

注:/usr/local/lib64/libssl.so 路径仅供参考,由具体机器环境决定,参考升级步骤

如果觉得《【转】linux /centos 中OpenSSL升级方法详解》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。