So aktualisieren Sie Apache von 2.2.3 auf 2.2.21

9

Mit YUM habe ich Apache installiert. Die installierte Apache-Version ist 2.2.3

Unser Sicherheitsmann möchte, dass wir 2.2.21 Apache verwenden

Wenn ich das Update 'httpd' versuche, passiert nichts - Keine Pakete für Update markiert

Ich habe die Apache-Homepage ( http://www.apache.org/dist/httpd/patches/ ) auf Patches überprüft . Aufgrund ihrer schriftlichen Anweisung versuche ich, den 2.2.4-Patch zu installieren ( http://www.apache.org/dist/httpd/patches/apply_to_2.2.4/ ).

patch -s < /usr/local/src/hack-msvc8-httpd-2.2.4.patch

Und ich habe eine solche Nachricht erhalten:

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:

Was mache ich falsch? Warum kann ich Apatche nicht auf die Version 2.2.21 aktualisieren?

user1124133
quelle
1
Tu es nicht. Siehe unten.
Nils

Antworten:

16

Um 2.2.x ausführen zu können, müssten Sie entweder ein anderes RPM beziehen - oder es aus dem Quellcode erstellen.

Ich würde jedoch vermuten, da Sie 2.2.3 ausführen, dass Sie RedHat Enterprise Linux 5 oder eines seiner Derivate (CentOS 5 usw.) ausführen. Sie werden feststellen, dass eine beträchtliche Anzahl von Penetrationstestunternehmen oder Sicherheitsbeauftragten nicht berücksichtigt, dass Sie während der Ausführung von 2.2.3 tatsächlich Sicherheitskorrekturen aus späteren Versionen von Apache erhalten haben.

Dies wird als "Backporting" bezeichnet. RedHat hat hier eine gute Beschreibung . Ich würde vorschlagen, von Ihren Sicherheitspersonen die spezifischen CVEs anzufordern, die sie sicherstellen möchten, dass sie gepatcht werden, und dann dieses Redhat-Tool zu verwenden, um festzustellen, ob diese in der von Ihnen ausgeführten Apache-Version behoben sind. Sie können die Versionsnummer durch Vorformen erhalten rpm -qa httpd.

whmcr
quelle
gut mit kollektiven Informationen
Mughil
8

Ich gehe davon aus, dass Sie RHEL5 (oder das Äquivalent) haben.

Sie können dem Sicherheitsmitarbeiter mitteilen, dass Red Hat die relevanten Sicherheitsupdates von 2.2.21 auf sein 2.2.3-Paket anwendet, die Basisversionsnummer jedoch nicht ändert. Es wird (wenn Sie nur nach der Versionsnummer des Pakets suchen) so aussehen, als würden Sie den älteren Apache ausführen, aber Sie sind tatsächlich so sicher wie 2.2.21. Das ist der Sinn langlebiger Unternehmensdistributionen: Sie erhalten Konsistenz sowie Korrekturen.

Sie können dies überprüfen, indem Sie Folgendes ausführen:

rpm -q --changelog httpd

Zum Beispiel sehen Sie diesen letzten Fix im Änderungsprotokoll:

* 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)

Wenn Sie 2.2.21 wirklich wirklich installieren müssen, können Sie es selbst kompilieren. Dies hat seine eigenen schlechten Auswirkungen auf die Sicherheit: Wenn jemand nächste Woche ein neues Problem mit Apache findet und behebt, wird Red Hat diesen Fix zurückportieren und über yum verfügbar machen, aber Ihr selbst erstellter Apache wird diesen Fix nicht haben, und Sie Ich muss den gesamten Prozess erneut durchlaufen, um einen neuen Apache zu erstellen und zu installieren.

cjc
quelle
OK, dann muss ich 2.2.21 nicht installieren. Ich werde versuchen zu erklären, dass meine aktuelle Apache-Installation alle Sicherheitskorrekturen enthält. [root@ww013886 src]# rpm -qa httpd httpd-2.2.3-53.el5.centos.3 [root@ww013886 src]# rpm -q --changelog httpd * Fri Oct 21 2011 Johnny Hughes <[email protected]> - 2.2.3-53.3.el5.centos - Roll in CentOS Branding * Fri Oct 07 2011 Joe Orton <[email protected]> - 2.2.3-53.3 - add security fix for CVE-2011-3368 (#743903) - fix regressions in byterange handling (#736593)
user1124133
1
Es ist wichtig zu wissen, dass die Quell-Apache-Distribution eine RPM-Spezifikationsdatei enthält. Sie können damit ein Apache-Binär-RPM erstellen und das mit CentOS gelieferte ersetzen. Wenn Sie es nicht wirklich müssen, ist es jedoch besser, sich an die von Red Hat zu halten und sie die Updates durchführen zu lassen.
Rilindo
Manchmal behebt RH CVE-Probleme sogar schneller als die nächste stabile Download-Version. Wenn Sie also einen gepatchten httpd ohne manuelle Aktion wünschen, bleiben Sie bei der Distribution!
Nils
Wie kann ich die Updates für meinen Apache-Server erhalten? Wenn ich 'rpm -qa httpd' ausführe, wird '2.2.3-43' angezeigt, was bedeutet, dass ich meinen Apache aktualisieren muss. Wie kann ich Apache manuell aktualisieren?
Gangadhar Jannu
2

Um einen benutzerdefinierten Apache auf Red Hat (oder CentOS) direkt vom Upstream aus zu erstellen, sollten Sie folgende Schritte ausführen:

  1. Installieren Sie die folgenden Tools: "yum install rpm-devel rpmdevtools rpm-build"
  2. Führen Sie als normaler Benutzer rpmdev-setuptree aus. Es wird ein Verzeichnis mit dem Namen "rpmbuild" erstellt.
  3. cd zu ~ / rpmbuild / SOURCE und lade den Apache-Quell-Tarball von httpd.apache.org in dieses Verzeichnis herunter.
  4. Extrahieren Sie aus diesem Tarball die Datei "httpd.spec" und kopieren Sie sie in ~ / rpmbuild / SPECS
  5. Führen Sie "rpmbuild -bb httpd.spec" aus und es wird mit dem Kompilieren und Erstellen der RPMs begonnen. Wenn Abhängigkeiten fehlen, wird diese angehalten und angezeigt. Installieren Sie zu diesem Zeitpunkt diese Pakete über yum und starten Sie den Erstellungsprozess erneut (Sie können dies vermeiden, indem Sie sich die Zeile BuildPrereq in der .spec-Datei ansehen). Andernfalls können Sie unter der Annahme, dass keine weiteren Probleme auftreten, Ihren eigenen Apache-Build kompilieren. *

Oder sparen Sie sich die Arbeit und lassen Sie Red Hat die Updates durchführen. Ich empfehle Ihnen nicht, dies zu tun, es sei denn, es besteht ein spezifischer Bedarf an einem Upstream-Build, der von einem Vendor-Build nicht unbedingt erfüllt werden kann

* Hinweis: Unter Red Hat 6 wird distcache nicht mehr unterstützt, daher müssen Sie "--enable-distcache" aus der .spec-Datei entfernen.

Rilindo
quelle
1

Der Patch, den Sie anwenden wollten, dient zum Erstellen mit Microsoft Visual Studio. Der Hinweis befindet sich in der Kopfzeile des Patches:

### A trivial hack to copy the .manifest files along with the binaries
### when building from the command line on Visual Studio 2005

Dadurch wird ein Apache-Quellbaum nicht auf 2.2.4 gepatcht. Aber haben Sie tatsächlich versucht, dies auf das SRPM anzuwenden?

Wie cjc erwähnt, werden Red Hat-Backport-Sicherheitskorrekturen für die von ihnen gelieferte Version durchgeführt, aber die Versionsnummer wird nicht unbedingt erhöht. Und wieder können Sie Apache jederzeit selbst kompilieren.

James O'Gorman
quelle