Patching OpenSSL for the Heartbleed Vulnerability

来源:互联网 发布:数据库的基本结构 编辑:程序博客网 时间:2024/05/23 11:16
CentOS
Check to see what your current OpenSSL version is:
openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Wed Jan  8 18:40:59 UTC 2014
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  dynamic
Pay attention to the built on: line. Versions built before April 7th are vulnerable.
To update OpenSSL from the repositories, run:
yum -y install openssl
After updating, run openssl version -a again to confirm the newer build:
openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr  8 02:39:29 UTC 2014
Be sure to manually restart any services that use OpenSSL.

solution:

我们建议所有的 RHEL6 OpenSSL 用户升级 openssl 到 openssl-1.0.1e-16.el6_5.7 以上的版本。请参照errata (RHSA-2014:0376)

需要注册系统到 Red Hat Network 或者(Satellites),通过 yum 命令升级:
yum update openssl
使用 libssl.so 库文件的进程需要被重启(请注意不要与libssl3.so弄混)。rpm 或者 repoquery 命令可以查看哪些包需要 libssl 作为依赖。注意,在 32位系统和64为系统上,使用的查询命令是不同的。用 rpm --provides 命令查看 openssl 包包含哪些库文件。
# rpm -q --provides openssl | grep libssl
libssl.so.10  libssl.so.10(OPENSSL_1.0.1)  libssl.so.10(OPENSSL_1.0.1_EC)  libssl.so.10(libssl.so.10) 

# rpm -q --provides openssl | grep libssl
libssl.so.10()(64bit)  libssl.so.10(OPENSSL_1.0.1)(64bit)  libssl.so.10(OPENSSL_1.0.1_EC)(64bit)  libssl.so.10(libssl.so.10)(64bit)
rpm --whatrequires 可以查看哪些包需要 libssl 库作为依赖:
# rpm -q --whatrequires 'libssl.so.10'
或者64位用下面的命令。
# rpm -q --whatrequires 'libssl.so.10()(64bit)'
repoquery --whatrequires 命令可以查看哪些 yum 仓库中的包会需要 libssl 作为依赖(这些包可能被安装,也可能没有被安装):
# repoquery --whatrequires libssl
除了上面的命令之外,还可以使用 lsof 或者用 grep 命令逐个查询 /proc 目录下的进程,用来确定哪些进程需要重启。这些方法可以查到第三方的软件(非系统自带软件)
的进程时候使用 libssl 库。例如:
# lsof | grep libssl.so | grep '\<DEL\>'
httpd     15950    root  DEL       REG              253,0              394415 /usr/lib64/libssl.so.1.0.1e
httpd     21863  apache  DEL       REG              253,0              394415 /usr/lib64/libssl.so.1.0.1e

# grep libssl.so /proc/*/maps | grep '(deleted)$' | cut -d/ -f3 | sort -u | xargs -r -- ps u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     15950  0.0  1.6 354632  8280 ?        Ss   Mar26   0:32 /usr/sbin/httpd
apache   21863  0.0  1.2 354768  6064 ?        S    Apr06   0:00 /usr/sbin/httpd
此外,如果允许的话,重启系统会保证所有的进程都被重启。
这个漏洞影响 OpenSSL 的 libssl 库文件, libssl 是实现 TLS/SSL 和 DTLS 协议的基础库。OpenSSH 不使用这些协议,因此不使用 libssl.
OpenSSH 使用的是 OpenSSL 的加密算法实现,使用的是 libcrypto 库文件。


link:https://www.linode.com/docs/security/patching-openssl-for-the-heartbleed-vulnerability 
     https://access.redhat.com/zh_CN/node/785513 

0 0
原创粉丝点击