openssh升级后还是老版本,openssl怎么升级到最新版本

  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的路径仅供参考,由具体的电脑环境决定。请参考升级说明。

openssh升级后还是老版本,openssl怎么升级到最新版本