目录
一、故障重现
近日为了解决CVE-2021-3449: 拒绝服务漏洞、CVE-2021-3450: 证书校验漏洞,自己编译了openssl-1.1.1k。
亲测发现:
只升级openssl的版本,动态库版本没有升级,系统可用。
升级openssl版本,同时升级libcrypto.so.1.1动态库版本,导致严重的故障,系统不可用。
原因是详细描述在这https://github.com/openssl/openssl/issues/11471,因此不建议自行编译升级openssl。
如果贸然升级,替换了libcrypto.so.1.1动态库,将导致严重的故障:
ssh无法远程登录服务器
root等账户无法本地登录,登录时输入root账户直接报错Login Error
passwd命令遇到authentication token manipulation error报错。
yum、rpm等命令都依赖libcrypto.so.1.1,救援模式下也无法卸载高版本的openssl。
二、救援过程
先找一台linux服务器,挂磁盘,创建分区(本例/dev/sdc1),格式化,并挂在到/mnt
[root@toy ~]# mount /dev/sdc1 /mnt/
[root@toy ~]# cd /mnt
下载原来openssl-1.1.1g版本相关的rpm包,用rpm2cpio和cpio命令从rpm包提取归档文件,也就是原来可用的openssl、libcrypto.so、libssl.so等文件,这些文件提取出来后放在usr/bin和usr/lib64目录下。
[root@toy mnt]#

本文讲述了升级openssl及其库引发的系统问题,涉及故障重现、救援过程和经验教训。作者详细描述了如何通过回滚和手动复制旧版本文件来恢复系统,强调了测试和备份的重要性。

6721

被折叠的 条评论
为什么被折叠?



