使用YUM我安装了apache。 安装的apache版本是2.2.3
我们的安全人员希望我们使用2.2.21 apache
当我尝试yum更新“httpd”时,什么也没有发生 – 没有标记为更新的软件包
我检查了有关补丁的Apache主页( http://www.apache.org/dist/httpd/patches/ )。 根据他们的书面指示,我尝试安装2.2.4补丁( http://www.apache.org/dist/httpd/patches/apply_to_2.2.4/ )
patch -s < /usr/local/src/hack-msvc8-httpd-2.2.4.patch
我得到了这样的信息:
The text leading up to this was: |### |### A trivial hack to copy the .manifest files along with the binaries |### when building from the command line on Visual Studio 2005 |### |### Courtesy of Gustavo Lopes |### Posted to [email protected], |### Message-ID: <006901c731ae$97bec180$0201a8c0@cataphract> |### |--- Makefile.win.orig 2006-12-07 11:09:37.000000000 -0600 |+++ Makefile.win 2007-01-08 23:55:56.000000000 -0600 File to patch:
我在做什么不正确? 为什么我不能将Apatche更新到2.2.21版本?
为了运行2.2.x,您需要另外获得一个RPM,或者从源代码构build它。
不过,我怀疑你运行的是2.2.3,你运行的是RedHat Enterprise Linux 5或者其衍生产品之一(CentOS 5等)。 你会发现,相当数量的渗透testing公司或安全人员并没有考虑到你在运行2.2.3的时候,你实际上已经从Apache的后续版本中获得了安全修复。
这被称为“backporting”。 RedHat 在这里有一个很好的描述 。 我build议您向安全人员请求他们有兴趣确保修补的特定CVE,然后使用这个 redhat工具来确定这些修复是否在您正在运行的apache版本中修复。 您可以通过执行rpm -qa httpd来获取版本号。
我假设你有RHEL5(或相当的)。
您可以告诉安全人员Red Hat将2.2.21中的相关安全更新应用于其2.2.3包,但不会更改基本版本号。 它会(如果你只是通过包版本号)看起来像你正在运行的旧版本的Apache,但你实际上是一样安全的2.2.21。 这是长期的企业分布的一个点:你得到一致性,以及修复。
你可以通过运行如下来validation:
rpm -q --changelog httpd
例如,您将在更新日志中看到最近的修复:
* Thu Oct 06 2011 Joe Orton <[email protected]> - 2.2.3-53.3 - add security fix for CVE-2011-3368 (#743903) - fix regressions in byterange handling (#736593)
如果你确实需要安装2.2.21,你可以自己编译。 这将对安全产生不利的影响:如果有人在下周发现并解决了一个新的Apache问题,Red Hat将把这个修补程序恢复并通过yum提供,但是你自己build立的Apache不会有这个修复,而你将不得不经过整个过程再次build立和安装一个新的Apache。
要直接从上游构build红帽(或CentOS)上的自定义Apache,您应该执行以下操作:
或者保存自己的工作,让红帽处理更新。 我不build议你这样做,除非有一个上游构build的特定需求,不能完全由供应商构build满足
*注意:在Red Hat 6下,distcache不再被支持,所以你需要从.spec文件中删除“–enable-distcache”。
您尝试应用的补丁是用Microsoft Visual Studio构build的。 线索在补丁的头文件中:
### A trivial hack to copy the .manifest files along with the binaries ### when building from the command line on Visual Studio 2005
这实际上并没有将Apache源代码树修补到2.2.4。 但是你真的想把这个应用到SRPM吗?
由于cjc提到红帽回溯安全修复程序到他们发行的任何版本,但版本号不一定会碰撞。 而且,你可以随时编译Apache。