精华内容
下载资源
问答
  • 升级openssl

    2016-03-21 16:01:00
    升级openssl 依赖openssl的软件,如果是静态编译openssl,那么需要重新编译软件,如果是利用openssl的so动态库,那么只需要替换一下so文件并重启软件即可 openssh也依赖openssl 参考文章 ...

    升级openssl

     

    依赖openssl的软件,如果是静态编译openssl,那么需要重新编译软件,如果是利用openssl的so动态库,那么只需要替换一下so文件并重启软件即可

    openssh也依赖openssl

     

    参考文章

    http://www.111cn.net/sys/CentOS/61326.htm

    http://bguncle.blog.51cto.com/3184079/1392870/

    http://www.cnblogs.com/doomsword/p/3654131.html

    http://baike.baidu.com/link?url=-JPAJup4lhmkzO__PjR9IeyHzJ46WjSHYQQSxaQYOxnjc2DVrkzJHRV5M56vhFgiif7Ir_-9spu2mgj8VtMXMq

     

    今天用rkhunter检测了一下服务器,检测结果报:openssl版本太低

    # grep  -i OpenSSL /var/log/rkhunter.log
    [13:43:50]     Checking for string '/usr/include/openssl'    [ Not found ]
    [13:44:11]   Checking version of OpenSSL                     [ Warning ]
    [13:44:11] Warning: Application 'openssl', version '1.0.1e', is out of date, and possibly a security risk.

     

    ln -s /usr/local/ssl/bin/openssl  /usr/bin/openssl              静态编译用  静态库
    ln -s /usr/local/ssl/lib/libssl.so /usr/local/lib64/libssl.so  动态编译用   动态库

     

    strings /usr/lib64/libssl.so.10 |grep -i openssl
    OpenSSLDie
    OPENSSL_cleanse
    OPENSSL_DIR_read
    OPENSSL_DIR_end
    OPENSSL_init_library
    OPENSSL_1.0.1
    OPENSSL_1.0.1_EC
    SSLv2 part of OpenSSL 1.0.1e-fips 11 Feb 2013
    SSLv3 part of OpenSSL 1.0.1e-fips 11 Feb 2013
    TLSv1 part of OpenSSL 1.0.1e-fips 11 Feb 2013
    DTLSv1 part of OpenSSL 1.0.1e-fips 11 Feb 2013
    OpenSSL 1.0.1e-fips 11 Feb 2013

     




    rpm -ql openssl
    /usr/bin/openssl
    /usr/lib64/libcrypto.so.1.0.1e
    /usr/lib64/libcrypto.so.10
    /usr/lib64/libssl.so.1.0.1e
    /usr/lib64/libssl.so.10
    /usr/lib64/openssl

     

     

     

    http://baike.baidu.com/link?url=-JPAJup4lhmkzO__PjR9IeyHzJ46WjSHYQQSxaQYOxnjc2DVrkzJHRV5M56vhFgiif7Ir_-9spu2mgj8VtMXMq
    Heartbleed漏洞之所以得名,是因为用于.

    安全传输层协议(TLS)及

    数据包传输层安全协议(DTLS)

    的 Heartbeat扩展存在漏洞。

    Heartbeat扩展为TLS/DTLS提供了一种新的简便的连接保持方式,但由于OpenSSL 1.0.2-beta与OpenSSL 1.0.1在处理TLS heartbeat扩展时的边界错误,

    攻击者可以利用漏洞披露连接的客户端或服务器的存储器内容,导致攻击者不仅可以读取其中机密的加密数据,还能盗走用于加密的密钥


    受影响的OpenSSL版本:
    最后更新于2014年4月9日,据Heartbleed和OpenSSL网站上的信息。[8]
    受影响:
    OpenSSL 1.0.2-beta[8]
    OpenSSL 1.0.1 - OpenSSL 1.0.1f[8]
    除非针对CVE-2014-0160的操作系统补丁已经安装,而没有更改库版本,如Debian、Red Hat Enterprise Linux(及其派生版,如CentOS、Amazon Linux)或Ubuntu(及其派生版,如Linux Mint)。
    不受影响:
    OpenSSL 1.0.2-beta2(将来版本)[8]
    OpenSSL 1.0.1g[8]
    OpenSSL 1.0.0(及1.0.0的分支版本)[8]
    OpenSSL 0.9.8(及0.9.8的分支版本)[8]
    要解决此漏洞,建议服务器管理员或使用1.0.1g版,或使用-DOPENSSL_NO_HEARTBEATS选项重新编译OpenSSL,从而禁用易受攻击的功能,直至可以更新服务器软件。[8] .
    单独应用这个补丁并不能修复漏洞。还必须重新启动相关服务和/或重启服务器,这样修补过的OpenSSL才能被应用,然后重新生成所有的私钥和密码。[8]

     


    鉴于openssl 1.0.1的安全漏洞, 现在都升级1.0.1g版本的openssl了, 这里记录下升级流程.
    
    0. 先查看当前安装的版本
    
       ssh -V 查看ssh版本
    
       openssl version -a 查看openssl版本
    
    1. 首先到官网下载新版的源码包
    
         openssh: http://www.openssh.com/portable.html 这里, 官网上找到的下载有两种, 一种是直接下载OpenBSD的(附带openssh, 显然不是我等需要的), 另外一种就是这种portable版的
    
         openssl:  http://www.openssl.org/source/
    
    2. 先安装openssl, 一定记得加上--shared选项, 否则openssh编译的时候会找不到新安装的openssl的library, 会报错: openssl的 header和library版本不匹配
    
        ./config --prefix=/usr --shared
        make
        make test
        make install
    
        完毕后查看openssl版本安装是否正确
    
    3. 安装openssh
    
        ./configure --prefix=/usr --with-pam --with-zlib --with-md5-passwords
         make
         make install
    
         这种安装会把sshd的配置文件放在/usr/etc/sshd_config
    
         需要重启sshd服务并且重新登录shell, 才能查看openssh是否已经安装新版本, 建议先保留安装openssh的这个shell, 另开一个shell测试, 防止设置错误导致服务器无法连接

    相关软件下载地址
    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属于系统应用,被较多应用依赖,由于环境不同等因素,请先在测试环境进行充分测试。
    从官方下载最新版本的opensssl库
    wget https://www.openssl.org/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参数,使其编译成动态库

     代码如下 复制代码
    ./config shared zlib-dynamic
    config完成后执行 make 命令
    make
    make 命令执行完后再执行 make install 命令,安装openssl
    make install
    重命名原来的openssl命令
    mv /usr/bin/openssl  /usr/bin/openssl.old
    重命名原来的openssl目录
    mv /usr/include/openssl  /usr/include/openssl.old
    将安装好的openssl 的openssl命令软连到/usr/bin/openssl
    ln -s /usr/local/ssl/bin/openssl  /usr/bin/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/lib64/libssl.so
    执行命令查看openssl依赖库版本是否为1.0.1g:
    strings /usr/local/lib64/libssl.so |grep OpenSSL
    在/etc/ld.so.conf文件中写入openssl库文件的搜索路径
    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
    使修改后的/etc/ld.so.conf生效

    ldconfig -v
    查看现在openssl的版本是否是升级后的版本
    openssl version
    更新Webserver的 OpenSSL依赖库
    如果webserver在安装编译时加载了openssl,还需对webserver进行重启或者重新编译操作。因webserver安装时分为动态编译和静态编译openssl两种方式,所以具体操作方式也不同。
    判断webserver是否为动态编译ssl的两种方法


    通过ldd命令查看依赖库


    ssl1

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

    ssl2

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

    更新OpenSSL库
    a) 如果webserver是动态编译ssl安装的,直接重启apache,nginx等相应webserver服务即可。
    b) 如果webserver是静态编译ssl安装的,可参照以下方法更新:
    apache静态编译ssl的情况:
    源码重新安装apache,使用ssl静态编译:
    执行apache的configure文件时,除了业务需要的参数外,需要指定ssl为静态编译

     代码如下 复制代码
    ./configure --enable-ssl=static --with-ssl=/usr/local/ssl
    (openssl的安装路径)

    安装apache

     代码如下 复制代码
    make && make install

    恢复原有apache配置,重启服务即可
    nginx静态编译ssl的情况:
    源码重新安装nginx,使用ssl静态编译:
    执行nginx的configure文件时,除了业务需要的参数外,需要指定ssl为静态编译,编译参数带上--with-openssl便表明为静态编译ssl

     代码如下 复制代码
    ./configure  --with-http_ssl_module --with-openssl=/usr/local/ssl
    (openssl的安装路径)

    安装nginx

     代码如下 复制代码
    make && make install

    恢复原有nginx配置,重启服务即可
    如有其他使用openssl的情况,参照apache和nginx的解决方式。
    测试漏洞是否存在
    使用附件PoC.py根据脚本提示检测是否存在漏洞。
    如:
    测试https://192.168.0.1漏洞是否存在执行命令如下

     代码如下 复制代码
    python PoC.py -p 443,8443 192.168.0.1

    检测动态库libssl.so版本
    检测当前进程使用的libssl.so版本
    执行附件showssl.pl检查脚本,无信息输出或无漏洞版本openssl输出,表示升级成功;如输出中有unknown,请业务自查libssl.so.1.0.0的版本是否是受影响的版本。
    (详情见附件)

     代码如下 复制代码
    #!/usr/bin/perl -w
    my @listInfo = `lsof |grep libssl|awk '{print $1" "$2" "$NF}'|sort -u`;
    foreach my $info (@listInfo)
    {
    my ($procName, $procPid, $libPath) = split(/s/, $info);
    next if (!defined($procName) || !defined($procPid)|| !defined($libPath));
    my $version = `strings $libPath|grep -E "^OpenSSL [0-9]+.[0-9]+"`;
    chomp $version;
    if ($version =~ /s*OpenSSLs*1.0.1[a-f]{0,2}/)
    {
    print "$procName($procPid) : $libPath ($version).n";
    }
    }

    检测系统使用的libssl.so版本
    执行命令:

     代码如下 复制代码
    strings /usr/local/lib64/libssl.so |grep OpenSSL

    查看openssl依赖库版本是否为1.0.1g
    注:/usr/local/lib64/libssl.so 路径仅供参考,由具体机器环境决定,参考升级步骤

     

    转载于:https://www.cnblogs.com/MYSQLZOUQI/p/5302346.html

    展开全文
  • php7版本openssl扩展升级安装,swoole openssl扩展安装高版本自定义编译安装php升级openssl扩展,swoole升级openssl扩展报错configure: error: Cannot find OpenSSL's libraries异常使用第三项 php升级openssl扩展,...

    php7版本openssl扩展升级安装,swoole openssl扩展安装高版本自定义编译安装

    php升级openssl扩展,swoole升级openssl扩展

    报错configure: error: Cannot find OpenSSL’s libraries异常使用第三项

    在这里插入图片描述

    展开全文
  • CentOS 升级 openssl

    万次阅读 2016-12-22 19:20:51
    CentOS 升级 openssl1. 安装依赖环境:yum install pcre-devel zlib unzip git2. 查看当前 OpenSSL 版本openssl version OpenSSL 1.0.1e-fips 11 Feb 2013 3. 下载 OpenSSL 的最新版去官网 ...

    CentOS 升级 openssl

    1. 安装依赖环境:

    yum install pcre-devel zlib unzip git

    2. 查看当前 OpenSSL 版本

    openssl version

    OpenSSL 1.0.1e-fips 11 Feb 2013

    3. 下载 OpenSSL 的最新版

    去官网 https://www.openssl.org/source/ 选择最新的就可以。我这边现在是 1.1.0c。

    wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz
    tar -zxvf openssl-1.1.0c.tar.gz

    4. 编译安装

    ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic
    make depend
    make && make install

    我这里在编译安装的时候出现了一个问题

    make depend && make _all
    make[1]: Entering directory `/root/openssl-1.1.0c'
    make[1]: Leaving directory `/root/openssl-1.1.0c'
    make[1]: Entering directory `/root/openssl-1.1.0c'
    gcc  -I. -Icrypto/include -Iinclude -DZLIB -DZLIB_SHARED -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/etc/ssl\"" -DENGINESDIR="\"/usr/lib/engines-1.1\"" -Wall -O3 -pthread -m64 -DL_ENDIAN  -Wa,--noexecstack -fPIC -DOPENSSL_USE_NODELETE -MMD -MF crypto/asn1/a_bitstr.d.tmp -MT crypto/asn1/a_bitstr.o -c -o crypto/asn1/a_bitstr.o crypto/asn1/a_bitstr.c
    /tmp/ccalSfWL.s: Assembler messages:
    /tmp/ccalSfWL.s:518: Error: expecting string instruction after `rep'
    /tmp/ccalSfWL.s:557: Error: expecting string instruction after `rep'
    make[1]: *** [crypto/asn1/a_bitstr.o] Error 1
    make[1]: Leaving directory `/root/openssl-1.1.0c'
    make: *** [all] Error 2

    出现这个问题的原因是因为我在之前把 gcc 升级到了 4.8.2,随之而来的就是这个 问题

    解决方法如下:

    wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
    yum install devtoolset-2-gcc devtoolset-2-binutils
    yum install devtoolset-2-gcc-gfortran

    参考内容1参考内容2

    5. 拷贝 so 库到指定位置

    cp /usr/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    cp /usr/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

    6. 查看 OpenSSL 最新版本

    openssl version

    OpenSSL 1.1.0c 10 Nov 2016

    完成。

    展开全文
  • 但是Centos7默认的openssl版本又太低,根据“漏洞参考这里:https://www.trustasia.com/OpenSSL-CVE-2016-2107-Padding-Oracle”查看这篇文章发现openssl低版本已经有一堆漏洞了,所以就萌生了升级openssl版本的想法...

    由于本站是采用的Centos7+宝塔面板搭建的LNMP环境,但是Centos7默认的openssl版本又太低,根据“漏洞参考这里:https://www.trustasia.com/OpenSSL-CVE-2016-2107-Padding-Oracle”查看这篇文章发现openssl低版本已经有一堆漏洞了,所以就萌生了升级openssl版本的想法。

    配置完后如图:

    97d55d9aa97ffe2fa63c47e4442b4366.png

    openssl版本低会导致无论你怎么配置ssl网站都会一堆漏洞,评价F甚至更低。“测试ssl安全性地址:https://www.ssllabs.com/ssltest/”

    CentOS 升级 openssl

    1. 安装依赖环境:

    yum install pcre-devel zlib unzip git

    2. 查看当前 OpenSSL 版本:

    openssl version

    得到结果:

    OpenSSL 1.0.1e-fips 11 Feb 2013

    3. 下载 OpenSSL 的最新版:

    wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz

    tar -zxvf openssl-1.1.0c.tar.gz

    4. 进入目录编译安装:

    cd openssl-1.1.0c

    ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic

    make depend

    make && make install

    如果不能make就说明没有安装gcc

    yum install gcc gcc-c++ autoconf automake

    如果提示:

    zlib.h: No such file or directory

    就说明缺少zlib的头文件, 开发包没装

    yum install zlib (系统默认已经装上)

    yum install zlib-devel

    5. 拷贝 so 库到指定位置

    cp /usr/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

    cp /usr/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

    6. 查看 OpenSSL 最新版本

    openssl version

    OpenSSL 1.1.0d  26 Jan 2017

    nginx 配置,只贴出 SSL 相关,开启Http/2要求nginx版本1.9以后,一般都是1.10...

    需要将配置放到 conf 的 server {} 位置。

    首先开启 ssl 和http/2

    listen 80;

    listen 443 ssl http2;

    server_name aisoa.cn www.aisoa.cn;

    index index.php index.html index.htm default.php default.htm default.html;

    root /www/wwwroot/aisoa.cn;

    #error_page 404/404.html;

    ssl_certificate      key/aisoa.cn/key.csr;

    ssl_certificate_key  key/aisoa.cn/key.key;

    生成 dhparam.pem,作用自行百度...

    cd /etc/ssl/certs

    openssl dhparam -out dhparam.pem 4096

    配置到 nginx:

    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    协议和 ciphers 选择

    ciphers 的选择比较关键,这个配置中的 ciphers 支持大多数浏览器,但不支持 XP/IE6。

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_stapling on;

    ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";

    ssl_prefer_server_ciphers on;

    ssl session 配置:

    ssl_session_cache shared:SSL:10m;

    ssl_session_timeout 10m;

    HSTS配置,这个对评分影响也比较大,但如果开启这个,需要全部网站都开启HTTPS 。

    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

    完整配置文件:

    server {

    listen 443 ssl http2;

    server_name aisoa.cn www.aisoa.cn;

    ssl on;

    ssl_certificate /etc/ssl/certs/你的证书.crt;

    ssl_certificate_key /etc/ssl/private/你的密钥.key;

    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    ssl_session_cache shared:SSL:10m;

    ssl_session_timeout 10m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_stapling on;

    ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";

    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

    location / {

    # pass

    }

    }

    展开全文
  • Linux升级openssl

    2018-11-29 13:46:43
     升级Openssl的执行步骤(在升级之前,最好去官网上看看当前处于更新状态的的版本有哪些,下载最新更新版) 下面选择使用openssl-1.0.2q.tar.gz cd /usr/local/src/ wget ...
  • linux 升级 openssl、curl

    2021-06-07 10:35:08
    升级 openssl openssl 1.0.2 用户 Openssl官方提示:OpenSSL 1.0.2 is out of support and no longer receiving public updates. Extended support is available for premium support customers: ...
  • 漏扫报告中提示ssl、ssh版本有漏洞,本文档主要介绍在CentOS7中升级openssl、openssh步骤,经亲自测试可用,所有安装包通过网络下载源码,编译安装进行升级。
  • nginx升级OpenSSL

    2018-03-05 15:01:51
    nginx版本:nginx-1.11.12openssl版本:...步骤:升级openssl-1.0.2j #yum -y install gcc*安装第三方库 yum install -y pcre pcre-devel //使nginx支持正则表达式 yum install -y zlib zlib-devel //使nginx支持...
  • centos7.4 升级openssl环境至openssl-1.1.0c

    千次阅读 2018-06-25 23:37:44
    升级openssl环境至openssl-1.1.0c升级openssl环境至openssl-1.1.0c1、查看源版本[root@zj ~]# openssl version -aOpenSSL 1.0.1e-fips 11 Feb 20132、下载 openssl-1.1.0c.tar.gz最新版本可以在这个网站下载:...
  • Ubuntu16.04升级openssl到1.1.1

    千次阅读 2019-10-13 20:40:27
    Ubuntu16.04升级openssl到1.1.1 查看openssl的版本 openssl version 下载 到官网下载合适的openssl版本 https://www.openssl.org/source/ wget https://www.openssl.org/source/openssl-1.1.0k.tar.gz tar -zxf ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,323
精华内容 10,929
关键字:

如何升级openssl