升级OpenSSL修复高危漏洞Heartbleed
升级OpenSSL修复高危漏洞Heartbleed
背景:
OpenSSL全称为Secure Socket Layer。是Netscape所研发。利用数据加密(Encryption)作技术保障在Internet上传输数据的安全。可确保数据在网络上的传输不会被窃听及截取。
当然,OpenSSL是一个强大的password库,我们在使用SSL协议的时候不一定非得採用OpenSSL,只是眼下基本上都是用的OpenSSL,由于它更安全。使用起来也更简单。
在最近互联网安全协议OpenSSL v1.0.1到1.0.1f的password算法库中发现了一个很严重bug(CVE-2014-0160),该bug同意攻击者读取存在bug的系统的64k处理内存,暴露加密流量的密钥,用户的名字和password,以及訪问的内容。这个漏洞被称之为heartbleed,心脏流血。
据solidot 在April 7报道,OpenSSL已经公布了1.0.1g修复bug,Debian发行版也在半小时修复bug。Fedora公布了一个权宜的修正方案。该bug在2011年引入OpenSSL中。使用OpenSSL 0.9.8的发现版本号不受影响。但Debian Wheezy、Ubuntu 12.04.4、CentOS 6.5、Fedora 18、SUSE 12.2、OpenBSD 5.4、FreeBSD 8.4和NetBSD 5.0.2之后的版本号都收到影响。假设你的同意的系统有如上集中,建议将补丁修复到1.0.1g或以上版本号。
修复建议:
1、 假设有使用OpenSSL 1.0.1到OpenSSL1.0.1f的版本号建议升级到OpenSSL1.0.1g或最新的OpenSSL1.0.1h。
2、 使用DEPENSSL_NO_HEARTBEATS參数又一次编译低版本号的OpenSSL以禁用Heartbleed模块。
3、 删除OpenSSL组件。
升级OpenSSL修复Heartbleed漏洞
因为我们如今用的基本上都是RHEL 5.8或OEL5.8,其OpenSSL的版本号为OpenSSL0.9.8e,是不存在该漏洞的,只是有些新上的项目可能会涉及到,当然他们对于修复这个漏洞的方法都是一样。
具体过程例如以下:
1、 查看操作系统版本号及OpenSSL版本号
[root@pru1~]# uname -a
Linuxpru1 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64GNU/Linux [root@pru1~]# openssl version
OpenSSL0.9.8e-fips-rhel5 01 Jul 2008
2、 下载最新的openssl-1.0.1h.tar.gz源代码包
3、 解压缩编译安装
[root@pru1openssl]# ls
openssl-1.0.1h.tar.gz [root@pru1openssl]# tar -zxf openssl-1.0.1h.tar.gz
[root@pru1openssl]# ls
openssl-1.0.1h openssl-1.0.1h.tar.gz [root@pru1openssl]# cd openssl-1.0.1h
[root@pru1openssl-1.0.1h]# ls
ACKNOWLEDGMENTS config e_os2.h INSTALL.DJGPP INSTALL.W64 Makefile.org openssl.doxy README.ASN1 tools
apps Configure e_os.h INSTALL.MacOS INSTALL.WCE Makefile.shared openssl.spec README.ENGINE util
bugs crypto FAQ INSTALL.NW LICENSE makevms.com os2 shlib VMS
certs demos include INSTALL.OS2 MacOS ms perl ssl
CHANGES doc INSTALL INSTALL.VMS Makefile Netware PROBLEMS test
CHANGES.SSLeay engines install.com INSTALL.W32 Makefile.bak NEWS README times [root@pru1openssl-1.0.1h]# ./config shared zlib
Operatingsystem: x86_64-whatever-linux2
Configuringfor linux-x86_64
Configuringfor linux-x86_64
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-gmp [default] OPENSSL_NO_GMP (skip dir)
no-jpake [experimental] OPENSSL_NO_JPAKE (skipdir)
no-krb5 [krb5-flavor not specified]OPENSSL_NO_KRB5
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
no-sctp [default] OPENSSL_NO_SCTP (skip dir)
no-store [experimental] OPENSSL_NO_STORE (skipdir)
no-zlib-dynamic [default]
IsMK1MF=0
CC =gcc
CFLAG =-fPIC -DOPENSSL_PIC -DZLIB-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -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
EX_LIBS =-ldl -lz
CPUID_OBJ =x86_64cpuid.o
BN_ASM =x86_64-gcc.o x86_64-mont.ox86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o
DES_ENC =des_enc.o fcrypt_b.o
AES_ENC =aes-x86_64.o vpaes-x86_64.obsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o
BF_ENC =bf_enc.o
CAST_ENC =c_enc.o
RC4_ENC =rc4-x86_64.o rc4-md5-x86_64.o
RC5_ENC =rc5_enc.o
MD5_OBJ_ASM =md5-x86_64.o
SHA1_OBJ_ASM =sha1-x86_64.o sha256-x86_64.osha512-x86_64.o
RMD160_OBJ_ASM=
CMLL_ENC =cmll-x86_64.o cmll_misc.o
MODES_OBJ =ghash-x86_64.o
ENGINES_OBJ =
PROCESSOR =
RANLIB =/usr/bin/ranlib
ARFLAGS =
PERL =/usr/bin/perl
SIXTY_FOUR_BIT_LONGmode
DES_UNROLLused
DES_INTused
RC4_CHUNKis unsigned long
e_os2.h=> include/openssl/e_os2.h
makinglinks in crypto...
make[1]:Entering directory `/root/openssl/openssl-1.0.1h/crypto'
crypto.h=> ../include/openssl/crypto.h
opensslv.h=> ../include/openssl/opensslv.h
opensslconf.h=> ../include/openssl/opensslconf.h
ebcdic.h=> ../include/openssl/ebcdic.h
symhacks.h=> ../include/openssl/symhacks.h
ossl_typ.h=> ../include/openssl/ossl_typ.h
makinglinks in crypto/objects...
………….
Configuredfor linux-x86_64. [root@pru1openssl-1.0.1h]# make
makingall in crypto...
make[1]:Entering directory `/root/openssl/openssl-1.0.1h/crypto'
( echo"#ifndef MK1MF_BUILD"; \
echo ' /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
echo ' #define CFLAGS "gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN-DTERMIO -O3 -Wall -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"'; \
echo ' #define PLATFORM "linux-x86_64"'; \
echo " #define DATE \"`LC_ALL=C LC_TIME=Cdate`\""; \
echo '#endif' ) >buildinf.h
gcc -I.-I.. -I../include -fPIC -DOPENSSL_PIC-DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H-Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -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 -c -ocryptlib.o cryptlib.c
cryptlib.c:In function ‘OPENSSL_ia32cap_loc’:
cryptlib.c:677:warning: dereferencing type-punned pointer will break strict-aliasing rules
gcc -I.-I.. -I../include -fPIC -DOPENSSL_PIC-DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H-Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -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 -c -o mem.omem.c
gcc -I.-I.. -I../include -fPIC -DOPENSSL_PIC-DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H-Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -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 -c -omem_dbg.o mem_dbg.c
……………. [root@pru1openssl-1.0.1h]# make install
…….
4、 将新编译的openssl替换系统老版本号的
[root@pru1openssl-1.0.1h]# rm -rf /usr/bin/openssl
[root@pru1openssl-1.0.1h]# rm -rf /usr/include/openssl/
[root@pru1openssl-1.0.1h]# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
[root@pru1openssl-1.0.1h]# ln -s /usr/local/ssl/include/openssl/ /usr/include/openssl
5、 配置文件搜索路径
[root@pru1openssl-1.0.1h]# echo "/usr/local/ssl/lib/" >> /etc/ld.so.conf
[root@pru1openssl-1.0.1h]# ldconfig -v |grep openssl
libgnutls-openssl.so.13 ->libgnutls-openssl.so.13.0.6
libgnutls-openssl.so.13 ->libgnutls-openssl.so.13.0.6
6、 查看安装完毕后的最新版本号
[root@pru1openssl-1.0.1h]# openssl version
OpenSSL1.0.1h 5 Jun 2014 [root@pru1openssl-1.0.1h]# openssl version -a
OpenSSL1.0.1h 5 Jun 2014
builton: Sun Jun 8 09:05:39 CST 2014
platform:linux-x86_64
options: bn(64,64) 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 -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall-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:"/usr/local/ssl"
[root@pru1openssl-1.0.1h]#
7、 至此已所有完毕OpenSSL的升级工作
升级OpenSSL修复高危漏洞Heartbleed的更多相关文章
- OpenSSL修复加密漏洞、加强Logjam防御
来源:TechTarget中国作者:Michael Heller翻译:张程程 OpenSSL项目团队为其密码库发布补丁以修复一个严重的漏洞(该漏洞可能允许攻击者解密HTTPS通信),同时强化对Logj ...
- ThinkPHP5远程代码执行高危漏洞(附:升级修复解决方法)
漏洞描述 由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell. 漏洞评级 严重 影响版本 ThinkPHP 5 ...
- 修复open-ssl漏洞,升级open-ssl版本
升级openssl环境至openssl-1.0.1g 1.查看源版本 [root@zj ~]# openssl version -a OpenSSL 0.9.8e-fips-rhel5 01 Jul ...
- OpenSSL重大漏洞-Heartbleed之漏洞利用脚本POC讲解
OpenSSL Security Advisory [07 Apr 2014] ======================================== TLS heartbeat read ...
- 汉澳sinox不受openssl心血漏洞影响并分析修复其漏洞代码
OpenSSL 心血(HeartBleed)漏洞 是openssl 在 2014-04-07 发布的重大安全漏洞(CVE-2014-0160)这个漏洞使攻击者可以从server内存中读取64 KB的数 ...
- Fastjson 爆出远程代码执行高危漏洞,更新版本已修复
fastjson近日曝出代码执行漏洞,恶意用户可利用此漏洞进行远程代码执行,入侵服务器,漏洞评级为“高危”. 基本介绍fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器 ...
- 重新编译Nginx指导手册【修复静态编译Openssl的Nginx漏洞 】(转)
1. 概述 当前爆出了Openssl漏洞,会泄露隐私信息,涉及的机器较多,环境迥异,导致修复方案都有所不同.不少服务器使用的Nginx,是静态编译opensssl,直接将openssl编译到ng ...
- OpenSSL再爆多处高危漏洞
OpenSSL团队于北京时间6月5号晚8点左右发布了5个安全补丁,这次的更新涉及多处高危漏洞,连接:http://www.openssl.org/news/ 受影响的版本包括: OpenSSL 1.0 ...
- Linux内核升级修复系统漏洞-RHSA-2017:2930-Important: kernel security and bug fix update
公司使用的阿里云服务器(Centos7.4 x86_64bit)内核版本为:3.10.0-693.21.1.el7.x86_64, 2019年3月4日 02:07:58通过云盾安骑士-->漏洞管 ...
随机推荐
- 【转】hibernate映射(单向双向的一对多、多对一以及一对一、多对一)
多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一 一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多 也就是说一对多和多对一的映射策略是一样的,只是站 ...
- nginx日志打印请求响应时间
log_format timed_combined '$remote_addr - $remote_user [$time_local] "$request" ' '$stat ...
- greenplum /postgres 登陆以及创建修改用户密码
1.greenplum 启动 bin目录下的gpstart ,-m为只启动master 2.greenplum 启动之后,通过postgresql登陆 登陆命令:PGOPTIONS="-c ...
- 我要好offer之 搜索算法大总结
1. 二分搜索 详见笔者博文:二分搜索的那些事儿,非常全面 2. 矩阵二分搜索 (1) 矩阵每行递增,且下一行第一个元素大于上一个最后一个元素 (2) 矩阵每行递增,且每列也递增 3. DFS 深度优 ...
- poj Pseudoprime numbers 3641
Pseudoprime numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10903 Accepted: 4 ...
- 【NOIP2016练习】T2 跑跑步 (数论)
: 这场的难度是从高到低的 ..]of longint; n,m,i,ans:longint; function gcd(x,y:longint):longint; var r:longint; be ...
- Git基础篇【转】
转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 1.设置名字与邮箱 $ Git config –global user.name “YourName” $ ...
- 使用Python计算研究生学分绩(绩点)
最近看了CSDN上一个专栏<Python爬虫入门教程>,其中最后一篇作者写了个例子,用爬虫计算山东大学绩点,顿时想到前一阵子搞测评的时候还得拿计算器一点点算自己的平均学分绩,也想写一个自己 ...
- ssh的简单介绍
SSH简单介绍与运用 一.什么是SSH? SSH是一种网络协议,用于计算机之间的加密登录. OpenSSH 提供了以下几个工具: 1. ssh:实现 SSH 协议,用以建立安全连接,它替代了较早的 ...
- 作为程序员,再也不想和PM干架了
上周,又看见有程序和PM(产品经理)吵了起来,大致是因为晚上就要上线了,下午的时候PM来说要改点需求,但程序不愿意.兴许是天气热了,大家都很烦躁,于是一言不合就发飙了,最终还是程序老大介入才解决了问题 ...