CVE-2015-0235はRHEL4/CentOS4に影響する&修正版提供開始(2015/01/30 20:40版)


CVE-2015-0235 というglibcに大きめのバグが見つかった模様。

RedHat Enterprise Linux 4 / CentOS 4に対して影響があるのかどうかを調べてみた。

まずは、RedHat公式情報系

・RedHat Bugzilla:Bug 1183461 – (CVE-2015-0235) CVE-2015-0235 glibc: __nss_hostname_digits_dots() heap-based buffer overflow
 ・RHEL Knowledgebase Articles:GHOST: glibc vulnerability (CVE-2015-0235) / GHOST: glibc 脆弱性 (CVE-2015-0235)
 ・RHEL CVEデータベース:CVE-2015-0235
 ・RHEL4向け:RHSA-2015:0101:Critical: glibc security update
 ・RHEL5向け:RHSA-2015:0090:Critical: glibc security update
 ・RHEL6,RHEL7向け:RHSA-2015:0092:Critical: glibc security update

はい、RHEL4も対象になっています。

実際に確認してみるため、openwallにあるCVE-2015-0235についての詳細報告書「Qualys Security Advisory CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow」の「4 – Case studies」の記述を試してみる。

実行した際に「vulnerable」と出たら、問題あり。
「not vulnerable」だったら問題なし、というもの。

[root@cent4 201501]# mkdir security
[root@cent4 201501]# cd security/
[root@cent4 security]# rpm -qa|grep glibc|sort
警告: only V3 signatures can be verified, skipping V4 signature
glibc-2.3.4-2.57
glibc-2.3.4-2.57
glibc-common-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-headers-2.3.4-2.57
glibc-kernheaders-2.4-9.1.103.EL
[root@cent4 security]# cat > GHOST.c << EOF
> #include <netdb.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <errno.h>
>
> #define CANARY "in_the_coal_mine"
>
> struct {
>   char buffer[1024];
>   char canary[sizeof(CANARY)];
> } temp = { "buffer", CANARY };
>
> int main(void) {
>   struct hostent resbuf;
>   struct hostent *result;
>   int herrno;
>   int retval;
>
>   /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
>   size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
>   char name[sizeof(temp.buffer)];
>   memset(name, '0', len);
>   name[len] = '\0';
>
>   retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
>
>   if (strcmp(temp.canary, CANARY) != 0) {
>     puts("vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   if (retval == ERANGE) {
>     puts("not vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   puts("should not happen");
>   exit(EXIT_FAILURE);
> }
> EOF
[root@cent4 security]# ls
GHOST.c
[root@cent4 security]# gcc GHOST.c -o GHOST
[root@cent4 security]# ls
GHOST  GHOST.c
[root@cent4 security]# ./GHOST
vulnerable
[root@cent4 security]#

「vulnerable」なので、「問題あり」確定です。

修正版については、RHEL4の通常サポートは終了。現在はELSと呼ばれる特別な契約者向けに提供されているものだけが更新されています。

前述の「RHSA-2015:0101 Critical: glibc security update」にあるとおり、修正されたglibcのバージョンは「glibc-2.3.4-2.57.el4.2」となります。

ただ、このバージョンは通常の方法ではRHEL4およびCentOS4には提供されません。

しかし、RHEL4のソースを元にOracleで再構成した、Oracle Linux 4は、まだサポートを行っています。
こちらから、ファイルを持ってくることで対応が可能となっています。

Oracle Linux 4向けのSource RPMは、「https://oss.oracle.com/el4/SRPMS-updates/」にて提供されています。
Oracle LinuxではRHEL4とパッケージバージョンが若干異なり「glibc-2.3.4-2.57.0.1.el4.1」となります。
https://oss.oracle.com/el4/SRPMS-updates/glibc-2.3.4-2.57.0.1.el4.1.src.rpm

ただ、今回のことを受けて更新されたコンパイル済みのRPMは、glibc関連だけではなかったりします。
nptl-devel, nscdも更新されています。
このため、今回については、glibcのSource RPMだけを持ってきてコンパイルして適用、というのは、あまりお薦めできないような感じです。

コンパイル済みのRPMファイルについて、Oracle Linuxでは「Oracle Public Yum Server」としてレポジトリを公開しており、適切な設定を行うことで、RHEL4/CentOS4からOracle Linux 4に乗り換え、yumコマンドによるアップデートが行えるようになります。

コンパイル済みRPMファイル自体は「http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/」以下を探せば出てきますので、ページを「2015」で検索し出てくるパッケージが自分のサーバにインストールされているかを確認し、ダウンロードして適用する、ということが可能です。

しかし、依存関係解決とか面倒なので、これを機会にOracle Linux 4に乗り換えてしまう、というのも手かもしれません。

切り替え方法については、「RHEL4/CentOS4をOracle Linux4に!」にて紹介していますので、興味がある方は参照してみてください。
設定は非常に簡単です。

こちらの環境ではOralce Linux 4になっているため「yum update -y」で更新が完了しました。

更新後、再度テストプログラムを実行してみます。

[root@cent4 security]# ./GHOST
not vulnerable
[root@cent4 security]#

「not vulnerable」と出力されるので、脆弱性は修正されている、ということになります。

これで、一安心、といったところです。


<以下は修正版のglibcが出る前に書いたものです。資料として残しておきます>

glibcに大きめのバグが見つかった模様。
CVE-2015-0235

・RedHat Bugzilla:Bug 1183461 – (CVE-2015-0235) CVE-2015-0235 glibc: __nss_hostname_digits_dots() heap-based buffer overflow
 ・RHEL CVEデータベース:CVE-2015-0235
 ・RHEL5向け:RHSA-2015:0090-1:Critical: glibc security update
 ・RHEL6,RHEL7向け:RHSA-2015:0092-1:Critical: glibc security update

RHEL4/CentOS4についての記載が見付からない。

Oracle LinuxのSource RPM置き場 https://oss.oracle.com/el4/SRPMS-updates/ を見ても、2015/01/28 10:35時点では何も無し。

(2015/01/28 23:00 追加)
1時間ぐらい前に「GHOST: glibc vulnerability (CVE-2015-0235)」にRed Hat Enterprise Linux 4 Extended Life Cycle Supportに関する記述が追加された。
いまのところ修正版に関する記述はないが、RHEL4に脆弱性がある、という公式告知になっている。

(2015/01/29 19:30追加)
Red Hat Enterprise Linux ELS (v. 4)に対するSecurity Advisoryが公開された。
RHSA-2015:0101 Critical: glibc security update

ELS契約者向けに glibc-2.3.4-2.57.el4.2 としてリリースされたので、そのうちOracle Linuxにも波及してくるものと想定されるが、現状はまだ公開されていない。

(2015/01/30 14:20追加)
https://oss.oracle.com/el4/SRPMS-updates/ に、glibc-2.3.4-2.57.0.1.el4.1.src.rpmが置かれました。
Oralce Linux 4のpublic yumレポジトリのほう(repo url)にはまだ登録されていないようです。

(2015/01/30 16:30追加)
Oracle Linux 4のpublic yumレポジトリでの配布が始まりました。

以下の16:20ぐらいの段階ではi386(32bit)版のみだったのですが、16:37にはx86_64(64bit)版のディレクトリにもファイルが置かれ始めました。

i386(32bit)版
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-common-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-devel-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-headers-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-profile-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-utils-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/nptl-devel-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/nptl-devel-2.3.4-2.57.0.1.el4.1.i686.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/nscd-2.3.4-2.57.0.1.el4.1.i386.rpm

64bit(x86_64)版
 

(追加部分おわり)

openwallにあるCVE-2015-0235についての詳細報告書「Qualys Security Advisory CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow」の「4 – Case studies」には事象確認方法が記載されている。

下記をコンパイルして、実行した際に「vulnerable」と出たら、問題あり。
「not vulnerable」だったら問題なし、というもの。

#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define CANARY "in_the_coal_mine"

struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };

int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;

  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '\0';

  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);

  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}

さて・・・CentOS4ではどうなっているのか?

[root@cent4 201501]# mkdir security
[root@cent4 201501]# cd security/
[root@cent4 security]# rpm -qa|grep glibc|sort
警告: only V3 signatures can be verified, skipping V4 signature
glibc-2.3.4-2.57
glibc-2.3.4-2.57
glibc-common-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-headers-2.3.4-2.57
glibc-kernheaders-2.4-9.1.103.EL
[root@cent4 security]# cat > GHOST.c << EOF
> #include <netdb.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <errno.h>
>
> #define CANARY "in_the_coal_mine"
>
> struct {
>   char buffer[1024];
>   char canary[sizeof(CANARY)];
> } temp = { "buffer", CANARY };
>
> int main(void) {
>   struct hostent resbuf;
>   struct hostent *result;
>   int herrno;
>   int retval;
>
>   /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
>   size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
>   char name[sizeof(temp.buffer)];
>   memset(name, '0', len);
>   name[len] = '\0';
>
>   retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
>
>   if (strcmp(temp.canary, CANARY) != 0) {
>     puts("vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   if (retval == ERANGE) {
>     puts("not vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   puts("should not happen");
>   exit(EXIT_FAILURE);
> }
> EOF
[root@cent4 security]# ls
GHOST.c
[root@cent4 security]# gcc GHOST.c -o GHOST
[root@cent4 security]# ls
GHOST  GHOST.c
[root@cent4 security]# ./GHOST
vulnerable
[root@cent4 security]#

駄目でした。

とりあえず、続報待ちということで・・・

(2015/01/30 16:50追記)
Oralce public yum repoで提供されたのでアップデートを行い、試験実施。

[root@cent4 security]# ./ghost
not vulnerable
[root@cent4 security]#

問題がなくなったことを確認できました。

なお、Oracle Linux public レポジトリからyumコマンドを使ってファイルを持ってこれるようにするには「RHEL4/CentOS4をOracle Linux4に!」で紹介しているようにOracle Linuxに切り替えてしまう、というのが簡単でいいと思います。

RHEL6/CentOS6をOracle Linuxにしてみる


2020/09/28追記

Oracle公式のCentOSからの移行手順「Switch your CentOS systems to Oracle Linux」とRHELからサポートありのOracleLinuxへの移行手順「Switching from Red Hat Network (RHN) to Oracle Unbreakable Linux Network (ULN)

また、逆にRedHat公式によるCentOS/Oracle LinuxからRHELへの移行手順「How to convert from CentOS or Oracle Linux to RHEL

また、レポジトリによっては下記の様なメッセージが出るようになったようです。

IMPORTANT: A legacy Oracle Linux yum server repo file was found. Oracle Linux yum server repository configurations have changed which means public-yum-ol7.repo will no longer be updated. New repository configuration files have been installed but are disabled. To complete the transition, run this script as the root user:

/usr/bin/ol_yum_configure.sh

See https://yum.oracle.com/faq.html for more information.


Oracle Linux用にOpenStackがリリースされた、ということなので、Oracle Linuxの環境を用意してみようと思った。
つい先ほど、RHEL4/CentOS4でOralce Linuxにしてみたので、同じようにできるかな、と思ったらちょっと工夫が必要でした。
(注:手法としては、既知のディストリビューション乗り換え手法なんですけどね)

1. GPG Keyの入手

[root@centos6 ~]# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
--2014-09-26 16:40:22--  http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
public-yum.oracle.com をDNSに問いあわせています... 203.179.83.11, 203.179.83.19
public-yum.oracle.com|203.179.83.11|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1011 
`/etc/pki/rpm-gpg/RPM-GPG-KEY-oracle' に保存中

100%[===================================================&amp;gt;] 1,011       --.-K/s 時間 0s

2014-09-26 16:40:22 (4.83 MB/s) - `/etc/pki/rpm-gpg/RPM-GPG-KEY-oracle' へ保存完了 [1011/1011]

[root@centos6 ~]# 

2. yumレポジトリの編集
Oracle Linux用レポジトリの追加と、CentOS用レポジトリの削除

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

100%[===================================================&amp;gt;] 4,233       --.-K/s 時間 0s

2014-09-26 16:40:46 (323 MB/s) - `public-yum-ol6.repo' へ保存完了 [4233/4233]

[root@centos6 yum.repos.d]# ls
CentOS-Base.repo       CentOS-Media.repo  public-yum-ol6.repo
CentOS-Debuginfo.repo  CentOS-Vault.repo
[root@centos6 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.disable
[root@centos6 yum.repos.d]# mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.disable
[root@centos6 yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repo.disable
[root@centos6 yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.disable
[root@centos6 yum.repos.d]#

で、アップデート実施

[root@centos6 yum.repos.d]# yum update -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Update Process
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package audit.x86_64 0:2.2-2.el6 will be updated
<略>
Transaction Check Error:
  file /etc/issue from install of oraclelinux-release-6:6Server-5.0.2.x86_64 conflicts with file from package centos-release-6-4.el6.centos.10.x86_64
  file /etc/issue.net from install of oraclelinux-release-6:6Server-5.0.2.x86_64 conflicts with file from package centos-release-6-4.el6.centos.10.x86_64
  file /etc/redhat-release from install of oraclelinux-release-6:6Server-5.0.2.x86_64 conflicts with file from package centos-release-6-4.el6.centos.10.x86_64
  file /etc/rpm/macros.dist from install of oraclelinux-release-6:6Server-5.0.2.x86_64 conflicts with file from package centos-release-6-4.el6.centos.10.x86_64
  file /etc/system-release from install of oraclelinux-release-6:6Server-5.0.2.x86_64 conflicts with file from package centos-release-6-4.el6.centos.10.x86_64
  file /etc/system-release-cpe from install of oraclelinux-release-6:6Server-5.0.2.x86_64 conflicts with file from package centos-release-6-4.el6.centos.10.x86_64

Error Summary
-------------

[root@centos6 yum.repos.d]#

oraclelinux-releaseパッケージと、centos-releaseパッケージが競合するというもの。

/var/cache/yum/x86_64/6/ol6_latest/packages/に、oraclelinux-releaseパッケージがダウンロードされているので、rpmコマンドを使って強制的にインストールする。

[root@centos6 yum.repos.d]# rpm -Uvh --force /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
準備中...                ########################################### [100%]
   1:redhat-release-server  ########################################### [ 50%]
   2:oraclelinux-release    ########################################### [100%]
[root@centos6 yum.repos.d]#

これで「yum update」が可能になりました。

再起動後は以下の様な状態となりました。

[root@centos6 ~]# uname -a
Linux centos6.adosakana.net 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 11:28:47 PDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@centos6 ~]# rpm -qa|grep release
redhat-release-server-6Server-6.5.0.1.0.1.el6.x86_64
centos-release-6-4.el6.centos.10.x86_64
oraclelinux-release-6Server-5.0.2.x86_64
[root@centos6 ~]# cat /etc/motd
[root@centos6 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@centos6 ~]#

ちなみに、Oracle Linux 6では、以下の追加レポジトリがある。
・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。 (ol6_playground_latest)

詳細については、以前書いた「Oracle Linux用の公開レポジトリについて」を参照のこと。

RHEL4/CentOS4をOracle Linux4に!


今回の件を検証するため、CentOS4をセットアップした。

が・・・yum updateとかすると、エラー。
原因はCentOS4のレポジトリがアーカイブ化されてしまい、ミラーされなくなったため。

[root@centos4 ~]# yum update
Setting up Update Process
Setting up repositories
not using ftp, http[s], or file for repos, skipping - 4 is not a valid release or hasnt been released yet
Cannot find a valid baseurl for repo: update
Error: Cannot find a valid baseurl for repo: update
[root@centos4 ~]#

/etc/yum.repos.d/CentOS-Base.repo内にある「http://mirror.centos.org/centos/$releasever/」を「http://vault.centos.org/4.9/」、「http://mirror.centos.org/centos/RPM-GPG-KEY-centos4」を「http://vault.centos.org/RPM-GPG-KEY-centos4」に書き換え、また、「mirrorlist=~」をコメントにし、逆に「#baseurl=~」のコメントを外すことでアップデートはできるようになる。

が・・・、面倒なので、Oracle LinuxのPublic Yum Serverを使用するように切り替えてみる。
つまりは、Oracle Linuxへの乗り換え、ということになる。

切り替え手順は簡単。
How can I convert an RHEL or RHEL-compatible system to Oracle Linux using public-yum?」と「Getting Started」を行う。

具体的には、「OracleのGPGキーを登録」してから、「Yumレポジトリを追加」、ということになる。

[root@centos4 ~]# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el4 -O /usr/share/rhn/RPM-GPG-KEY-oracle
--01:57:00--  http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el4
           => `/usr/share/rhn/RPM-GPG-KEY-oracle'
public-yum.oracle.com をDNSに問いあわせています... 203.179.83.11, 203.179.83.19
public-yum.oracle.com|203.179.83.11|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1,744 (1.7K) 

100%[====================================>] 1,744         --.--K/s

01:57:01 (87.54 MB/s) - `/usr/share/rhn/RPM-GPG-KEY-oracle' を保存しました [1744/1744]

[root@centos4 ~]# gpg --quiet --with-fingerprint /usr/share/rhn/RPM-GPG-KEY-oracle
gpg: failed to create temporary file `/root/.gnupg/.#lk0x552ac57280.centos4.adosakana.net.4053': そのようなファイルやディレクトリはありません
gpg: 新しい構成ファイル`/root/.gnupg/gpg.conf'ができました
gpg: 警告: 「/root/.gnupg/gpg.conf」のオプションは起動している間、有効になりません
pub  1024D/B38A8516 2006-09-05 Oracle OSS group (Open Source Software group) <build@oss.oracle.com>
                指紋 = 1122 A29A B257 825F 322C  234E 2E2B CDBC B38A 8516
sub  2048g/0042D4F4 2006-09-05 [有効期限: 2011-09-04]
[root@centos4 ~]# cd /etc/yum.repos.d
[root@centos4 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.disabled
[root@centos4 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el4.repo
--01:58:33--  http://public-yum.oracle.com/public-yum-el4.repo
           => `public-yum-el4.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
長さ: 1,191 (1.2K) 

100%[====================================>] 1,191         --.--K/s

01:58:33 (70.99 MB/s) - `public-yum-el4.repo' を保存しました [1191/1191]

[root@centos4 yum.repos.d]#

この後、「yum update」を実行すれば完了です。

ちなみに、この手法でアップデートした場合、release関連情報は以下のようになります。

[root@centos4 ~]# rpm -qa|grep release
enterprise-release-4-3.7.18
[root@centos4 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 9)
[root@centos4 ~]#  rpm -qa|grep logo
oracle-logos-1.1.1-3
[root@centos4 ~]#

また、/etc/yum.repos.d/ULN-Base.repo が追加されますが、こいつが問題児で、2014年9月現在、これは使用できません。
無効にしてしまいましょう。

[root@centos4 ~]# mv /etc/yum.repos.d/ULN-Base.repo /etc/yum.repos.d/ULN-Base.repo.disabled
[root@centos4 ~]#

ついでに、vmware-toolsをyumレポジトリとして追加するには、/etc/yum.repos.d/vmwaretools.repoとして、以下の内容を記載しましょう。

[root@centos4 ~]# cat /etc/yum.repos.d/vmwaretools.repo
[vmwaretools]
name=vmwaretools
baseurl=http://packages.vmware.com/tools/esx/latest/rhel4/x86_64/
gpgcheck=0
[root@centos4 ~]#

X-Windowsがあるシステムの場合「yum install vmware-tools-esx」、X-Windowsがないシステムなら「yum install vmware-tools-esx-nox」でvmware-toolsをインストールできます。

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 &lt;todd.vierling@oracle.com&gt; - 3.0-27.0.3
- Rework env function definition for safety (Florian Weimer) [CVE-2014-7169]

* Thu Sep 25 2014 Todd Vierling &lt;todd.vierling@oracle.com&gt; - 3.0-27.0.2
- Preliminary fix for CVE-2014-7169

* Wed Sep 24 2014 Guangyu Sun &lt;guangyu.sun@oracle.com&gt; - 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/<br>
[root@rhel6 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-ol6.repo<br>
--2014-05-28 xx:xx:xx--  http://public-yum.oracle.com/public-yum-ol6.repo<br>
public-yum.oracle.com をDNSに問いあわせています... 203.179.83.19, 203.179.83.11<br>
public-yum.oracle.com|203.179.83.19|:80 に接続しています... 接続しました。<br>
HTTP による接続要求を送信しました、応答を待っています... 200 OK<br>
長さ: 4233 (4.1K) <br>
`public-yum-ol6.repo' に保存中</p>
<p>100%[======================================&gt;] 4,233       --.-K/s 時間 0s</p>
<p>2014-05-28 xx:xx:xx (139 MB/s) - `public-yum-ol6.repo' へ保存完了 [4233/4233]</p>
<p>[root@rhel6 yum.repos.d]#

まず、中身を確認

[root@rhel6 yum.repos.d]# cat public-yum-ol6.repo<br>
[ol6_latest]<br>
name=Oracle Linux $releasever Latest ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=1</p>
<p>[ol6_addons]<br>
name=Oracle Linux $releasever Add ons ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_ga_base]<br>
name=Oracle Linux $releasever GA installation media copy ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/0/base/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_u1_base]<br>
name=Oracle Linux $releasever Update 1 installation media copy ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_u2_base]<br>
name=Oracle Linux $releasever Update 2 installation media copy ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/2/base/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_u3_base]<br>
name=Oracle Linux $releasever Update 3 installation media copy ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/3/base/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_u4_base]<br>
name=Oracle Linux $releasever Update 4 installation media copy ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/4/base/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_u5_base]<br>
name=Oracle Linux $releasever Update 5 installation media copy ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/5/base/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_UEKR3_latest]<br>
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_UEK_latest]<br>
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=1</p>
<p>[ol6_UEK_base]<br>
name=Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/base/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_playground_latest]<br>
name=Latest mainline stable kernel for Oracle Linux 6 ($basearch) - Unsupported<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/playground/latest/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_MySQL]<br>
name=MySQL 5.5 for Oracle Linux 6 ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_gdm_multiseat]<br>
name=Oracle Linux 6 GDM Multiseat ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/gdm_multiseat/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_ofed_UEK]<br>
name=OFED supporting tool packages for Unbreakable Enterprise Kernel on Oracle Linux 6 ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/ofed_UEK/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_MySQL56]<br>
name=MySQL 5.6 for Oracle Linux 6 ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL56/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_spacewalk20_server]<br>
name=Spacewalk Server 2.0 for Oracle Linux 6 ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/server/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[ol6_spacewalk20_client]<br>
name=Spacewalk Client 2.0 for Oracle Linux 6 ($basearch)<br>
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/client/$basearch/<br>
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
gpgcheck=1<br>
enabled=0</p>
<p>[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<br>
Loaded plugins: fastestmirror<br>
base                                                     | 3.7 kB     00:00<br>
base/primary_db                                          | 4.4 MB     00:00<br>
extras                                                   | 3.4 kB     00:00<br>
extras/primary_db                                        |  19 kB     00:00<br>
updates                                                  | 3.4 kB     00:00<br>
updates/primary_db                                       | 3.1 MB     00:00</p>
<p>ca-certificates.noarch                     2013.1.95-65.1.el6_5          updates<br>
centos-release.x86_64                      6-5.el6.centos.11.2           updates<br>
coreutils.x86_64                           8.4-31.el6_5.1                updates<br>
coreutils-libs.x86_64                      8.4-31.el6_5.1                updates<br>
device-mapper-persistent-data.x86_64       0.2.8-4.el6_5                 updates<br>
dracut.noarch                              004-336.el6_5.2               updates<br>
dracut-kernel.noarch                       004-336.el6_5.2               updates<br>
ethtool.x86_64                             2:3.5-1.4.el6_5               updates<br>
glib2.x86_64                               2.26.1-7.el6_5                updates<br>
glibc.x86_64                               2.12-1.132.el6_5.2            updates<br>
glibc-common.x86_64                        2.12-1.132.el6_5.2            updates<br>
grep.x86_64                                2.6.3-4.el6_5.1               updates<br>
initscripts.x86_64                         9.03.40-2.el6.centos.1        updates<br>
kernel.x86_64                              2.6.32-431.17.1.el6           updates<br>
kernel-firmware.noarch                     2.6.32-431.17.1.el6           updates<br>
krb5-libs.x86_64                           1.10.3-15.el6_5.1             updates<br>
libblkid.x86_64                            2.17.2-12.14.el6_5            updates<br>
libuuid.x86_64                             2.17.2-12.14.el6_5            updates<br>
libxml2.x86_64                             2.7.6-14.el6_5.1              updates<br>
mysql-libs.x86_64                          5.1.73-3.el6_5                updates<br>
nspr.x86_64                                4.10.2-1.el6_5                updates<br>
nss.x86_64                                 3.15.3-6.el6_5                updates<br>
nss-softokn.x86_64                         3.14.3-10.el6_5               updates<br>
nss-softokn-freebl.x86_64                  3.14.3-10.el6_5               updates<br>
nss-sysinit.x86_64                         3.15.3-6.el6_5                updates<br>
nss-tools.x86_64                           3.15.3-6.el6_5                updates<br>
nss-util.x86_64                            3.15.3-1.el6_5                updates<br>
openldap.x86_64                            2.4.23-34.el6_5.1             updates<br>
openssl.x86_64                             1.0.1e-16.el6_5.7             updates<br>
p11-kit.x86_64                             0.18.5-2.el6_5.2              updates<br>
p11-kit-trust.x86_64                       0.18.5-2.el6_5.2              updates<br>
postfix.x86_64                             2:2.6.6-6.el6_5               updates<br>
psmisc.x86_64                              22.6-19.el6_5                 updates<br>
python.x86_64                              2.6.6-52.el6                  updates<br>
python-libs.x86_64                         2.6.6-52.el6                  updates<br>
selinux-policy.noarch                      3.7.19-231.el6_5.3            updates<br>
selinux-policy-targeted.noarch             3.7.19-231.el6_5.3            updates<br>
tzdata.noarch                              2014b-3.24.el6                updates<br>
upstart.x86_64                             0.6.5-13.el6_5.3              updates<br>
util-linux-ng.x86_64                       2.17.2-12.14.el6_5            updates<br>
yum.noarch                                 3.2.29-43.el6.centos          updates<br>
yum-plugin-fastestmirror.noarch            1.1.30-17.el6_5               updates<br>
[root@centos6 ~]#

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

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

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

[root@centos6 ~]# yum update<br>
Loaded plugins: fastestmirror<br>
Loading mirror speeds from cached hostfile<br>
Setting up Update Process<br>
Resolving Dependencies<br>
--&gt; Running transaction check<br>
---&gt; Package basesystem.noarch 0:10.0-4.el6 will be updated<br>
<略><br>
Transaction Summary<br>
================================================================================<br>
Install       4 Package(s)<br>
Upgrade      66 Package(s)</p>
<p>Total download size: 109 M<br>
Is this ok [y/N]: y<br>
Downloading Packages:<br>
(1/70): basesystem-10.0-4.0.1.el6.noarch.rpm             | 4.3 kB     00:00<br>
<略><br>
(70/70): yum-plugin-fastestmirror-1.1.30-17.0.1.el6_5.no |  28 kB     00:00<br>
--------------------------------------------------------------------------------<br>
Total                                            10 MB/s | 109 MB     00:10<br>
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY<br>
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle</p>
<p>GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
[root@centos6 ~]#

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

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

[root@centos6 ~]# rpm -qa|grep release<br>
centos-release-6-5.el6.centos.11.1.x86_64<br>
[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<br>
[root@centos6 ~]# rpm -qa|grep release<br>
redhat-release-server-6Server-6.5.0.1.0.1.el6.x86_64<br>
oraclelinux-release-6Server-5.0.2.x86_64<br>
[root@centos6 ~]#

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

[root@centos6 ~]# yum update<br>
Loaded plugins: fastestmirror<br>
ol6_UEK_latest                                           | 1.2 kB     00:00<br>
ol6_UEK_latest/primary                                   |  14 MB     00:01<br>
ol6_UEK_latest                                                          302/302<br>
ol6_latest                                               | 1.4 kB     00:00<br>
ol6_latest/primary                                       |  38 MB     00:03<br>
ol6_latest                                                          25346/25346<br>
Setting up Update Process<br>
Resolving Dependencies<br>
--&gt; Running transaction check<br>
<略><br>
Transaction Summary<br>
================================================================================<br>
Install       2 Package(s)<br>
Upgrade      66 Package(s)</p>
<p>Total download size: 109 M<br>
Is this ok [y/N]: y<br>
Downloading Packages:<br>
(1/68): basesystem-10.0-4.0.1.el6.noarch.rpm             | 4.3 kB     00:00<br>
<略><br>
(68/68): yum-plugin-fastestmirror-1.1.30-17.0.1.el6_5.no |  28 kB     00:00<br>
--------------------------------------------------------------------------------<br>
Total                                           9.7 MB/s | 109 MB     00:11<br>
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY<br>
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
Importing GPG key 0xEC551F03:<br>
 Userid : Oracle OSS group (Open Source Software group) &lt;build@oss.oracle.com&gt;<br>
 Package: 6:oraclelinux-release-6Server-5.0.2.x86_64 (installed)<br>
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle<br>
Is this ok [y/N]: y<br>
Running rpm_check_debug<br>
Running Transaction Test<br>
Transaction Test Succeeded<br>
Running Transaction<br>
Warning: RPMDB altered outside of yum.<br>
  Updating   : basesystem-10.0-4.0.1.el6.noarch                           1/135<br>
  yum.noarch 0:3.2.29-43.0.1.el6_5<br>
  yum-plugin-fastestmirror.noarch 0:1.1.30-17.0.1.el6_5</p>
<p>Replaced:<br>
  redhat-logos.noarch 0:60.0.14-12.el6.centos</p>
<p>Complete!<br>
[root@centos6 ~]#


2020/09/28追記

最近はpublic-yum-ol7.repoが使用されなくなり、oracle-linux-ol7.repo, uek-ol7.repo, virt-ol7.repo に分割されたようで、public-yumを使用していると下記の様なメッセージが表示されたりする。(具体的にはoraclelinux-releaseパッケージのアップデートの時に出る)

IMPORTANT: A legacy Oracle Linux yum server repo file was found. Oracle Linux yum server repository configurations have changed which means public-yum-ol7.repo will no longer be updated. New repository configuration files have been installed but are disabled. To complete the transition, run this script as the root user:

/usr/bin/ol_yum_configure.sh

See https://yum.oracle.com/faq.html for more information.

  インストール中          : oraclelinux-release-el7-1.0-12.1.el7.x86_64                                                                                                                                                               69/640

oracle-linux-ol7.repo の中身

[ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

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

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

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

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

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

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

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

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


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

[ol7_optional_latest]
name=Oracle Linux $releasever Optional Latest ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/optional/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

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

[ol7_MODRHCK]
name=Latest RHCK with fixes from Oracle for Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/MODRHCK/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
priority=20
enabled=0

[ol7_latest_archive]
name=Oracle Linux $releasever Latest ($basearch) - Archive
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/latest/archive/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_optional_archive]
name=Oracle Linux $releasever Optional ($basearch) - Archive
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/optional/archive/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0


[ol7_security_validation]
name=Oracle Linux $releasever ($basearch) Security Validations
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/security/validation/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

uek-ol7.repo の中身

[ol7_UEKR6]
name=Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR6/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_UEKR5]
name=Latest Unbreakable Enterprise Kernel Release 5 for Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR5/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol7_UEKR4]
name=Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR4/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_UEKR3]
name=Latest Unbreakable Enterprise Kernel Release 3 for Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR3/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_UEKR3_OFED20]
name=OFED supporting tool packages for Unbreakable Enterprise Kernel on Oracle Linux 7 ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR3_OFED20/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0
priority=20

[ol7_UEKR6_RDMA]
name=Oracle Linux 7 UEK6 RDMA ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR6/RDMA/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_UEKR5_RDMA]
name=Oracle Linux 7 UEK5 RDMA ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR5/RDMA/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_UEKR4_OFED]
name=OFED supporting tool packages for Unbreakable Enterprise Kernel Release 4 on Oracle Linux 7 ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR4/OFED/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0
priority=20

[ol7_UEKR4_archive]
name=Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch) - Archive
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR4/archive/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_UEKR5_archive]
name=Unbreakable Enterprise Kernel Release 5 for Oracle Linux $releasever ($basearch) - Archive
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR5/archive/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

virt-ol7.repo の中身

[ol7_kvm_utils]
name=Oracle Linux $releasever KVM Utilities ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/kvm/utils/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0