在我的 Debian 机器中,apache2 的当前版本是 2.4.10:
root@9dd0fd95a309:/# apachectl -V
Server version: Apache/2.4.10 (Debian)
我想将 apache 升级到最新版本(至少 2.4.26):我尝试过:
root@9dd0fd95a309:/# apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
apache2 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 48 not upgraded.
但它没有发现任何更新。我可以做什么来升级到最新版本?
答案1
不要手动升级 Apache。
出于安全考虑而进行的手动升级是不必要的,而且可能是有害的。
Debian 如何发布软件
要了解这是为什么,您必须了解 Debian 如何处理打包、版本和安全问题。由于 Debian 更看重稳定性而不是变化,因此政策是冻结稳定版本包中的软件版本。这意味着对于稳定版本来说,变化很小,一旦工作正常,它们应该可以继续工作很长时间。
但是,如果 Debian 稳定版本发布后发现严重的错误或安全问题怎么办?这些都是固定的,在 Debian stable 提供的软件版本中。因此,如果 Debian 稳定版随 Apache 一起发布2.4.10
,并且在 中发现并修复了安全问题2.4.26
,Debian 将采用此安全修复程序,并将其应用到2.4.10
,并将修复程序分发给2.4.10
其用户。这可以最大限度地减少版本升级造成的干扰,但它使得 Tenable 之类的版本嗅探变得毫无意义。
严重的错误被收集并修复在点发布(.9
Debian 中的8.9
)每隔几个月。安全修复会立即修复并通过更新通道提供。
一般来说,只要您运行受支持的 Debian 版本、坚持使用库存 Debian 软件包并及时了解其安全更新,您应该就可以了。
您的 Tenable 报告
要检查 Debian 稳定版是否容易受到您的问题的影响,Tenable 的“2.4.x < 2.4.27 多个问题”毫无用处。我们需要确切地知道他们正在谈论哪些安全问题。幸运的是,每个重大漏洞都被分配了一个常见漏洞和暴露(CVE) 标识符,因此我们可以轻松讨论特定的漏洞。
例如,在此页面上成立问题 101788我们可以看到该问题与漏洞CVE-2017-9788和CVE-2017-9789有关。我们可以在上面搜索这些漏洞Debian 安全跟踪器。如果我们这样做,我们可以看到CVE-2017-9788 的状态为“已修复”在或之前的版本中2.4.10-10+deb8u11
。同样地,CVE-2017-9789 已修复。
成立问题 10095是关于CVE-2017-3167,CVE-2017-3169,CVE-2017-7659,CVE-2017-7668, 和CVE-2017-7679,全部固定。
因此,如果您使用的是 版本2.4.10-10+deb8u11
,您应该不会受到所有这些漏洞的影响!您可以使用以下命令进行检查dpkg -l apache2
(确保您的终端足够宽以显示完整的版本号)。
保持最新状态
那么,如何确保您及时了解这些安全更新呢?
首先,您需要在您的/etc/apt/sources.list
或中拥有安全存储库/etc/apt/sources.list.d/*
,如下所示:
deb http://security.debian.org/ jessie/updates main
这是任何安装的正常部分,您不必执行任何特殊操作。
接下来,您必须确保安装更新的软件包。这是你的责任;它不会自动完成。一个简单但繁琐的方法是定期登录并运行
# apt-get update
# apt-get upgrade
从您报告的 Debian 版本为 8.8(我们是 8.9)以及... and 48 not upgraded.
您的帖子来看,您可能希望尽快执行此操作。
要获得安全更新通知,我强烈建议订阅Debian 安全公告邮件列表。
另一种选择是确保您的服务器可以向您发送电子邮件,并安装类似的软件包apticron,当您系统上的软件包需要更新时,它会向您发送电子邮件。基本上,它会定期运行该apt-get update
部分,并缠着你去做该apt-get upgrade
部分。
最后,你可以安装类似的东西无人值守升级,它不仅检查更新,而且自动安装无需人工干预即可进行更新。在没有人工监督的情况下自动升级软件包会带来一些风险,因此您需要自己决定这是否适合您。我使用它并且对它很满意,但请注意更新者。
为什么提升自己是有害的
在我的第二句话中,我说升级到最新的 Apache 版本是可能有害。
原因很简单:如果您遵循 Debian 版本的 Apache,并养成安装安全更新的习惯,那么您在安全方面就处于有利位置。 Debian 安全团队识别并修复安全问题,您可以轻松享受这项工作。
但是,如果您安装 Apache 2.4.27+(例如从 Apache 网站下载并自行编译),那么处理安全问题的工作就完全由您负责了。您需要跟踪安全问题,并在每次发现问题时进行下载/编译等工作。
事实证明,这是一项相当大的工作量,而且大多数人都偷懒了。因此,他们最终运行了自编译版本的 Apache,随着问题的发现,该版本变得越来越容易受到攻击。因此,他们的结果比仅仅遵循 Debian 的安全更新要糟糕得多。所以是的,可能有害。
这并不是说没有地方可以自己编译软件(或者有选择地从 Debian 测试或不稳定中获取软件包),但总的来说,我建议不要这样做。
安全更新的持续时间
Debian 不会永远维护其版本。作为一般规则,Debian 版本在被新版本淘汰后一年内会获得完整的安全支持。
您正在运行的版本 Debian 8 /jessie
是一个过时的稳定版本(oldstable
就 Debian 而言)。它将获得全面的安全支持至 2018 年 5 月, 和长期支持直到 2020 年 4 月。我不完全确定这种 LTS 支持的程度。
当前的 Debian 稳定版本是 Debian 9 / stretch
。考虑升级到 Debian 9,它附带了所有软件的更新版本,以及数年的全面安全支持(可能到 2020 年中期)。我建议您在 2018 年 5 月之前方便的时间进行升级。
结束语
早些时候,我写过 Debian 向后移植安全修复程序。这最终对于某些软件来说是站不住脚的由于高发展速度和高安全问题发生率。这些软件包是例外,实际上更新到了最新的上游版本。我知道这适用于的软件包有chromium
(浏览器)、firefox
和nodejs
。
最后,这种处理安全更新的整个方式并不是 Debian 所独有的。许多发行版都是这样工作的,尤其是那些更注重稳定性而不是新软件的发行版。
答案2
Debian Jessie 仍然受支持,并且较新版本中提供的安全修复程序已向后移植到 Jessie 中提供的软件包(2.4.10-10+deb8u11,这意味着自 Jessie 发布以来迄今已有 11 个更新)。 Apache 中所有已知的、可修复的漏洞是固定在 Jessie 包中;只要您保持安装最新,您就应该是安全的。只要 Jessie 仍然受支持,未来的漏洞将继续得到修复。
新版本不太可能向后移植到 Jessie。如上所述,只要继续使用 Jessie,只要它受到支持,您就是安全的;如果你需要更新的特征2.4.10 中不可用,您需要升级到 Debian 9。
答案3
您正在使用 Debian Jessie,它是 Debian 的旧稳定版本。 Jessie 中 Apache 的最新版本是 2.4.10。
因此,您有两个选择,运行 apt dist-upgrade 并迁移到 Debian Stretch,或者您可以等待它在向后移植中可用。
答案4
这阿帕奇2 (2.4.10-10)是通过命令从 debian 存储库安装的最新版本apt
,当有新版本可用时,它将自动通过apt
.
不幸的是,apache2
jessie bacports 上不提供此功能。
您可以安装可用的最新版本阿帕奇网站通过编译: