首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Openssl更新后,服务器仍然易受HeartBleed攻击

在Openssl更新后,服务器仍然易受HeartBleed攻击
EN

Server Fault用户
提问于 2014-04-15 16:39:56
回答 2查看 3.8K关注 0票数 4

在CentOS6.5最小安装上,我已经编译了Apache、PHP和rpm安装了Percona。

在几天前更新了OpenSSL之后,我在此服务器上使用SSL的站点就容易受到心脏出血的影响。

我的Apache二进制文件根本没有显示它在使用libssl.so*,但是当我通过https://filippo.io/Heartbleed/检查它时,它说我的站点实际上是脆弱的。

我是不是检查错了什么东西?

代码语言:javascript
复制
[root@centos user]# ldd /usr/local/apache2/bin/httpd |grep -i ssl
[root@centos user]#

我通过yum (yum update openssl openssl-devel)更新了OpenSSL,重新编译了Apache (自从openssl更新以来),重新编译了PHP (更新后),重新安装了Percona。

我仍然收到“网站易受攻击”的信息,尽管事实是一切都是最新的。

代码语言:javascript
复制
[root@centos user]# openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr  8 02:39:29 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 

如果这有任何帮助,我将使用以下选项编译apache:

代码语言:javascript
复制
./configure --prefix=/usr/local/apache2 \
            --with-apxs2=/usr/local/apache2/bin/apxs \
            --with-mysql=/opt \
            --with-mysqli=/usr/bin/mysql_config \
            --with-gd --with-ttf=/opt \
            --with-xpm-dir=/opt \
            --with-freetype-dir=/opt \
            --enable-gd-native-ttf \
            --with-zlib-dir=/opt \
            --with-curl=/opt/include/curl \
            --enable-mbstring \
            --with-xsl=/opt \
            --with-libexpat-dir=/opt \
            --with-jpeg-dir=/opt \
            --with-png-dir=/opt \
            --enable-soap \
            --with-openssl \
            --with-ssl=/usr/local/openssl \
            --with-included-apr \
            --with-pcre=/usr/local/pcre/ \
            --with-mpm=worker \
            --enable-rewrite \
            --enable-ssl; 

我已经编译了一个版本的OpenSSL 1.0.1g到/usr/local/openssl,使用:

代码语言:javascript
复制
export CFLAGS="-fPIC";
openssl-1.0.1g]# ./config shared no-ssl2 no-ssl3 --openssldir=/usr/local/openssl

我尝试过更新OpenSSL、重新编译Apache、重新编译PHP、重新安装Percona、重新启动、编译OpenSSL (诚然是错误的,而且没有运气),但仍然无法修补此漏洞。

我已经重新启动了服务器,以确保没有任何库仍然加载在Ram中。

下面是有关库的输出:

代码语言:javascript
复制
[root@centos php-5.5.9]# grep 'libssl.*(deleted)' /proc/*/maps
/proc/4497/maps:7faf80018000-7faf80079000 r-xp 00000000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4497/maps:7faf80079000-7faf80278000 ---p 00061000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4497/maps:7faf80278000-7faf8027c000 r--p 00060000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4497/maps:7faf8027c000-7faf80283000 rw-p 00064000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d735d000-7f21d73be000 r-xp 00000000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d73be000-7f21d75bd000 ---p 00061000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d75bd000-7f21d75c1000 r--p 00060000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d75c1000-7f21d75c8000 rw-p 00064000 fd:00 1591034                    /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b000000-311b061000 r-xp 00000000 fd:00 1591034                        /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b061000-311b260000 ---p 00061000 fd:00 1591034                        /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b260000-311b264000 r--p 00060000 fd:00 1591034                        /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b264000-311b26b000 rw-p 00064000 fd:00 1591034                        /usr/lib64/libssl.so.6 (deleted)

要查看我使用的是哪个版本:

代码语言:javascript
复制
[root@centos php-5.5.9]# strings /usr/lib64/libssl.so.6|grep -i openssl
OpenSSLDie
OPENSSL_cleanse
OPENSSL_DIR_read
OPENSSL_DIR_end
OPENSSL_init_library
OPENSSL_1.0.1
OPENSSL_1.0.1_EC
SSLv2 part of OpenSSL 1.0.1e-fips 11 Feb 2013
SSLv3 part of OpenSSL 1.0.1e-fips 11 Feb 2013
TLSv1 part of OpenSSL 1.0.1e-fips 11 Feb 2013
DTLSv1 part of OpenSSL 1.0.1e-fips 11 Feb 2013
OpenSSL 1.0.1e-fips 11 Feb 2013
OPENSSL_DIR_read(&ctx, '
OPENSSL_DEFAULT_ZLIB
OPENSSL_malloc Error

我不知道OpenSSL 1.0.1e-fips 2013年2月11日是否与上面的输出有关,其中openssl版本-a报告为OpenSSL 1.0.1e-fips 2013年2月11日,但修补程序在8号,用于心脏出血,或者如果其易受攻击。

在同一台服务器上,我正在运行Tomcat和GlassFish,但是即使关闭这些服务器,服务器标记也是脆弱的。有什么想法吗?提前感谢您的任何建议。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2014-04-15 19:53:33

您可能仍然有一个使用旧库的进程。

您可以这样测试它:

代码语言:javascript
复制
grep 'libssl.*(deleted)' /proc/*/maps

你也可以弹出整个系统。

https://unix.stackexchange.com/questions/123711/how-do-i-recover-from-the-heartbleed-bug-in-openssl

票数 6
EN

Server Fault用户

发布于 2014-04-15 16:58:40

您似乎使用openssl (--with-ssl=/usr/local/openssl)的本地版本编译apache,这可能与您通过yum升级的版本不同。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/589227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档