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

2024-06-29  本文已影响0人  moutory

前言

处于安全考虑,服务器需要定期检查上面的各种服务版本是否有高危漏洞,对检查到的过时的服务就需要及时升级,打算把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头文件存放位置
上一篇下一篇

猜你喜欢

热点阅读