解决生产环境遇到的curl和yum命令报错问题

 更新时间:2024年09月30日 11:01:56   作者:小马运维的一天  
在银河麒麟V10SP2arm64系统下,升级sshd服务同时升级了openssl至1.1.1l版本,导致curl和yum命令报错,分析原因是openssl版本与libcurl.so.4文件不兼容,尝试修复无效后,通过重新编译安装curl解决问题,建议在升级openssl时谨慎

1.背景

生产环境进行了漏洞扫描检测出sshd服务的版本漏洞(CVE-2024-6387),给出的解决方案是升级最新版本的sshd服务即最新版本9.8,升级sshd服务需要依赖openssl,在升级的同时也将openssl版本进行了升级,升级的openssl版本是openssl-1.1.1l。

使用的操作系统是银河麒麟V10SP2 arm64。

2.过程

升级完成后ssh服务测试正常使用没有问题

但是curl和yum命令执行时分别出现了如下报错

curl: relocation error: /lib64/libcurl.so.4: symbol SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference

curl命令报错如下

yum命令报错如下

根据报错分析是升级openssl的版本和现有的版本的libcurl.so.4的文件不兼容导致,因此也查询了资料进行了修复,但是都没有效果,最终决定重新编译安装curl命令试试。

编译安装curl命令如下

  • step1:下载curl源码包
wget https://curl.se/download/curl-8.8.0.tar.gz
  • step2:解压
tar xf curl-8.8.0.tar.gz
  • step3:编译(使用刚才升级的openssl作为依赖)
cd curl-8.8.0/
./configure --prefix=/usr/src --with-ssl=/usr/local/ssl
  • step4:安装
make && make install

编译安装完成后会在/usr/src/目录下生成4个目录/usr/src/{bin,include,lib,share},curl命令的可执行文件在bin目录下,我们可以进行测试一下:

测试curl命令可以正常使用,但是yum命令还不行

此时我们可以查看新编译安装的curl命令的lib目录/usr/src/lib目录下有libcurl.so.4软连接的文件

我们将原机器的libcurl.so.4文件进行备份,用新编译的文件进行一个替换操作

[root@ths01 ~]# ls -l /lib64/libcurl.so.4
lrwxrwxrwx 1 root root 16 Jun  8  2020 /lib64/libcurl.so.4 -> libcurl.so.4.6.0
[root@ths01 ~]# mv /lib64/libcurl.so.4.6.0 /lib64/libcurl.so.4.6.0_bak
[root@ths01 ~]# chmod +x libcurl.so.4.8.0
[root@ths01 ~]# mv libcurl.so.4.8.0 /lib64/libcurl.so.4.6.0

此时们再次使用curl和yum命令就会恢复正常

3.结论

在生产环境升级ssh服务过程中尽量不升级openssl版本,其它跟openssl相关的操作也是一样,避免对其它依赖旧版openssl的命令或者组件带来影响,虽然影响范围不是很大,也算是一个小的问题,因此需要谨慎操作。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • thrift安装遇到的问题以及解决方法(必看篇)

    thrift安装遇到的问题以及解决方法(必看篇)

    下面小编就为大家带来一篇thrift安装遇到的问题以及解决方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • linux特殊权限使用(suid、sgid、sbit)

    linux特殊权限使用(suid、sgid、sbit)

    这篇文章主要介绍了linux特殊权限使用(suid、sgid、sbit),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Linux服务器和docker时区修改问题

    Linux服务器和docker时区修改问题

    这篇文章主要介绍了Linux服务器和docker时区修改问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Linux系统中时间的获取和使用

    Linux系统中时间的获取和使用

    时间的获取在我们日常工作中是经常遇到的,下面这篇文章主要给大家介绍了关于Linux系统中时间的获取和使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-11-11
  • Linux调整命令历史方法详解

    Linux调整命令历史方法详解

    这篇文章主要介绍了Linux调整命令历史方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • LINUX服务器安装SVN服务实现方式

    LINUX服务器安装SVN服务实现方式

    本文介绍了如何使用yum安装Subversion,创建版本库,配置SVN服务,并解决常见问题,详细步骤包括安装Subversion,查看安装版本和位置,创建存放版本库的目录及svn版本库,配置权限控制,启动svn版本库,以及处理端口访问权限等
    2024-09-09
  • Linux低电量自动关机的实现方法

    Linux低电量自动关机的实现方法

    这篇文章主要给大家介绍了关于Linux低电量自动关机的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用linux具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • ubuntu19系统及以下版本安装android studio的教程

    ubuntu19系统及以下版本安装android studio的教程

    这篇文章主要介绍了ubuntu19系统及以下版本安装android studio的教程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Linux PXE高效批量网络装机过程

    Linux PXE高效批量网络装机过程

    PXE(预启动执行环境)是一种网络引导技术,允许从远程服务器通过网络下载引导镜像来安装操作系统,本文介绍了PXE的优点如规模化、自动化和远程实现,以及搭建PXE服务器的基本步骤,包括安装和配置TFTP、DHCP服务
    2024-09-09
  • Linux下php连接SQLServer 2000数据库的配置方法

    Linux下php连接SQLServer 2000数据库的配置方法

    Linux服务器中的php程序能够连接到Windows服务器中的SQL Server 2000数据库,这里分享下配置方法,需要的朋友可以参考下
    2013-06-06

最新评论