美文网首页
Linux依赖升级系列(一)——升级Openssl

Linux依赖升级系列(一)——升级Openssl

作者: moutory | 来源:发表于2024-06-29 10:56 被阅读0次

    前言

    处于安全考虑,服务器需要定期检查上面的各种服务版本是否有高危漏洞,对检查到的过时的服务就需要及时升级,打算把Linux系统上面相关的服务/依赖升级整理成系列文章,方便后续自己回顾,同时也给有需要的读者一个参考

    一、openssl版本检查和升级准备

    步骤1:服务器编译依赖库检查

    大部分服务器都是预安装了gccmake等命令,不过为了保险起见,最好还是先检查一下是否满足安装openssl的依赖库

    yum -y install gcc gcc-c++ make libtool zlib zlib-devel
    
    步骤2:版本检查

    使用openssl version命令查看当前服务器上面openssl的版本,可以看到现在服务器上面的版本已经是2017年的版本了,下面我们开始对openssl进行升级

    查看当前的openssl版本
    步骤3:去官网下载指定版本的Openssl

    官网安装包下载地址:https://www.openssl.org/source/
    这里可以根据需要下载openssl3系列的安装包,因为3.0系列的是LTS(长期支持)版本相对更可靠一些,所以这里我选择使用openssl-3.0.14来进行下载

    官方下载地址

    二、安装新版本的openssl

    步骤1:上传和解压安装包

    这里上传的目录没有啥要求,选一个自己喜欢的路径就行,比如我这里就把安装包放在了/opt/uShell/openssl_update/source/路径下面

    cd /opt/uShell/openssl_update/source/
    tar -xzvf openssl-3.0.14.tar.gz 
    
    步骤2:配置新版本的openssl

    一般来说,我们自己安装的软件会偏向于放在/usr/local路径下面,所以这里就选择也安装在/usr/local里面,网上比较多的文章是直接把目录命名为openssl,但个人觉得说不定以后还得继续升级,把对应的版本号加上去会更清晰一些。

     cd openssl-3.0.14
    # 配置,--prefix为安装路径
    ./config --prefix=/usr/local/openssl-3.0.14
    

    注意,这里可能会因为本地的perl版本过低,导致配置无法正常执行

    config命令执行失败
    但是问题不大,安装一下缺失的依赖就行
     yum install -y perl-IPC-Cmd
    

    还有另外一种方法,就是升级本地perl版本,高版本的perl是自带perl-IPC-Cmd这个模块的,至于perl库的升级可以参考我另外一篇文章。

    步骤3:编译和安装

    这里有2个点需要注意,-j参数只是为了启动多核编译,加快一下速度,可加可不加。另外一个就是由于我们在上一步已经通过prefix参数配置了安装路径,所以这里不用担心安装完成后直接就把原有的openssl给覆盖掉。事实上,对于服务器上面的依赖升级,笔者觉得还是需要尽量保持谨慎,不要直接把原来的服务给删掉,防止出现升级失败后导致无法回滚的问题。

    # cd /opt/uShell/openssl_update/source/openssl-3.0.14
    # 编译并安装
    make -j8 && make -j8 install
    
    步骤4:备份旧的openssl入口文件和头文件(也就是依赖库)

    我们知道/usr/bin目录通常被包含在大多数用户的PATH环境变量中,这意味着用户可以在任何目录下通过命令行直接调用这些程序,openssl服务也不例外,我们之所以可以用openssl verion来执行相关的命令,就是因为原openssl安装在了/usr/bin目录下面,接下来我们就需要把原先在这个目录下的文件进行备份,然后建一个同名的软连接指向到我们安装在/usr/local目录下的openssl

    mv /usr/bin/openssl /usr/bin/openssl.1.0.2k-fips
    mv /usr/include/openssl /usr/include/openssl.1.0.2k-fips
    
    步骤5:创建软链接指向我们的安装路径
    ln -s /usr/local/openssl-3.0.14/bin/openssl  /usr/bin/openssl
    ln -s /usr/local/openssl-3.0.14/include/openssl /usr/include/openssl
    
    步骤6:更新动态链接库
    # 更新动态链接库
    echo "/usr/local/openssl-3.0.14/lib64" >> /etc/ld.so.conf
    ldconfig -v
    
    步骤7:检查openssl服务是否正常升级成功
    image.png

    注意事项

    部分openssl版本的头文件并不是放在/usr/include/openssl目录中的,而是放在其他目录,我们在备份的时候可以先通过openssl version -a来查看openssl的头文件位置。

    查看openssl头文件存放位置

    相关文章

      网友评论

          本文标题:Linux依赖升级系列(一)——升级Openssl

          本文链接:https://www.haomeiwen.com/subject/iacucjtx.html