由于最近的 GHOST 漏洞,我尝试升级我们的 RHEL4 上的 glibc 版本。
我尝试使用的命令是:
rpm -Uvh glibc-2.3.4-2.57.x86_64.rpm
结果是:
[root@rhel4-test ~]# rpm -Uvh glibc-2.3.4-2.57.i686.rpm warning: glibc-2.3.4-2.57.i686.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] package glibc-2.3.4-2.57 is already installed
尽管版本匹配,但 RedHat 支持网站上的更新日志似乎相当旧。
有人成功升级 RHEL4 以抵御 GHOST(CVE-2015-0235)漏洞吗?
答案1
RHEL 4 是 Red Hat 所称的延长生命阶段。
...对于处于延长生命周期阶段的产品版本,Red Hat 将提供有限的持续技术支持。没有安全修复在此阶段将提供错误修复、硬件支持或根本原因分析,并且仅对现有安装提供支持。
您可以购买延长生命周期支持 (ELS) 订阅附加组件来获得延长支持。
在 Red Hat Enterprise Linux 4 和 5 产品生命周期的延长生命周期阶段中可用,延长生命周期支持附加组件提供影响重大的安全修复以及在生产阶段 3 结束后,可用于 Red Hat Enterprise Linux 特定主要版本中已发布的软件包子集的最新版本的选定紧急优先级错误修复。
如果你有 ELS 订阅,那么可以更新RHSA-2015:0101-1。
您的 RHEL 4 系统需要在 RHN 门户或卫星服务器中订阅正确的频道,然后运行up2date -u glibc
。
答案2
萨沙说的几乎是对的,因为我无法发表评论,所以我将把它作为独立答案发布。
忽略依赖性错误是一个非常糟糕的想法™。在这种情况下,这也是不必要的,因为有一个更新版本的 nscd 可以与 glibc 配合使用。
修补后的 glibc 软件包确实可从 Oracle 获得,并且我已确认安装它们可修补 GHOST 漏洞。我建议下载与修补后的 glibc 相关的所有软件包,然后使用 RPM freshen 仅升级已安装在系统上的软件包。
对于 32 位:
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-2.3.4-2.57.0.1.el4.1.i386.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-2.3.4-2.57.0.1.el4.1.i686.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-common-2.3.4-2.57.0.1.el4.1.i386.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-devel-2.3.4-2.57.0.1.el4.1.i386.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-headers-2.3.4-2.57.0.1.el4.1.i386.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-profile-2.3.4-2.57.0.1.el4.1.i386.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-utils-2.3.4-2.57.0.1.el4.1.i386.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/nscd-2.3.4-2.57.0.1.el4.1.i386.rpm
sudo rpm -Fvh *.rpm
对于 64 位:
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-2.3.4-2.57.0.1.el4.1.i686.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-common-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-devel-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-headers-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-profile-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-utils-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/nscd-2.3.4-2.57.0.1.el4.1.x86_64.rpm
sudo rpm -Fvh *.rpm
之后,重新启动所有使用 glibc 的正在运行的服务。您可以通过运行 获取这些服务的列表lsof | grep libc | awk '{print $1}' | sort | uniq
。根据您的情况,重新启动整个服务器可能更简单。
答案3
如果您没有 RHEL 订阅,Oracle 会很贴心地为您的旧 RH4 系统发布更新的软件包。
对于两个系统(i386 和 X86_64),请执行以下操作:
mkdir glibc2015
cd glibc2015
对于 i386 系统,请执行以下操作(注意,我必须将 http 替换为 h**p 以避免此处的垃圾邮件过滤器):
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-2.3.4-2.57.0.1.el4.1.i686.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-common-2.3.4-2.57.0.1.el4.1.i386.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-devel-2.3.4-2.57.0.1.el4.1.i386.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-headers-2.3.4-2.57.0.1.el4.1.i386.rpm
对于 X86_64 系统请执行以下操作:
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-2.3.4-2.57.0.1.el4.1.i686.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-common-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-common-2.3.4-2.57.x86_64.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-devel-2.3.4-2.57.0.1.el4.1.x86_64.rpm
wget h**p://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/x86_64/getPackage/glibc-headers-2.3.4-2.57.0.1.el4.1.x86_64.rpm
对于所有系统:
rpm -Uvh glibc*rpm
如果您收到有关 nscd 依赖于 glibc 的错误,可以执行以下操作:
rpm -Uvh glibc*rpm --nodeps
更新后记得重启所有网络感知服务。如果你不确定哪些服务,重启服务器也许没坏处。
答案4
有一个补丁,RPM应该是glibc-2.3.4-2.57.el4.2.i686.rpm
。
请参阅: https://rhn.redhat.com/errata/RHSA-2015-0101.html