Chinaunix
标题:
CentOS6编译安装openssl后,如何替换掉rpm安装的openssl
[打印本页]
作者:
shenyue_sam
时间:
2014-08-18 15:37
标题:
CentOS6编译安装openssl后,如何替换掉rpm安装的openssl
系统自带openssl是1.0.1e,有heartbleed漏洞。
# cat /etc/redhat-release
CentOS release 6.5 (Final)
# rpm -q openssl
openssl-1.0.1e-15.el6.x86_64
# rpm -q -changelog openssl|grep CVE-2014-0160
复制代码
下载了openssl-1.0.1i,编译安装。
export CFLAGS="-fPIC"
./config shared no-ssl2 no-ssl3 --openssldir=/usr/local/ssl
make depend
make all
make install
复制代码
生成的so为
# ll /usr/local/ssl/lib/*.so
lrwxrwxrwx. 1 root root 18 Aug 15 12:29 /usr/local/ssl/lib/libcrypto.so -> libcrypto.so.1.0.0
lrwxrwxrwx. 1 root root 15 Aug 15 12:29 /usr/local/ssl/lib/libssl.so -> libssl.so.1.0.0
复制代码
通过修改PATH,可以执行新版本的openssl
# openssl version
OpenSSL 1.0.1i 6 Aug 2014
复制代码
但问题是,如何使新版本的so替换旧版的so?
例如sshd,使用的还是1.0.1e的。
# ldd $(which sshd)|grep -e libcrypto -e libssl
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f6eb3e5b000)
# rpm -ql openssl |grep \.so
/usr/lib64/libcrypto.so.1.0.1e
/usr/lib64/libcrypto.so.10
/usr/lib64/libssl.so.1.0.1e
/usr/lib64/libssl.so.10
复制代码
是否是因为sshd已经指定要链接libcrypto.so.10?
# strings $(which sshd)|grep -e crypto -e ssl
libcrypto.so.10
复制代码
是不是要把软链接libcrypto.so.10和libssl.so.10指向新版本的so才行?
作者:
q1208c
时间:
2014-08-18 16:32
为什么不升级呢?
$ rpm -q --changelog openssl | grep 0160
- fix CVE-2014-0160 - information disclosure in TLS heartbeat extension
- fix CVE-2014-0160 - information disclosure in TLS heartbeat extension
$ rpm -q openssl
openssl-1.0.1e-16.el6_5.14.x86_64
openssl-1.0.1e-16.el6_5.14.i686
复制代码
作者:
shenyue_sam
时间:
2014-08-18 16:59
回复
2#
q1208c
谢谢指点。在局域网搞惯了,没想到用update源。
不过,还是想知道,如果不用rpm,用源码编译安装的话,如何解决上面问题。希望各位大侠指教。
作者:
q1208c
时间:
2014-08-18 17:03
回复
3#
shenyue_sam
可以把原来位置的文件全替换掉. 或者 rename 掉. 但不能删除.
rpm -ql 可以列出原包里带来的文件.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2