在Centos 6.5 Minimal安装中,我已经编译了安装了Percona的Apache,PHP和rpm。
在几天前更新OpenSSL之后,我在这台服务器上使用SSL的站点在某种程度上容易受到Heartbleed的攻击。
我的Apache二进制文件没有显示它使用的是libssl.so *,但是当我通过https://filippo.io/Heartbleed/查看时,它说我的网站实际上很脆弱。
我检查错误吗?
[root@centos user]# ldd /usr/local/apache2/bin/httpd |grep -i ssl [root@centos user]#
我已经通过yum( yum update openssl openssl-devel ) yum update openssl openssl-devel ,我重新编译了Apache(自openssl更新4次),我重新编译了PHP(自更新以来),并且重新安装了Percona。
尽pipe一切都是最新的,但我仍然收到“网站很脆弱”的信息。
[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:
./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使用:
export CFLAGS="-fPIC"; openssl-1.0.1g]# ./config shared no-ssl2 no-ssl3 --openssldir=/usr/local/openssl
我已经尝试更新OpenSSL,重新编译Apache,重新编译PHP,重新安装Percona,重新启动,编译OpenSSL(承认不正确,没有运气),仍然无法修补此漏洞。
我已经重新启动服务器,以确保没有图书馆仍然加载在Ram中。
这里是关于库的输出:
[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)
要查看我正在使用的版本:
[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版本 – 报告为OpenSSL 1.0.1e-fips 2013年2月11日,但在8日补丁,心跳加速或易受攻击。
在同一台服务器上,我正在运行Tomcat和GlassFish,但即使这些服务器处于closures状态,服务器也会被标记为易受攻击的。 有任何想法吗? 提前感谢您的任何build议。
您可能仍然有一个使用旧库的过程。
你可以像这样testing它:
grep 'libssl.*(deleted)' /proc/*/maps
你也可以反弹整个系统。
https://unix.stackexchange.com/questions/123711/how-do-i-recover-from-the-heartbleed-bug-in-openssl
你似乎用本地版本的openssl(– --with-ssl=/usr/local/openssl )编译apache,这可能与你通过yum升级的不同。