我刚刚升级了我的Ubuntu 12.04服务器上的openssl库来修复心脏病。 这是我得到的“openssl version -a”命令的输出:
OpenSSL 1.0.0g 18 Jan 2012 built on: Fri Apr 11 09:20:16 UTC 2014 platform: linux-x86_64 options: bn(64,64) rc4(8x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,-- noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM OPENSSLDIR: "/usr/local/ssl"
据我所知,2014年4月7日之后的“build造date”应该是在这里。 我做了这些改动后重新启动了Apache,但是我仍然看到我的网站容易受到Heartbleed错误的攻击。
我在这里错过了什么?
我通过下载最新的源代码和编译/安装相同的方式升级了ssl库。
[更新]在Stephan的评论之后,我使用apt-get直接升级了openssl。 我也更新了我的PATH指向新升级的openssl库。
这是我看到,当我做“openssl版本-a”
OpenSSL 1.0.1 14 Mar 2012 built on: Mon Apr 7 20:33:29 UTC 2014 platform: debian-amd64 options: bn(64,64) rc4(8x,int) des(idx,cisc,16,int) blowfish(idx) compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -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/lib/ssl"
根据“build立”,lib被更新到最新的4月7日补丁。 但是,我的网站仍然显示出很容易受到伤害。
请帮助!
保护自己免于Heartbleed的最简单和最快速的方法是从供应商提供的二进制包更新OpenSSL。 除非你知道自己在做什么,否则不要从源代码编译,或者想花费更多的时间学习。 从源代码编译更具挑战性,浪费时间如果您只需要更新软件。 它可以是教育和启发。
OpenSSL 1.0.0g 18 Jan 2012 built on: Fri Apr 11 09:20:16 UTC 2014
这有些不对劲。 你想要1.0.1g不是1.0.0g。 但是Heartbleed只是OpenSSL 1.0.1和1.0.2中的一个问题。 OpenSSL 1.0.0并不脆弱。 你有没有下载旧的源文件? 请注意, Ubuntu并不总是准确地报告OpenSSL版本,您也需要更新libssl。
据我所知,2014年4月7日之后的“build造date”应该是在这里
不,再看一遍。 你的“build立”date是“2014年4月11日09:20:16”。 那是当你编译这个源码?
请注意,如果您从源代码构build,则需要应用正确的标志。 请阅读http://www.openssl.org/news/secadv_20140407.txt上的安全通知
受影响的用户应该升级到OpenSSL 1.0.1g。 无法立即升级的用户可以使用-DOPENSSL_NO_HEARTBEATS重新编译OpenSSL。
因为您没有删除易受攻击的OpenSSL版本,所以仍然在系统中。 您的新安装不会replace文件,而是添加新的文件。 由于现有应用程序与旧库链接,可能会继续使用它。 所以最好用通常的方法升级你的系统,因为固定库可用。