从源代码将 OpenSSL 升级到版本 3.0.2

从源代码将 OpenSSL 升级到版本 3.0.2

鉴于 openssl 1.1.1x 当前的安全问题,我们必须从源代码升级我们的 (Ubuntu) 系统,因为 apt 仅显示最新的 openssl (1.1.1f) 是最新的

更新 CVE-2022-0778

运行 sudo apt update/upgrade 后,openssl 仍然是版本 1.1.1f,该版本容易受到攻击 - 至少在 Ubuntu 20.04 上

答案1

作为 root:(或使用 sudo)

$ sudo su
# cd /usr/src
# wget https://www.openssl.org/source/openssl-3.0.2.tar.gz
# tar zxvf openssl-3.0.2.tar.gz
# cd openssl-3.0.2
# ./Configure
# make
# make install

如果您安装了旧版本的 OpenSSL,您可能需要执行以下操作:

# cd /usr/lib/ssl
# unlink openssl.cnf
# ln -s /usr/local/ssl/openssl.cnf openssl.cnf
# ldconfig
# openssl version

如果您看到 OpenSSL 3.0.2 - 则成功

否则,如果您收到 openssl 无法找到或其他错误

如果您有 x86_64 架构

# ldconfig /usr/local/lib64

答案2

虽然Ubuntu 中 OpenSSL 的版本与旧版本相对应,它们经过修补以包含已知安全问题的修复。

例如,在 20.04(最新的 LTS)中:

openssl (1.1.1f-1ubuntu2.12) focal-security; urgency=medium

  * SECURITY UPDATE: Infinite loop in BN_mod_sqrt()
    - debian/patches/CVE-2022-0778-1.patch: fix infinite loop in
      crypto/bn/bn_sqrt.c.
    - debian/patches/CVE-2022-0778-2.patch: add documentation of
      BN_mod_sqrt() in doc/man3/BN_add.pod.
    - debian/patches/CVE-2022-0778-3.patch: add a negative testcase for
      BN_mod_sqrt in test/bntest.c, test/recipes/10-test_bn_data/bnmod.txt.
    - CVE-2022-0778

在 21.10(最新版本)中:

openssl (1.1.1l-1ubuntu1.2) impish-security; urgency=medium

  * SECURITY UPDATE: Infinite loop in BN_mod_sqrt()
    - debian/patches/CVE-2022-0778-1.patch: fix infinite loop in
      crypto/bn/bn_sqrt.c.
    - debian/patches/CVE-2022-0778-2.patch: add documentation of
      BN_mod_sqrt() in doc/man3/BN_add.pod.
    - debian/patches/CVE-2022-0778-3.patch: add a negative testcase for
      BN_mod_sqrt in test/bntest.c, test/recipes/10-test_bn_data/bnmod.txt.
    - CVE-2022-0778

也可以看看相应的安全通知

在受支持的 Ubuntu(和其他发行版)版本上,您不需要自己构建软件来解决安全问题,只要您保持安装更新即可。

相关内容