这是我使用的发行版
root@ci-server:~/temp# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.5 (stretch)
Release: 9.5
Codename: stretch
安装 openssl 时,我收到以下消息,但使用openssl
它根本不起作用
root@ci-server:~/temp# apt-get install openssl
Reading package lists... Done
Building dependency tree
Reading state information... Done
openssl is already the newest version (1.1.0j-1~deb9u1).
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
root@ci-server:~/temp# openssl version
openssl: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
但libcrypto.so.1.1
在这里被发现
root@ci-server:~/temp# find / -name "libcrypto.so.1.1"
/usr/lib64/libcrypto.so.1.1
ldconfig
内容
root@ci-server:~# cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
和
root@ci-server:~# ls -l /etc/ld.so.conf.d/
total 12
-rw-r--r-- 1 root root 38 Jan 17 2017 fakeroot-x86_64-linux-gnu.conf
-rw-r--r-- 1 root root 44 Mar 20 2016 libc.conf
-rw-r--r-- 1 root root 68 Jan 14 2018 x86_64-linux-gnu.conf
寻找/usr/lib64
内部/etc/ld.so.conf.d
没有得到任何结果
root@ci-server:~# grep -irl "/usr/lib64" /etc/ld.so.conf.d/
root@ci-server:~#
答案1
libcrypto.so.1.1
Debian 9.5 中的预期位置是/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
,而不是/usr/lib64
...,包含它的软件包是libssl1.1
,其中包含 OpenSSL 的库;在 Debian 打包中,openssl
软件包仅包含配置文件、命令/usr/bin/openssl
二进制/usr/bin/c_rehash
文件以及相关的手册页。该openssl
包(以及任何需要 OpenSSL 库的东西)依赖于libssl1.1
.这样,如果您不需要openssl
命令行工具并且正在构建例如具有最小可用存储空间的嵌入式系统,则包管理允许您仅安装库。
在 x86_64 架构上全新安装的 Debian 9.x 上,/usr/lib64
甚至不应该存在。它存在的事实表明,openssl
可能已经从某个替代源安装了另一个副本(可能是通过从另一台主机复制二进制文件,或者通过安装用于其他发行版的数据包)。
请运行以验证系统上的软件包的dpkg --verify libssl1.1 openssl
完整性。输出将列出所有已修改的文件:例如,如果输出中列出了二进制文件,您就会知道您的系统已被篡改。libssl1.1
openssl
/usr/bin/openssl
openssl
最糟糕的情况是您的系统已被黑客攻击,入侵者试图用修改后的版本替换您的 OpenSSL,这会将您的私钥泄露给入侵者。如果是这样,那么入侵者可能犯了一个错误,可能是/usr/lib64
在 Debian 系统上使用了一组用于 RHEL/CentOS/Fedora 风格系统(通常使用路径)的库。
如果您认为您的系统可能被黑客入侵:不要恐慌。服务器故障有一个如果您怀疑您的服务器已被黑客入侵,该怎么做的规范答案。