如何在Debian jessie上将apache2更新到最新版本?


16

在我的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.

但是找不到任何更新。我该怎么做才能升级到最新版本?

在此处输入图片说明


您使用哪个版本的Debian?

1
为什么要升级?
斯蒂芬·基特

1
@wawanopoulos:仍支持 Jessie,因此即使版本号与上游版本不同,您也应该期望显示安全补丁或反向端口。
凯文

1
没什么要修复的。
史蒂芬·基特

1
它们已在Debian软件包中修复。Tenable报告完全基于版本号,但是不幸的是,该版本不适用于许多发行包。
史蒂芬·基特

Answers:


32

不要手动升级Apache。

手动升级安全性是不必要的,并且可能有害。

Debian如何发布软件

要了解为什么会这样,您必须了解Debian如何处理打包,版本和安全性问题。由于Debian重视稳定性而不是更改,因此政策是冻结稳定版本软件包中的软件版本。这意味着对于稳定的发行版,几乎没有任何更改,一旦一切正常,它们应该继续工作很长时间。

但是,如果在发布Debian稳定版本后发现严重的错误或安全问题怎么办?这些是固定的,在Debian stable提供的软件版本中。因此,如果Debian stable随Apache一起提供2.4.10,则发现并修复了一个安全问题2.4.26,Debian将采用此安全修复程序并将其应用到2.4.10,并将该修复程序分2.4.10发给其用户。这样可以最大程度地减少版本升级带来的干扰,但使Tenable这样的版本嗅探变得毫无意义。

严重错误的收集和固定点的版本(在.9Debian中8.9)每隔几个月。安全修复程序将立即修复,并通过更新渠道提供。

通常,只要您运行受支持的Debian版本,坚持使用Debian软件包并保持最新的安全更新,就可以了。

您的持久报告

要检查Debian稳定版是否容易受到您的问题困扰,Tenable的“ 2.4.x <2.4.27多个问题”是没有用的。我们需要确切地知道他们正在谈论哪些安全问题。幸运的是,每个重要漏洞都被分配了一个通用漏洞和披露(CVE)标识符,因此我们可以轻松地讨论特定漏洞。

例如,在此页面上,存在“ 易受威胁的问题” 101788,我们可以看到该问题与漏洞CVE-2017-9788和CVE-2017-9789有关。我们可以在Debian安全跟踪器上搜索这些漏洞。如果执行此操作,我们可以看到CVE-2017-9788在version或之前的状态为“已修复”2.4.10-10+deb8u11。同样,CVE-2017-9789是固定的

可靠的问题10095CVE-2017-3167CVE-2017-3169CVE-2017-7659CVE-2017-7668CVE-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零件。

最后,您可以安装诸如unattended-upgrades之类的东西,它不仅可以检查更新,还可以自动安装更新,而无需人工干预。在没有人工监督的情况下自动升级软件包会带来一些风险,因此您需要自己确定这是否对您来说是一个好的解决方案。我使用它,对此感到满意,但请注意更新。

为什么升级自己有害

在第二句话中,我说升级到最新的Apache版本可能有害

原因很简单:如果您遵循Debian的Apache版本,并养成了安装安全更新的习惯,那么从安全角度而言,您处在一个好的位置。Debians安全团队可以识别并修复安全问题,您可以轻松完成这项工作。

但是,如果您安装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独有的。许多发行版都是这样工作的,尤其是那些相对于新软件更倾向于稳定性的发行版。


我听到您在这里提出的要点,但是如果将Stretch(稳定)与Sid(不稳定)进行比较,它们会更加突出。无论如何,Stretch引起了大多数关注,并且相同的规则适用于安全更新。之所以要使用oldstable,主要是因为它支持所有懒惰的sys-admin管理员,或者仅支持那些尚未更新内部软件依赖性的管理员。您能否证明使用稳定版与旧稳定版在安全性上有明显的不同?
jdwolf

@jdwolf据我所知,只要支持oldstable,它就会获得与稳定一样多的安全支持。我管理着数十台Debian机器,目前混合了jessie和Stretch,并且阅读了所有适用于我的DSA。我从来没有注意到过时的稳定模式没有得到足够的重视。如果您曾经阅读过DSA,您会发现他们倾向于在同一公告中列出稳定版本和旧版本的固定版本(通常以及测试和不稳定版本的信息)。
marcelm '17

我知道,但是您的帖子给人的印象是从旧的稳定到稳定的更新。
jdwolf

@jdwolf这根本不是我的意图!实际上,我建议稳定而不是老稳定(假设情况允许)。您从哪一部分得到印象?我编辑了一下帖子;希望现在更清楚了,我不提倡稳定的稳固性。
marcelm '17

6

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,或者您可以等待它在反向端口中可用。


而我们在Debian中使用的Apache版本又是什么呢?
wawanopoulos

@wawanopoulos2.4.25-3+deb9u3
LinuxSecurityFreak

3

OP在评论中指出:

  • 他们在Debian Jessie上。
  • 他们想升级Apache以解决安全问题。

Debian Jessie是当前的oldstable版本(截至2017年11月12日)。它应该收到Debian安全团队的定期安全更新。根据Debian安全性常见问题解答

安全团队尝试在下一个稳定发行版发布后的大约一年内支持稳定发行,除非今年内将发布另一个稳定发行版。无法支持三个发行版。同时支持两个人已经足够困难了。

当前的Debian稳定版是Stretch,于2017-06-17发行。因此,我们希望安全团队在大约2018年中之前为杰西提供支持。在那之后,它将在LTS中一直持续到2020年4月。

最重要的是 OP的系统仍处于支持状态。OP可以继续apache2正常升级软件包。如果他们还没有此安全更新,则他们将在向后移植和发布该更新后立即收到。版本号可能不匹配,但这并不意味着系统不安全。

根据此电子邮件,9月,Debian 将对CVE-2017-9798的修复程序反向移植到了Jessie中。如果这是OP所关注的漏洞(并且jessie-security repo确实在其sources.list文件中),则该漏洞应该已经在其系统上修复(他们可以通过运行apt show apache2并检查该漏洞来确认该漏洞)版本是2.4.10-10+deb8u11)。如果没有,那么他们应该将CVE号码放入Debian安全追踪器上的搜索框中,然后看看会发生什么。它应该产生一个页面,描述不同版本的Debian中漏洞的状态。OP将寻找“ jessie(安全性)”线。


1

Apache2的(2.4.10-10)是通过Debian的仓库安装了最新版本apt的命令,当有新版本可用它会自动通过升级apt

不幸的apache2是,杰西bacports上没这个节目。

您可以通过编译在apache wesite上安装最新版本:

编译安装


这是个坏建议。如果OP编译自己的Apache,则在发现每个安全问题后都需要这样做。最好保留他们正在运行的发行版的受支持版本。
marcelm

1

您可以使用以下方法查看存储库中的可用版本:

root@server 20:54:59:~# apt-cache policy apache2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.