Назад | Перейти на главную страницу

Как обновить Apache с 2.2.3 до 2.2.21

Используя YUM, я установил apache. Установленная версия apache - 2.2.3

Наш охранник хочет, чтобы мы использовали 2.2.21 apache

Когда я пытаюсь yum update '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 dev@httpd.apache.org,
|### 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, либо собрать его из исходного кода.

Однако, поскольку вы используете 2.2.3, я подозреваю, что вы используете RedHat Enterprise Linux 5 или одну из его производных (CentOS 5 и т. Д.). Вы обнаружите, что значительное количество компаний по тестированию на проникновение или сотрудников службы безопасности не принимают во внимание, что пока вы используете 2.2.3, вы действительно получаете исправления безопасности из более поздних версий Apache.

Это известно как «обратное портирование». RedHat имеет хороший описание здесь. Я бы посоветовал запросить у ваших сотрудников службы безопасности конкретные CVE, которые они заинтересованы в исправлении, а затем использовать этот инструмент redhat, чтобы определить, исправлены ли они в используемой вами версии apache. Вы можете получить номер версии, предварительно сформировав rpm -qa httpd.

Я предполагаю, что у вас есть RHEL5 (или эквивалент).

Вы можете сказать охраннику, что Red Hat применяет соответствующие обновления безопасности от 2.2.21 к своему пакету 2.2.3, но не меняет базовый номер версии. Это будет (если вы просто используете номер версии пакета) будет выглядеть так, как будто вы используете более старый Apache, но на самом деле вы будете так же безопасны, как и 2.2.21. Это своего рода суть долгоживущих корпоративных дистрибутивов: вы получаете согласованность, а также исправления.

Вы можете проверить это, запустив что-то вроде:

rpm -q --changelog httpd

Например, вы увидите это недавнее исправление в журнале изменений:

* Thu Oct 06 2011 Joe Orton <jorton@redhat.com> - 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, но ваш собственный Apache не будет иметь этого исправления, и вы Придется пройти весь процесс еще раз, чтобы собрать и установить новый Apache.

Чтобы создать собственный Apache на Red Hat (или CentOS) непосредственно из апстрима, вы должны сделать следующее:

  1. Установите следующие инструменты: «yum install rpm-devel rpmdevtools rpm-build»
  2. Как обычный пользователь запустите rpmdev-setuptree. Будет создан каталог под названием «rpmbuild».
  3. cd в ~ / rpmbuild / SOURCE и загрузите в этот каталог архив с исходным кодом Apache с httpd.apache.org.
  4. Извлеките из этого архива файл "httpd.spec" и скопируйте его в ~ / rpmbuild / SPECS.
  5. Запустите «rpmbuild -bb httpd.spec», и он начнет компиляцию и сборку rpms. Если есть какие-либо недостающие зависимости, он остановится и сообщит вам. На этом этапе установите эти пакеты через yum и снова перезапустите процесс сборки (этого можно избежать, просмотрев строку BuildPrereq в файле .spec). В противном случае, если не возникнет других проблем, вы сможете скомпилировать собственную сборку Apache. *

Или сэкономьте себе работу и позвольте Red Hat обрабатывать обновления. Я не рекомендую вам это делать, если нет особой потребности в сборке апстрима, которая не может быть полностью удовлетворена сборкой поставщика.

* Примечание: в Red Hat 6 distcache больше не поддерживается, поэтому вам нужно удалить «--enable-distcache» из файла .spec.

Патч, который вы пытались применить, предназначен для сборки с помощью Microsoft Visual Studio. Подсказка в шапке патча:

### 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 упоминает Исправления безопасности Red Hat backport для любой версии, которую они поставляют, но номер версии не обязательно увеличивается. И снова, вы всегда можете скомпилировать Apache самостоятельно.