近期网站到处爆料openssl内存泄漏漏洞,大型网站基本均受影响,昨天发现我们公司也有几台服务器存在泄漏问题,赶快找文档测试升级,并应用生产环境;步骤如下,强烈建议通过源码升级,rpm包升级存在很多库文件依赖问题,不小心可能导致所有依赖openssl库文件的应用程序无法正常运行。升级前最好做好openssl库文件的备份!!!
1.升级方式
源码安装编译升级(最简单的方式)
rpm包升级(存在库文件依赖问题,最好做好库文件备份:/usr/lib /usr/lib64)
2.升级步骤
2.1 源码编译安装
yum install openssl-devel gcc glibc zlib -y
tar xf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config shared zlib
make
make install
cp /usr/bin/openssl /usr/bin/openssl.bak
cp -R /usr/include/openssl /usr/include/openssl.bak
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
ldconfig -v
openssl version -a
升级后一定要重启相关软件或者重启系统
2.2 rpm包安装升级
#首先安装rpmbuild
yum install rpm-build redhat-rpm-config pam-devel -y
#备份库文件
\cp -rf /usr/lib /usr/lib.bak
\cp -rf /usr/lib64 /usr/lib64.bak
通过源码制作rpm包
#openssl version
#目标版本 OpenSSL 1.0.1e-fips 10 Apr 2014
#升级后版本 openssl-1.0.1g.tar.gz
#compile and upgrade openssl
tar zxvf openssl-1.0.1g.tar.gz
mkdir -p /root/rpmbuild/SPECS/
mkdir -p /root/rpmbuild/SOURCES/
cp openssl-1.0.1g/openssl.spec /root/rpmbuild/SPECS/
cp openssl-1.0.1g.tar.gz /root/rpmbuild/SOURCES/
cd /root/rpmbuild/SPECS
#源码自带的SPEC文件有点问题,需要替换一下库文件lib
sed s@/usr/lib/@/usr/lib64/@g /root/rpmbuild/SPECS/openssl.spec
#rpmbuild -bb openssl.spec
#安装结束:
#ls -l /root/rpmbuild/RPMS/x86_64/
total 4316
-rw-r--r--. 1 root root 1398348 Apr 10 20:39 openssl-1.0.1g-1.x86_64.rpm
-rw-r--r--. 1 root root 117188 Apr 10 20:39 openssl-debuginfo-1.0.1g-1.x86_64.rpm
-rw-r--r--. 1 root root 2282936 Apr 10 20:39 openssl-devel-1.0.1g-1.x86_64.rpm
-rw-r--r--. 1 root root 613400 Apr 10 20:39 openssl-doc-1.0.1g-1.x86_64.rpm
最好在升级前,卸载老版本的openssl
rpm -e `rpm -qa |grep openssl`
rpm -ivh openssl*.rpm --nodeps
Preparing... ########################################### [100%]
1:openssl ########################################### [ 25%]
2:openssl-debuginfo ########################################### [ 50%]
3:openssl-devel ########################################### [ 75%]
4:openssl-doc ########################################### [100%]
#添加旧的链接库链接,使之支持已安装的其他软件的依赖:
#cd /usr/lib64
可能存在库文件版本依赖问题,最好是将原始的库文件拷贝进来
#检查版本:
#openssl version
OpenSSL 1.0.1g 7 Apr 2014
不过升级openssl要谨慎,有可能影响其他服务,如httpd,openvpn、ssh、postfix等等!!!