วิธีอัปเกรด Apache จาก 2.2.3 เป็น 2.2.21


9

ใช้ YUM ฉันติดตั้ง apache เวอร์ชัน Apache ที่ติดตั้งคือ 2.2.3

เจ้าหน้าที่รักษาความปลอดภัยของเราต้องการให้เราใช้ Apache 2.2.21

เมื่อฉันลอง 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 ได้?


1
อย่าทำอย่างนั้น ดูด้านล่าง
นิลส์

คำตอบ:


16

ในการใช้งาน 2.2.x คุณจะต้องหาแหล่ง RPM อื่นหรือสร้างจากแหล่งที่มา

ฉันสงสัย แต่เนื่องจากคุณใช้ 2.2.3 ว่าคุณกำลังใช้ RedHat Enterprise Linux 5 หรือหนึ่งในอนุพันธ์ (CentOS 5 เป็นต้น) คุณจะพบว่า บริษัท ทดสอบการเจาะระบบจำนวนมากหรือเจ้าหน้าที่รักษาความปลอดภัยไม่ได้คำนึงถึงว่าในขณะที่คุณใช้งาน 2.2.3 คุณได้รับการแก้ไขด้านความปลอดภัยจาก Apache รุ่นที่ใหม่กว่า

สิ่งนี้เรียกว่า 'backporting' RedHat มีดีรายละเอียดที่นี่ ฉันขอแนะนำให้ขอ CVE เฉพาะจากบุคคลที่มีความสนใจในการตรวจสอบให้แน่ใจว่าได้รับการแก้ไขแล้วใช้เครื่องมือ redhat นี้เพื่อระบุว่าสิ่งเหล่านี้ได้รับการแก้ไขใน apache เวอร์ชันที่คุณใช้อยู่หรือไม่ คุณจะได้รับหมายเลขรุ่นโดย rpm -qa httpdpreforming


ดีพร้อมข้อมูลรวม
Mughil

8

ฉันถือว่าคุณมี 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 ใหม่


ตกลงแล้วฉันไม่ต้องการติดตั้ง 2.2.21 ฉันจะลองอธิบายว่าการติดตั้ง Apache ปัจจุบันของฉันมีการแก้ไขความปลอดภัยทั้งหมด [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 <johnny@centos.org> - 2.2.3-53.3.el5.centos - Roll in CentOS Branding * Fri Oct 07 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)
user1124133

1
สิ่งสำคัญคือต้องรู้ว่าการแจกจ่าย apache ต้นทางมีไฟล์ spec RPM คุณสามารถใช้สิ่งนั้นเพื่อสร้าง Apache ไบนารี RPM และแทนที่อันที่มาพร้อมกับ CentOS อย่างไรก็ตามถ้าคุณไม่ได้มีมันจะดีกว่าที่จะติดกับ Red Hat และปล่อยให้พวกเขาจัดการการปรับปรุง
Rilindo

บางครั้ง RH แก้ไขปัญหา CVE ได้เร็วกว่าการปล่อยเสถียรครั้งต่อไป ดังนั้นหากคุณต้องการ httpd ที่แพตช์โดยไม่มีการดำเนินการด้วยตนเอง
นิลส์

ฉันจะรับการอัปเดตสำหรับเซิร์ฟเวอร์ apache ได้อย่างไร เมื่อฉันรัน 'rpm -qa httpd' จะแสดง '2.2.3-43' ซึ่งหมายความว่าฉันต้องอัปเดต apache ของฉัน ดังนั้นฉันจะอัปเดต apache ด้วยตนเองได้อย่างไร
Gangadhar Jannu

2

ในการสร้าง Apache แบบกำหนดเองบน Red Hat (หรือ CentOS) โดยตรงจาก upstream คุณควรทำสิ่งต่อไปนี้:

  1. ติดตั้งเครื่องมือต่อไปนี้: "yum install rpm-devel rpmdevtools rpm-build"
  2. ในฐานะผู้ใช้ทั่วไปให้รัน rpmdev-setuptree มันจะสร้างไดเรกทอรีชื่อ "rpmbuild"
  3. cd ไปที่ ~ / rpmbuild / SOURCE และดาวน์โหลดลงในไดเรกทอรีนั้น Apache แหล่ง tarball จาก httpd.apache.org
  4. แยกจากไฟล์ tarball นั้น "httpd.spec" และคัดลอกลงใน ~ / rpmbuild / SPECS
  5. เรียกใช้ "rpmbuild -bb httpd.spec" และจะเริ่มรวบรวมและสร้าง rpms หากมีการพึ่งพาใด ๆ ที่ขาดหายไปมันจะหยุดและบอกคุณ ณ จุดนี้ให้ติดตั้งแพ็กเกจเหล่านั้นผ่าน yum และเริ่มกระบวนการสร้างใหม่อีกครั้ง (คุณสามารถหลีกเลี่ยงสิ่งนี้ได้โดยดูที่บรรทัด BuildPrereq ในไฟล์. spec) มิฉะนั้นหากไม่มีปัญหาเพิ่มเติมคุณจะสามารถรวบรวม Apache ของคุณได้

หรือช่วยตัวเองทำงานและให้ Red Hat จัดการกับการปรับปรุง ฉันไม่แนะนำให้คุณทำเช่นนี้เว้นแต่จะมีความต้องการเฉพาะสำหรับบิลด์อัปสตรีมที่ไม่สามารถสร้างได้โดยบิวด์บิลด์

* หมายเหตุ: ใน Red Hat 6 ไม่รองรับ distcache อีกต่อไปดังนั้นคุณจะต้องลบ "--enable-distcache" ออกจากไฟล์. spec


1

โปรแกรมปะแก้ที่คุณพยายามจะใช้สำหรับสร้างด้วย 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 ด้วยตัวคุณเองได้ตลอดเวลา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.