RHEL4/CentOS4向けのbash RPM(10/07 12:00修正)


bash脆弱性について、いろいろ状況が変わりつつあるので書き直し。

RHEL4/CentOS4サーバが生き残っている場合に、簡単に対処する方法があるのか探してみる。

まず、RedHatで情報を探すと、RHEL4については、延長サポート内では以下の脆弱性が該当するようだ。
RHSA-2014:1294-1 Critical: bash security update(CVE-2014-6271)
RHSA-2014:1311-1 Important: bash security update(CVE-2014-7169)

両方のページから情報を見ていくと、以下のページに着く。
Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169)

さらに、検証や、パッチを提供できない場合に状況を緩和するための方策が掲載されている、以下のページがある。
Mitigating the shellshock vulnerability (CVE-2014-6271 and CVE-2014-7169)

で・・・9/27 7時頃に「Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169)」を始め、各ページの情報が更新されていた。
Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169)」の「Products Affected:」の「Red Hat Enterprise Linux 4」欄が「bash-3.0-27.el4.4」に書き換わった。
Important: bash security update」の「Updated packages」が「bash-3.0-27.el4.4.src.rpm」に書き換わった。

というわけで、「bash-3.0-27.el4.4」が出たようだ。

RedHatの延長サポートが提供するSource RPMを入手するのは面倒なので、Oracle LinuxのSource RPMを確認。
https://oss.oracle.com/el4/SRPMS-updates/を見ると、「bash-3.0-27.0.3.el4.src.rpm」が登場している。
Changelogを確認すると、以下の様になっている。

* Fri Sep 26 2014 Todd Vierling <todd.vierling@oracle.com> - 3.0-27.0.3
- Rework env function definition for safety (Florian Weimer) [CVE-2014-7169]

* Thu Sep 25 2014 Todd Vierling <todd.vierling@oracle.com> - 3.0-27.0.2
- Preliminary fix for CVE-2014-7169

* Wed Sep 24 2014 Guangyu Sun <guangyu.sun@oracle.com> - 3.0-27.0.1
- Check for fishy environment (Ondrej Oprala) [CVE-2014-6271]
Resolves: #1141644

RHEL4の「bash-3.0-27.el4.4」での修正内容が分からないので、同等品なのかが判断できないが、不足していたCVE-2014-7169対策の一環である、ということは分かった。

とりあえず、https://oss.oracle.com/el4/SRPMS-updates/bash-3.0-27.0.3.el4.src.rpmを入手して、「rpmbuild –rebuild bash-3.0-27.0.3.el4.src.rpm」でバイナリRPMを作って、インストール・・・・

という風にやってたのですが、しばらく修正が続きそうな感じもあります。
なので、これを機会にOracle Linux 4のPublic yum repositoryを使用してしまおう、という考えもあると思います。
その場合は、「RHEL4/CentOS4をOracle Linux4に!」という別記事の方を参照してください。
この切り替えを行ってしまうと、Oracle Linuxに乗り換える、という話になるのですが、Oracle Linux 4は、それ以降のバージョンと違って、ほとんど差がないですし、元のサポートが切れたRHEL/CentOSの方に戻る、ってことも無いでしょうから、あまり問題はないのではないでしょうか?


2014/09/29 11:00追記
https://github.com/hannob/bashcheckという脆弱性チェックスクリプト

bash-3.0-27.0.3.el4での実行結果は以下の様になった。

./bashcheck
Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
Not vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Variable function parser inactive, likely safe from unknown parser bugs
#

ちなみに、bash-3.0-27.0.2.el4だと以下だった。

./bashcheck
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
./bashcheck: line 18: 3528 Segmentation fault    bash -c "true $(printf '<<EOF %.0s' {1..79})" 2>/dev/null
Vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Variable function parser inactive, likely safe from unknown parser bugs
#

2014/10/07 12:00追記

上記のbashcheckがバージョンアップし、下記の脆弱性に関するチェック項目が増えました。
CVE-2014-6278

bash-3.0-27.0.3.el4での実行結果は以下の様になった。

# ./bashcheck
Testing /bin/bash ...
GNU bash, version 3.00.15(1)-release (x86_64-redhat-linux-gnu)

Variable function parser pre/suffixed [(), redhat], bugs not exploitable
Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
Not vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Found non-exploitable CVE-2014-6277 (lcamtuf bug #1)
Not vulnerable to CVE-2014-6278 (lcamtuf bug #2)
#

CVE-2014-6277の判定は以下で行われていた。

bash -c "f(){ x(){ _;};x(){ _;}<<a;}"

で、これを直接実行すると、以下の結果になる。

# bash -c "f(){ x(){ _;};x(){ _;}<<a;}"
セグメンテーション違反です
# echo $?
139
#

正常終了できてないから問題あり、ということですね。


以下は古い情報です。
アーカイブとして残しておきます。


昨日から、bashの脆弱性に関して騒がしい。

RHEL4/CentOS4サーバが生き残ってる場合、簡単に対処できる方法があるのか探してみる。
まず公式情報を確認。

RHSA-2014:1294-1 Critical: bash security update(CVE-2014-6271)
ここに、「Red Hat Enterprise Linux ELS (v. 4)」「bash-3.0-27.el4.2.src.rpm」があるので、RHEL4の延長サポートであれば修正が出ているようだ。

ただ、延長サポート中のRHEL Souce RPMを探すのはめんどいので、前回と同じく、Oracle LinuxのSource RPM配布場所「https://oss.oracle.com/el4/SRPMS-updates/」をチェックしてみる。

とりあえず、2014年の更新分としては、以下があった。

2014/09/24 bash-3.0-27.0.1.el4.src.rpm
2014/09/25 bash-3.0-27.0.2.el4.src.rpm
2014/06/10 openssl-0.9.7a-43.18.0.2.el4.src.rpm
2014/09/16 tzdata-2014g-1.0.1.el4.src.rpm

bash-3.0-27.0.1.el4.src.rpmなら修正済みのバージョンなんですかね?

ということで・・・「rpmbuild –rebuild bash-3.0-27.0.1.el4.src.rpm」という感じでRPMパッケージを作成してインストールっと。
下記に追加したように修正が完全ではないようでした。

注意: 上記のURLは、source RPMです。コンパイル済みのバイナリRPMは、各自が作成してください。


2014/09/26 9:30追記

bash-3.0-27.0.1.el4.src.rpmの修正内容を確認すると、下記の様に書かれている。

* Wed Sep 24 2014 Guangyu Sun &lt;guangyu.sun@oracle.com&gt; - 3.0-27.0.1
- Check for fishy environment (Ondrej Oprala)
Resolves: #1141644

Oracleの#1141644とは何かを探すと「Oracle alert ELSA-2014-1293 (bash)」で、これは、「RedHat Critical: bash security update RHSA-2014-1293 / CVE-2014-6271」に該当する。

で、「Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169)」を確認すると、「影響を受けるバージョン」として「Red Hat Enterprise Linux 4 bash-3.0-27.el4.2」が書かれている。

つうわけで、Oracle Linuxのbash 3.0-27.0.1はCVE-2014-7169で、RHELのbash 3.0-27.el4.2はCVE-2014-7169+CVE-2014-6271ということで、パッチが足りていない。
なおかつ、RHELのbash 3.0-27.el4.2、であっても完全な修正は行われていないので、完全な修正のためには次のバージョンを待つ必要がある、と。

じゃぁ、一時的に対処する方法はあるのか?と「Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169)」に記載されているworkaroundを確認
・「mod_security」を使用
・「iptablesのstringモジュール」を使用

どっちも、RHEL4には存在しないじゃないですかー


2014/09/26 13:30+18:30修正

Oracle public yum の方にbash-3.0-27.0.2.el4.src.rpmが登場
2014/09/25 bash-3.0-27.0.2.el4.src.rpm

といっても、まだ、脆弱性が残ってるバージョンになりますけどね。
とりあえず、「env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”」で確認できる脆弱性については、コレで解決してますね。
ただ、bashの脆弱性は続々発見されているので、どこまでが該当してて、対応しなければならないのかよく分からない・・・


2014/09/26 17:00おまけ

iptablesのstringモジュールって、iptables-1.3.8を持ってくれば使えるのかな?と思って、足りないヘッダファイルをRHEL5から持ってきて、RHEL4環境に入れてみたんですが、RHEL4 kernel側が対応していないので無意味でした。


2014/09/26 20:00追記

RHEL4/CentOS4をOracle Linux4に!」という別記事も書いてたりします。

上記で上げたOracle LinuxのSource RPMを元にしているYUM レポジトリを使用する、という話です。
まぁ、RHEL/CentOSではなく、Oracle Linuxに乗り換える、という話ではありますが、Oracle Linux 4は、それ以降のバージョンと違って、ほとんど差がないですから、気軽に乗り換えることができます。

Oracle Linux用の公開レポジトリについて


Oracle Linux 7β版のページを見ていたら、以下の記述を発見。

Oracle Linux is an open source operating system available under the GNU General Public License (GPL). Oracle Linux is optimized for Oracle hardware and software and offers zero-downtime kernel updates with Ksplice and enterprise tracing and diagnostic capabilities with DTrace. Oracle Linux is free to download, free to distribute and free to use. All errata is freely available on public-yum.oracle.com .

契約していなくても使える公開レポジトリがあるらしい。

Oracle Linux Public Yum Server

現在、以下の4種類のレポジトリがある模様
・Oracle Linux 4 Update 6以降
・Oracle Linux 5
・Oracle Linux 6
・Oracle VM 2

Oracle Linux 4用は更新されてるのかなぁ?と覗いてみた・・・
以前「CentOS4の2012年03月以降のパッチ」で書いたように2014年更新なのはtzdataのみでした。
他のパッケージは更新されていないので、いまさらRHEL4/CentOS4を使い続けるのはやっぱり危険ですね。

で・・・本題のOracle Linux 6用のものを見てみる・・・
http://public-yum.oracle.com/repo/OracleLinux/OL6/

特筆するようなものとしては、以下のようなレポジトリが含まれているというところ。
・MySQL 5.5 (ol6_MySQL)
・MySQL 5.6 (ol6_MySQL56)
・Unbrakable Enterprise kernel 2.6.39 (ol6_UEK_latest)
・Unbrakable Enterprise kernel 3.8.13 (ol6_UEKR3_latest)
・常に最新kernel。2014/05/28時点では3.15.0-rc (ol6_playground_latest)

playgroundの位置づけについては、「Oracle Linux Playground」を参照のこと。

RHEL6/CentOS6でもこのレポジトリを突っ込めるので入れてみた。
競合するので、既存の/etc/yum.repos.dの中身をリネームしてから、Public repo用のファイルを入手

[root@rhel6 ~]# cd /etc/yum.repos.d/
[root@rhel6 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-ol6.repo
--2014-05-28 xx:xx:xx--  http://public-yum.oracle.com/public-yum-ol6.repo
public-yum.oracle.com をDNSに問いあわせています... 203.179.83.19, 203.179.83.11
public-yum.oracle.com|203.179.83.19|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 4233 (4.1K) 
`public-yum-ol6.repo' に保存中

100%[======================================>] 4,233       --.-K/s 時間 0s

2014-05-28 xx:xx:xx (139 MB/s) - `public-yum-ol6.repo' へ保存完了 [4233/4233]

[root@rhel6 yum.repos.d]#

まず、中身を確認

[root@rhel6 yum.repos.d]# cat public-yum-ol6.repo
[ol6_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol6_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_ga_base]
name=Oracle Linux $releasever GA installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/0/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_u1_base]
name=Oracle Linux $releasever Update 1 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_u2_base]
name=Oracle Linux $releasever Update 2 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/2/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_u3_base]
name=Oracle Linux $releasever Update 3 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/3/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_u4_base]
name=Oracle Linux $releasever Update 4 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/4/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_u5_base]
name=Oracle Linux $releasever Update 5 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/5/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_UEKR3_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_UEK_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol6_UEK_base]
name=Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_playground_latest]
name=Latest mainline stable kernel for Oracle Linux 6 ($basearch) - Unsupported
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/playground/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_MySQL]
name=MySQL 5.5 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_gdm_multiseat]
name=Oracle Linux 6 GDM Multiseat ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/gdm_multiseat/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_ofed_UEK]
name=OFED supporting tool packages for Unbreakable Enterprise Kernel on Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/ofed_UEK/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_MySQL56]
name=MySQL 5.6 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL56/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_spacewalk20_server]
name=Spacewalk Server 2.0 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/server/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol6_spacewalk20_client]
name=Spacewalk Client 2.0 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/client/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[root@rhel6 yum.repos.d]#

標準で有効になっているものは「ol6_latest」「ol6_UEK_latest」。
つまり、基本はRHEL6互換だけど、kernelだけ2.6.39になる、というもの。

kernelとmysqlについては複数の選択肢がある。

・kernelの使い分けについて
「RHEL6相当のkernel 2.6.32」「UEK kernel 2.6.39」「UEK kernel 3.8.13」の3種類がある。
UEKのkernelを使いたい場合は、「kernel-uek」を追加でインストールし、grub.confを修正してkernel-uekで起動できるように変更する。
「UEK kernel 2.6.39」と「UEK kernel 3.8.13」は、パッケージ名としては、どちらも「kernel-uek」となる。
初期設定時「kernel-uek」を指定すると「UEK kernel 2.6.39」になるが、/etc/yum.repo.d/public-yum-ol6.repo 内の「ol6_UEKR3_latest」の「enabled=0」を「enabled=1」に変更すると、「UEK kernel 3.8.13」を使用する用になる。

・MySQLの使い分けについて
「RHEL6相当のMySQL 5.1」「MySQL 5.5」「MySQL 5.6」の3種類がある。
標準状態は「RHEL6相当のMySQL 5.1」となる。
パッケージ名としては「mysql-server」という名前で「RHEL6相当のMySQL 5.1」「MySQL 5.5」の両方が該当する。
このため、RPM管理上は単純な置き換え、という扱いになる。

それに対して「MySQL 5.6」の方は「mysql-community-server」という別のパッケージ名での提供になる。
ただし、/etc/init.d/mysqldとか/etc/my.cnfとか設定ファイル上は、いままでのものと同じである。
(このため、mysql-serverとmysql-community-serverは、同時にインストールできない)

さて、CentOS6.5の状態からアップデートした場合、どんなパッケージがアップデートされるのか確認してみる。

まず、通常のCentOS6.5をインストールした直後にyum check-updateを実行した場合。

[root@centos6 ~]# yum check-update
Loaded plugins: fastestmirror
base                                                     | 3.7 kB     00:00
base/primary_db                                          | 4.4 MB     00:00
extras                                                   | 3.4 kB     00:00
extras/primary_db                                        |  19 kB     00:00
updates                                                  | 3.4 kB     00:00
updates/primary_db                                       | 3.1 MB     00:00

ca-certificates.noarch                     2013.1.95-65.1.el6_5          updates
centos-release.x86_64                      6-5.el6.centos.11.2           updates
coreutils.x86_64                           8.4-31.el6_5.1                updates
coreutils-libs.x86_64                      8.4-31.el6_5.1                updates
device-mapper-persistent-data.x86_64       0.2.8-4.el6_5                 updates
dracut.noarch                              004-336.el6_5.2               updates
dracut-kernel.noarch                       004-336.el6_5.2               updates
ethtool.x86_64                             2:3.5-1.4.el6_5               updates
glib2.x86_64                               2.26.1-7.el6_5                updates
glibc.x86_64                               2.12-1.132.el6_5.2            updates
glibc-common.x86_64                        2.12-1.132.el6_5.2            updates
grep.x86_64                                2.6.3-4.el6_5.1               updates
initscripts.x86_64                         9.03.40-2.el6.centos.1        updates
kernel.x86_64                              2.6.32-431.17.1.el6           updates
kernel-firmware.noarch                     2.6.32-431.17.1.el6           updates
krb5-libs.x86_64                           1.10.3-15.el6_5.1             updates
libblkid.x86_64                            2.17.2-12.14.el6_5            updates
libuuid.x86_64                             2.17.2-12.14.el6_5            updates
libxml2.x86_64                             2.7.6-14.el6_5.1              updates
mysql-libs.x86_64                          5.1.73-3.el6_5                updates
nspr.x86_64                                4.10.2-1.el6_5                updates
nss.x86_64                                 3.15.3-6.el6_5                updates
nss-softokn.x86_64                         3.14.3-10.el6_5               updates
nss-softokn-freebl.x86_64                  3.14.3-10.el6_5               updates
nss-sysinit.x86_64                         3.15.3-6.el6_5                updates
nss-tools.x86_64                           3.15.3-6.el6_5                updates
nss-util.x86_64                            3.15.3-1.el6_5                updates
openldap.x86_64                            2.4.23-34.el6_5.1             updates
openssl.x86_64                             1.0.1e-16.el6_5.7             updates
p11-kit.x86_64                             0.18.5-2.el6_5.2              updates
p11-kit-trust.x86_64                       0.18.5-2.el6_5.2              updates
postfix.x86_64                             2:2.6.6-6.el6_5               updates
psmisc.x86_64                              22.6-19.el6_5                 updates
python.x86_64                              2.6.6-52.el6                  updates
python-libs.x86_64                         2.6.6-52.el6                  updates
selinux-policy.noarch                      3.7.19-231.el6_5.3            updates
selinux-policy-targeted.noarch             3.7.19-231.el6_5.3            updates
tzdata.noarch                              2014b-3.24.el6                updates
upstart.x86_64                             0.6.5-13.el6_5.3              updates
util-linux-ng.x86_64                       2.17.2-12.14.el6_5            updates
yum.noarch                                 3.2.29-43.el6.centos          updates
yum-plugin-fastestmirror.noarch            1.1.30-17.el6_5               updates
[root@centos6 ~]#

続いて、Oralce Linux 6 public yumにした場合のyum check-updateの結果。

[root@centos6 yum.repos.d]# yum check-update
Loaded plugins: fastestmirror
Determining fastest mirrors
ol6_UEK_latest                                           | 1.2 kB     00:00
ol6_UEK_latest/primary                                   |  14 MB     00:01
ol6_UEK_latest                                                          302/302
ol6_latest                                               | 1.4 kB     00:00
ol6_latest/primary                                       |  38 MB     00:03
ol6_latest                                                          25346/25346

basesystem.noarch                    10.0-4.0.1.el6         ol6_latest
bfa-firmware.noarch                  3.2.23.0-1.0.1.el6     ol6_latest
ca-certificates.noarch               2013.1.95-65.1.el6_5   ol6_latest
coreutils.x86_64                     8.4-31.0.1.el6_5.1     ol6_latest
coreutils-libs.x86_64                8.4-31.0.1.el6_5.1     ol6_latest
curl.x86_64                          7.19.7-37.el6_5.3      ol6_latest
dbus-glib.x86_64                     0.86-6.el6_4           ol6_latest
dbus-libs.x86_64                     1:1.2.24-7.0.1.el6_3   ol6_latest
device-mapper-persistent-data.x86_64 0.2.8-4.el6_5          ol6_latest
dhclient.x86_64                      12:4.1.1-38.P1.0.1.el6 ol6_latest
dhcp-common.x86_64                   12:4.1.1-38.P1.0.1.el6 ol6_latest
dracut.noarch                        004-336.0.1.el6_5.2    ol6_latest
dracut-kernel.noarch                 004-336.0.1.el6_5.2    ol6_latest
e2fsprogs.x86_64                     1.42.8-1.0.1.el6       ol6_latest
e2fsprogs-libs.x86_64                1.42.8-1.0.1.el6       ol6_latest
ethtool.x86_64                       2:3.5-1.4.el6_5        ol6_latest
glib2.x86_64                         2.26.1-7.el6_5         ol6_latest
glibc.x86_64                         2.12-1.132.el6_5.2     ol6_latest
glibc-common.x86_64                  2.12-1.132.el6_5.2     ol6_latest
grep.x86_64                          2.6.3-4.el6_5.1        ol6_latest
grub.x86_64                          1:0.97-83.0.1.el6      ol6_latest
grubby.x86_64                        7.0.15-5.0.2.el6       ol6_latest
initscripts.x86_64                   9.03.40-2.0.1.el6_5.1  ol6_latest
iptables.x86_64                      1.4.7-11.0.1.el6       ol6_latest
iptables-ipv6.x86_64                 1.4.7-11.0.1.el6       ol6_latest
kernel.x86_64                        2.6.32-431.17.1.el6    ol6_latest
kernel-firmware.noarch               2.6.32-431.17.1.el6    ol6_latest
krb5-libs.x86_64                     1.10.3-15.el6_5.1      ol6_latest
libblkid.x86_64                      2.17.2-12.14.el6_5     ol6_latest
libcom_err.x86_64                    1.42.8-1.0.1.el6       ol6_latest
libcurl.x86_64                       7.19.7-37.el6_5.3      ol6_latest
libss.x86_64                         1.42.8-1.0.1.el6       ol6_latest
libudev.x86_64                       147-2.51.0.3.el6       ol6_latest
libuuid.x86_64                       2.17.2-12.14.el6_5     ol6_latest
libxml2.x86_64                       2.7.6-14.0.1.el6_5.1   ol6_latest
module-init-tools.x86_64             3.9-21.0.1.el6_4       ol6_latest
mysql-libs.x86_64                    5.1.73-3.el6_5         ol6_latest
nspr.x86_64                          4.10.2-1.el6_5         ol6_latest
nss.x86_64                           3.15.3-6.0.1.el6_5     ol6_latest
nss-softokn.x86_64                   3.14.3-10.el6_5        ol6_latest
nss-softokn-freebl.x86_64            3.14.3-10.el6_5        ol6_latest
nss-sysinit.x86_64                   3.15.3-6.0.1.el6_5     ol6_latest
nss-tools.x86_64                     3.15.3-6.0.1.el6_5     ol6_latest
nss-util.x86_64                      3.15.3-1.el6_5         ol6_latest
openldap.x86_64                      2.4.23-34.el6_5.1      ol6_latest
openssl.x86_64                       1.0.1e-16.el6_5.7      ol6_latest
p11-kit.x86_64                       0.18.5-2.el6_5.2       ol6_latest
p11-kit-trust.x86_64                 0.18.5-2.el6_5.2       ol6_latest
plymouth.x86_64                      0.8.3-27.0.1.el6       ol6_latest
plymouth-core-libs.x86_64            0.8.3-27.0.1.el6       ol6_latest
plymouth-scripts.x86_64              0.8.3-27.0.1.el6       ol6_latest
policycoreutils.x86_64               2.0.83-19.39.0.1.el6   ol6_latest
postfix.x86_64                       2:2.6.6-6.el6_5        ol6_latest
psmisc.x86_64                        22.6-19.el6_5          ol6_latest
python.x86_64                        2.6.6-52.el6           ol6_latest
python-libs.x86_64                   2.6.6-52.el6           ol6_latest
ql2400-firmware.noarch               7.03.00-1.0.1.el6      ol6_latest
ql2500-firmware.noarch               7.03.00-1.0.1.el6      ol6_latest
rsyslog.x86_64                       5.8.10-8.0.1.el6       ol6_latest
selinux-policy.noarch                3.7.19-231.0.1.el6_5.3 ol6_latest
selinux-policy-targeted.noarch       3.7.19-231.0.1.el6_5.3 ol6_latest
tzdata.noarch                        2014b-3.24.el6         ol6_latest
udev.x86_64                          147-2.51.0.3.el6       ol6_latest
upstart.x86_64                       0.6.5-13.el6_5.3       ol6_latest
util-linux-ng.x86_64                 2.17.2-12.14.el6_5     ol6_latest
yum.noarch                           3.2.29-43.0.1.el6_5    ol6_latest
yum-plugin-fastestmirror.noarch      1.1.30-17.0.1.el6_5    ol6_latest
Obsoleting Packages
oracle-logos.noarch                  60.0.14-1.0.1.el6      ol6_latest
    redhat-logos.noarch              60.0.14-12.el6.centos  @anaconda-CentOS-201311272149.x86_64/6.5
[root@centos6 yum.repos.d]#

現在の段階では、いくつかのパッケージのバージョンが上がっているようです。

[root@centos6 ~]# yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package basesystem.noarch 0:10.0-4.el6 will be updated
<略>
Transaction Summary
================================================================================
Install       4 Package(s)
Upgrade      66 Package(s)

Total download size: 109 M
Is this ok [y/N]: y
Downloading Packages:
(1/70): basesystem-10.0-4.0.1.el6.noarch.rpm             | 4.3 kB     00:00
<略>
(70/70): yum-plugin-fastestmirror-1.1.30-17.0.1.el6_5.no |  28 kB     00:00
--------------------------------------------------------------------------------
Total                                            10 MB/s | 109 MB     00:10
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle


GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
[root@centos6 ~]#

RPMパッケージの署名検証に必要なファイルが無いのでエラー終了します。
(ちなみに/etc/yum.repos.d/public-yum-ol6.repo内の「gpgcheck=1」を「gpgcheck=0」に変更して書名検証を行わないという回避手法もありますが、この後の手順でファイルが用意されるので行いません)

以下のようにRPMパッケージとして、「centos-release」というものがインストールされています。

[root@centos6 ~]# rpm -qa|grep release
centos-release-6-5.el6.centos.11.1.x86_64
[root@centos6 ~]#

これを、「oraclelinux-release」というパッケージに入れ替えます。
先ほど失敗したyum updateコマンドによって、/var/cache/yum/x86_64/6/ol6_latest/packages/ディレクトリに必要なRPMファイルがダウンロードされてきているので、それを手動で指定します。

また、「rpm -ivh」だけでは競合を検出しインストールできないので「–force」オプションもしていします。
[root@centos6 ~]# ls /var/cache/yum/x86_64/6/ol6_latest/packages/*release*
/var/cache/yum/x86_64/6/ol6_latest/packages/oraclelinux-release-6Server-5.0.2.x86_64.rpm
/var/cache/yum/x86_64/6/ol6_latest/packages/redhat-release-server-6Server-6.5.0.1.0.1.el6.x86_64.rpm
[root@centos6 ~]# rpm –force -ivh /var/cache/yum/x86_64/6/ol6_latest/packages/oraclelinux-release-6Server-5.0.2.x86_64.rpm /var/cache/yum/x86_64/6/ol6_latest/packages/redhat-release-server-6Server-6.5.0.1.0.1.el6.x86_64.rpm
警告: /var/cache/yum/x86_64/6/ol6_latest/packages/oraclelinux-release-6Server-5.0.2.x86_64.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
準備中… ########################################### [100%]
1:redhat-release-server ########################################### [ 50%]
2:oraclelinux-release ########################################### [100%]
[root@centos6 ~]#[/shell]

いままでの「centos-release」ファイルは不要なのでrpm -evで削除します。

[root@centos6 ~]# rpm -ev centos-release
[root@centos6 ~]# rpm -qa|grep release
redhat-release-server-6Server-6.5.0.1.0.1.el6.x86_64
oraclelinux-release-6Server-5.0.2.x86_64
[root@centos6 ~]#

これでyum updateを再実行すれば、アップデートを行うことができます。

[root@centos6 ~]# yum update
Loaded plugins: fastestmirror
ol6_UEK_latest                                           | 1.2 kB     00:00
ol6_UEK_latest/primary                                   |  14 MB     00:01
ol6_UEK_latest                                                          302/302
ol6_latest                                               | 1.4 kB     00:00
ol6_latest/primary                                       |  38 MB     00:03
ol6_latest                                                          25346/25346
Setting up Update Process
Resolving Dependencies
--> Running transaction check
<略>
Transaction Summary
================================================================================
Install       2 Package(s)
Upgrade      66 Package(s)

Total download size: 109 M
Is this ok [y/N]: y
Downloading Packages:
(1/68): basesystem-10.0-4.0.1.el6.noarch.rpm             | 4.3 kB     00:00
<略>
(68/68): yum-plugin-fastestmirror-1.1.30-17.0.1.el6_5.no |  28 kB     00:00
--------------------------------------------------------------------------------
Total                                           9.7 MB/s | 109 MB     00:11
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Importing GPG key 0xEC551F03:
 Userid : Oracle OSS group (Open Source Software group) <build@oss.oracle.com>
 Package: 6:oraclelinux-release-6Server-5.0.2.x86_64 (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Updating   : basesystem-10.0-4.0.1.el6.noarch                           1/135
  yum.noarch 0:3.2.29-43.0.1.el6_5
  yum-plugin-fastestmirror.noarch 0:1.1.30-17.0.1.el6_5

Replaced:
  redhat-logos.noarch 0:60.0.14-12.el6.centos

Complete!
[root@centos6 ~]#

CentOS4の2012年03月以降のパッチ


検索でこの記事に来た人へ

2015年1月29日現在、ここにあるような個別で適用したりするのでは無く、Oracle Linux 4に切り替えてしまう、というのが楽でいいでしょう。
詳細は「RHEL4/CentOS4をOracle Linux4に!」で紹介しています。


CentOS4は、RHEL4のサポート期限終了に伴い、2012年2月末以降のパッチが公式に提供されていません。

とはいえ、まだ使いたい場合にどうするか?

同じRHELベースのOracle Enterprise Linuxのサイトで「Lifetime Support Policy: Coverage for Oracle Linux and Oracle VM」を見てみると2013年2月までサポートが続いているようだ。
そこで、Oracle Enterprise Linux 4.0のソースRPMディレクトリを見ると、2012年3月以降の日付のものがちらほら・・・

そんなわけで、そこからファイルを持ってきて使うことにする。

うちのサーバ(の1つ)で必要なものをリストアップすると、以下の4ファイル。

# wget https://oss.oracle.com/el4/SRPMS-updates/bind-9.2.4-38.0.2.el4.src.rpm
# wget https://oss.oracle.com/el4/SRPMS-updates/glibc-2.3.4-2.57.el4.1.src.rpm
# wget https://oss.oracle.com/el4/SRPMS-updates/openssl-0.9.7a-43.18.0.1.el4.src.rp
# wget https://oss.oracle.com/el4/SRPMS-updates/tzdata-2012i-2.0.1.el4.src.rpm

ダウンロードして、「rpmbuild –rebuild ファイル名」でRPMパッケージ作成し、インストール・・・っと。


追記1:

tzdataのchangelogを見ると、2012年5月の変更分からoracleの人が変更履歴を書いているので、RedHatの延長サポートとかとは関係なく、Oracle主体でSRPMを作っているようです。

以下はtzdata.specからの引用。

* Mon Nov 26 2012 Keshav Sharma <~@oracle.com> - 2012i-2.0.1.el4
- Backported fixes from 2012i-2 version of Oracle Linux 5
- Preserve hardlinks that zic leaves behind, install with cp -d (Petr Machata -~@redhat.com)
- Upstream 2012i
  - Cuba switched to DST
- Switch back to using system zic, ignore upstream Makefile at all. (Petr Machata - ~@redhat.com)
- Drop Factory from distribution (Petr Machata - ~@redhat.com)
- Upstream 2012h
  - Brazilian state Bahia no longer has DST.
  - Brazilian state Tocantins now has DST.
  - Israel has new DST rules next year.
  - Jordan stays on DST this winter.
- Upstream 2012g
  - Adjust the packaging for new Makefile
  - Palestine: Fall transition was Sep 21, not Sep 28
  - Samoa: Daylight Saving Time commences on Sunday 30th September
    2012 and ends on Sunday 7th of April 2013.
- Upstream 2012f
  - Fiji will start daylight savings at 2 am on Sunday 21st October 2012
    and end at 3 am on Sunday 20th January 2013.  Guess it will be like
    that in following years as well.
- Upstream 2012e
  - Tokelau is in time zone UTC+13, not UTC+14 (and always was)
- Upstream 2012d
  - Morocco will not observe DST during the month of Ramadan.
    DST cessation end date was corrected.
  - Drop tzdata-2012c-morocco.patch

* Thu Jul 19 2012 Keshav Sharma <~@oracle.com> - 2012c-1.0.2.el4
- Backported fixes from 2012c-3 version of Oracle Linux 5
   -- Morocco will not observe DST during the month of Ramadan

* Thu May 23 2012 Keshav Sharma <~@oracle.com> - 2012c-1.0.1.el4
- Backported fixes from 2012c-1 version of Oracle Linux 5
   - Haiti observes DST from 2012 on
   - Gaza Strip and Hebron observe DST in 2012
   - Change start of DST in Syria to last Friday in March

* Fri Mar 16 2012 Petr Machata <~@redhat.com> - 2012b-3.el4
- Morocco moved DST entry to last Sunday of April
- Resolves: #802542

追記2 2013/07/22

timezoneデータだけ地味にアップデートし続けています。
現在は2013/07/05更新の「tzdata-2013c-1.0.1.el4.src.rpm」が最新です。