对不起,我的英语不好。
我正在运行 Ubuntu 12.04.2 LTS(GNU/Linux 3.2.0-60-virtual x86_64)。
为了尝试修复 Heartbleed,我首先运行apt-get update
,然后运行apt-get dist-upgrade
。
一切顺利,所以我认为那个安全问题已经解决了。
但openssl version -a
输出:
OpenSSL 1.0.1e 11 Feb 2013
built on: Sat Feb 1 22:14:33 UTC 2014
platform: debian-amd64
options: bn(64,64) rc4(8x,int) des(idx,cisc,16,int) blowfish(idx)
compiler: gcc -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 -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -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"
我已经重新启动了服务器(我必须在 dist-upgrade 之后进行替换sysvinit
,upstart
否则我无法重新启动)。
重启后apt-get dist-upgrade
输出以下内容:
The following packages will be REMOVED:
upstart
The following NEW packages will be installed:
sysvinit
The following packages have been kept back:
libnih-dbus1 libnih1
0 upgraded, 1 newly installed, 1 to remove and 2 not upgraded.
嗯,根据输出结果,没有与 SSL 相关的内容需要升级。但openssl version -a
输出结果一直与 2 月版本相同。
所以,我的问题是为什么我的系统仍在运行旧版本的 openssl?
感谢您的帮助。
答案1
我已成功修复该问题!
由于某种原因,apt-get update
没有意识到新的安全软件包(尽管 Ubuntu 安全存储库已正确列在我的 sources.list 中)。
我要做的是手动下载以下 deb 文件,然后手动安装它们。
我必须下载并安装的软件包列表
64 位
- openssl:http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.12_amd64.deb
- libssl1.0.0:http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.0.0_1.0.1-4ubuntu5.12_amd64.deb
- libssl-dev:http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.0.1-4ubuntu5.12_amd64.deb
32 位
http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.12_i386.deb
http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.0.1c-3ubuntu2.7_i386.deb
http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.0.0_1.0.1c-3ubuntu2.7_i386.deb
以下命令将安装手动下载的 deb 包:
sudo dpkg -i package_name.deb
安装所有 3 个软件包并重新启动服务器后,问题已解决!
答案2
我遇到了同样的情况,并且找到了一个更简单的解决方案(针对 12.04 LTS):
sudo apt-get 安装 openssl=1.0.1-4ubuntu5.12 libssl1.0.0=1.0.1-4ubuntu5.12 libssl-dev=1.0.1-4ubuntu5.12
这要求我降级这些包,如果回答是,则包已更新。
当我尝试从较新的 ubuntu 发行版(quantal 或类似版本)获取某些软件包时,似乎来自该发行版的 openssl 软件包会偷偷溜进我的安装中。由于 sources.list 中的安全存储库指向 precise,因此无法通过 apt-get dist-upgrade 更新较新发行版的软件包。