openssh升级后还是老版本,openssl怎么升级到最新版本
相关软件Apache:http://httpd.apache.org/
nginx:http://nginx . org/en/download . html
OpenSSL:http://www.openssl.org/
openssl-poc
附件PoC.py:漏洞测试的PoC脚本
Showssl.pl:OpenSSL动态库版本检测脚本
OpenSSL安装说明
由于操作环境不同,以下程序仅供参考。Openssl是一个系统app应用,依赖于很多APP应用。由于环境差异等因素,请先在测试环境中充分测试。
从官方下载最新版本的opensssl库
www.OpenSSL.org/source/OpenSSL-1.0.1 g.tar.gz wget 3359号
未压缩的openssl压缩包
塔尔-zxvf openssl-1.0.1g.tar.gz
进入解压缩的openssl文件夹。
cd openssl-1.0.1g
可执行文件夹中的. Config文件。其中,openssl的安装目录默认为/usr/local/ssl。(因为路径可能会因系统环境不同而有所不同,下同))请注意添加zlib-dynamic参数并编译到动态库中。
代码如下所示
复制代码。/config共享zlib-动态
配置完成后,运行make命令。
组成/弥补/化妆/编造/和好/配置/补考/铺(床)
运行make命令后,运行make install命令来安装openssl
制造装置
重命名原始的openssl命令
mv/usr/gld yg/OpenSSL/usr/gld yg/OpenSSL . old
重命名原始的openssl目录
mv/usr/include/OpenSSL/usr/include/OpenSSL . old
将安装的OpenSSL OpenSSL命令轻轻地连接到/usr/gldyg/openssl
ln-s/usr/local/SSL/gld yg/OpenSSL/usr/gld yg/OpenSSL
将安装的openssl的openssl目录轻轻地连接到/usr/include/openssl
ln-s/usr/local/SSL/include/OpenSSL/usr/include/OpenSSL
修改系统自带的openssl库文件,比如/usr/local/lib64/libssl.so(取决于电脑环境)升级软链后的libssl.so。
ln-s/usr/local/SSL/lib/libssl . so/usr/local/lib 64/libssl . so
运行命令以确定openssl相关库的版本是否为1.0.1g.
strings/usr/local/lib 64/libssl . so grep OpenSSL
将openssl库文件的搜索路径写入/etc/ld.so.conf文件。
echo /usr/local/SSL/lib /etc/LD . so . conf
启用修改后的/etc/ld.so.conf
ldconfig -v
确定openssl的当前版本是否是升级版本。
OpenSSL版本
更新web服务器上的OpenSSL依赖库
如果在安装和编译web服务器时加载了openssl,您还需要重启或重新编译web服务器。安装web服务器有两种方式:openssl的动态编译和静态编译,所以具体操作方法不同。
确定webserver是否动态编译ssl的两种方法
使用ldd命令显示从属库。
LD查看器依赖于库。如果有libssl.so,就会动态编译ssl,否则就是静态的。下图:
查看编译参数
如果在命令/usr/sgldyg/nginx -V中输入verify nginx编译参数,该参数将动态编译ssl(如果不存在),反之亦然。
更新Openssl库a(如果webserver通过动态编译安装ssl,重启相应的webserver服务,比如apache和nginx)。
b)如果web服务器静态编译并安装ssl,可以使用以下方法进行更新:
如果apache静态编译ssl:
在apache中重新安装源代码,并使用ssl静态编译它:
运行apache配置文件时,除了业务需要的参数外,还必须将ssl指定为静态编译。
代码如下所示
复制代码。/configure-enable-SSL=static-with-SSL=/usr/local/SSL
(openssl安装路径)
安装apache
代码如下所示
复制代码
制造和安装
恢复原始的apache配置,然后重新启动服务
如果nginx静态编译ssl:
在nginx上重新安装源代码,并使用ssl静态编译它:
运行nginx配置文件时,除了业务需要的参数外,还必须指定ssl为静态编译。如果编译参数标记为- with-openssl,则显示为静态编译的ssl。
代码如下所示
复制代码。/configure-with-http _ SSL _ module-with-OpenSSL=/usr/local/SSL
(openssl安装路径)
安装nginx
代码如下所示
复制代码
制造和安装
恢复原始nginx配置并重新启动服务。
如果要使用其他openssl,请参考apache和nginx解决方案。
测试漏洞。
根据脚本提示,使用附件PoC.py检测漏洞。
例如:
3359192.168.0.1测试漏洞中是否有执行命令
代码如下所示
复制代码
python POC.py-p443,8443192.168.0.1
检查动态库libssl.so的版本
检测当前进程使用的libssl.so版本。
运行附件showssl.pl检查脚本,无信息输出或无漏洞版本openssl输出表示升级成功;如果输出中有未知,请检查业务中的libssl.so.1.0.0版本是否受影响。
(详见附件)
代码如下所示
复制代码
#!/usr/gldyg/perl -w
my @ listinfo=` lsof grep libssl awk { print $ 1 $ 2 $ nf } sort-u `;
foreachmy$info(@listinfo))))))))))))))).
{
my($procname,$procPid,$libPath )=split )/s/,$ info);
下一个if(!efined($procname ) !efined($procpid ) !efined($ libpath);
我的$ version=` strings $ libpath grep-e ^ OpenSSL[0-9]。[0-9] `;
chomp $ version
(if($ version=~ ~/s * OpenSSL * 1 . 0 . 1[a-f]{ 0,2 }/())))))))))
{
打印 $ procname($ procPID):$ libpath)$ version)。n);
}
}
检查系统中使用的libssl.so版本。
执行命令:
代码如下所示
复制代码
strings/usr/local/lib 64/libssl . so grep OpenSSL
确定openssl相关库的版本是否为1.0.1g
注意:/usr/local/lib64/libssl.so的路径仅供参考,由具体的电脑环境决定。请参考升级说明。