受影响[编辑]
- OpenSSL 1.0.2-beta
- OpenSSL 1.0.1 - OpenSSL 1.0.1f
- 除非针对CVE-2014-0160的操作系统补丁已经安装,而没有更改库版本,如Debian、Red Hat Enterprise Linux(及其衍生版,如CentOS、Amazon Linux)或Ubuntu(及其衍生版,如Linux Mint)。
不受影响[编辑]
- OpenSSL 1.0.2-beta2(将来版本)
- OpenSSL 1.0.1g
- OpenSSL 1.0.0(及1.0.0的分支版本)
- OpenSSL 0.9.8(及0.9.8的分支版本)
要解决此漏洞,建议服务器管理员或使用1.0.1g版,或使用-DOPENSSL_NO_HEARTBEATS选项重新编译OpenSSL,从而禁用易受攻击的功能,直至可以更新服务器软件。
CentOS openssl-1.0.1e-16.el6_5.7版本是修复后的版本
rpm -q --changelog openssl-1.0.1e | grep -B 1 CVE-2014-0160
centos官方日志 http://lists.centos.org/pipermail/centos-announce/2014-April/020249.html
2014. 4.9更新 直接源码安装openssl1.0.1g版本。
先下载openssl 1.0.1g版本,命令如下:
#wget -chttps://www.openssl.org/source/openssl-1.0.1g.tar.gz
再下载这个版本的md5校验包:
#wget -c https://www.openssl.org/source/openssl-1.0.1g.tar.gz.md5
然后校验下的openssl包是否被恶意修改过:
#md5sum openssl-1.0.1g.tar.gz | awk '{print $1;}' | cmp - openssl-1.0.1g.tar.gz.md5
如果校验没问题,再接着解压包,命令:
#tar -zvxf openssl-1.0.1g.tar.gz//解压openssl-1.0.1g.tar.gz
进入这个解压缩的目录:
#cd openssl-1.0.1g
输入下面的命令进行编译,安装,我直接设置了一些重要的参数,因为其他的参数对于我来说就根本没用。如果需要参数,自己添加就是。输入:
#./config --prefix=/usr/local --openssldir=/usr/local/ssl
#make && make install
#./config shared --prefix=/usr/local --openssldir=/usr/local/ssl //产生动态库
#make clean
#make && make install
或者你什么参数都不加,完全用默认的:
#./config && make && make install
话大概五六分中编译安装完。没出问题的话,继续输入下面的命令,手动软链新的openssl二进制文件:
#ln -sf /usr/local/ssl/bin/openssl `which openssl`
最后重启下服务器(重启进程麻烦的),输入:
#reboot
重启后,输入下面的命令检测下openssl 的版本:
#openssl version
显示:
openssl version