CentOS 7でyumからSecurityUpdateを行えるようにする
Pocket

CentOSではyumでセキュリティ関連のパッケージのみ導入する場合は「yum-plugin-security」というパッケージを利用することで、セキュリティ関連のアップデートをかけることができる…
のだけど、CentOSではこのパッケージを利用しても「No packages needed for security」と出力され、セキュリティアップデートは実行されない。同じRHELベースのAmazonLinuxなどでは実行されるのに…

[root@BS-PUB-CENT7-01 ~]# yum --security update
読み込んだプラグイン:fastestmirror
base                                                                    | 3.6 kB  00:00:00
elasticsearch-2.x                                                       | 2.9 kB  00:00:00
epel/x86_64/metalink                                                    | 6.3 kB  00:00:00
extras                                                                  | 3.4 kB  00:00:00
graylog                                                                 | 2.9 kB  00:00:00
mongodb-org-3.2                                                         | 2.5 kB  00:00:00
updates                                                                 | 3.4 kB  00:00:00
Loading mirror speeds from cached hostfile
 * base: download.nus.edu.sg
 * epel: mirror.rise.ph
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
 --> kernel-tools-3.10.0-327.28.3.el7.x86_64 from updates removed (updateinfo)
 --> kernel-3.10.0-327.28.3.el7.x86_64 from updates removed (updateinfo)
 --> python-perf-3.10.0-327.28.2.el7.x86_64 from @updates removed (updateinfo)
 --> kernel-tools-libs-3.10.0-327.28.2.el7.x86_64 from @updates removed (updateinfo)
 --> python-perf-3.10.0-327.28.3.el7.x86_64 from updates removed (updateinfo)
 --> elasticsearch-2.4.0-1.noarch from elasticsearch-2.x removed (updateinfo)
 --> kernel-tools-3.10.0-327.28.2.el7.x86_64 from @updates removed (updateinfo)
 --> kernel-tools-libs-3.10.0-327.28.3.el7.x86_64 from updates removed (updateinfo)
 --> elasticsearch-2.3.5-1.noarch from @elasticsearch-2.x removed (updateinfo)
No packages needed for security; 5 packages available
依存性の解決をしています

 

これは、CentOSのリポジトリではセキュリティアップデートの情報が提供されていないことが原因らしい。
つまり、その情報を提供しているリポジトリを別途導入してやることで利用できるようになるということだ。

で、CentOS用のセキュリティ情報を提供しているCEFS projectというものがあるので、このプロジェクトが提供している情報をもとにローカルリポジトリを導入してやることで、yumでセキュリティアップデートが行えるようになる。こちらに有志が作ったリポジトリ導入スクリプトがあるので、今回はこれをCentOS 7に導入してやる。

まず、以下のコマンドで実行させるスクリプトをダウンロードする。
(CentOS 7ではyum-plugin-securityはyumに統合されているので不要だが、念のため記述)

yum install createrepo yum-plugin-security bzip2
mkdir -p /security && cd /security
wget https://raw.githubusercontent.com/vmfarms/generate_updateinfo/master/generate_updateinfo.py

 

ダウンロードしたスクリプトファイルで、リポジトリの保存先、バージョン(デフォルトがCentOS6なので、CentOS7への書き換え)を行う。
2016/09/27 追記。オプションで指定できるようになったから↓のsedいらないかも。

sed -e '/^BUILD_PREFIX = /s/"\/tmp"/"\/security"/g' \
    -e '/^RELEASES = /s/6/7/g' \
    -i.bk /security/generate_updateinfo.py
Sponsored Links

スクリプト編集後、以下のコマンドでリポジトリを作成、登録する。
2016/09/27 変更。「generate_updateinfo.py」実行時にオプションで場所とバージョンを指定できるようになっているので追記。

createrepo /security
python generate_updateinfo.py --destination=/security --release=7 <(curl -s http://cefs.steve-meier.de/errata.latest.xml.bz2 | bzip2 -dc)
modifyrepo /security/updateinfo-7/updateinfo.xml /security/repodata/

 

最後に、参照するリポジトリとして登録を行う。

cp /etc/yum.repos.d/CentOS-Base.repo{,.bk}
cat << "EOF" >> /etc/yum.repos.d/CentOS-Base.repo
[security]
name=CentOS-$releasever - Security
baseurl=file:///security
EOF

 

これで、yumからセキュリティアップデートが行えるようになった。

yum --security update
[root@BS-PUB-CENT7-01 security]# yum --security update
読み込んだプラグイン:fastestmirror
base                                                                    | 3.6 kB  00:00:00
elasticsearch-2.x                                                       | 2.9 kB  00:00:00
epel/x86_64/metalink                                                    | 6.3 kB  00:00:00
extras                                                                  | 3.4 kB  00:00:00
graylog                                                                 | 2.9 kB  00:00:00
mongodb-org-3.2                                                         | 2.5 kB  00:00:00
security                                                                | 3.3 kB  00:00:00
updates                                                                 | 3.4 kB  00:00:00
(1/2): security/updateinfo                                              |  33 kB  00:00:00
(2/2): security/primary_db                                              | 1.1 kB  00:00:00
Loading mirror speeds from cached hostfile
 * base: mirror.nus.edu.sg
 * epel: kartolo.sby.datautama.net.id
 * extras: mirror.nus.edu.sg
 * updates: mirror.nus.edu.sg
 --> elasticsearch-2.4.0-1.noarch from elasticsearch-2.x removed (updateinfo)
 --> elasticsearch-2.3.5-1.noarch from @elasticsearch-2.x removed (updateinfo)
4 package(s) needed (+0 related) for security, out of 5 available
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ kernel.x86_64 0:3.10.0-327.28.3.el7 を インストール
---> パッケージ kernel-tools.x86_64 0:3.10.0-327.28.2.el7 を 更新
---> パッケージ kernel-tools.x86_64 0:3.10.0-327.28.3.el7 を アップデート
---> パッケージ kernel-tools-libs.x86_64 0:3.10.0-327.28.2.el7 を 更新
---> パッケージ kernel-tools-libs.x86_64 0:3.10.0-327.28.3.el7 を アップデート
---> パッケージ python-perf.x86_64 0:3.10.0-327.28.2.el7 を 更新
---> パッケージ python-perf.x86_64 0:3.10.0-327.28.3.el7 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package                   アーキテクチャー
                                          バージョン                     リポジトリー     容量
===============================================================================================
インストール中:
 kernel                    x86_64         3.10.0-327.28.3.el7            updates          33 M
更新します:
 kernel-tools              x86_64         3.10.0-327.28.3.el7            updates         2.4 M
 kernel-tools-libs         x86_64         3.10.0-327.28.3.el7            updates         2.3 M
 python-perf               x86_64         3.10.0-327.28.3.el7            updates         2.4 M

トランザクションの要約
===============================================================================================
インストール  1 パッケージ
更新          3 パッケージ

総ダウンロード容量: 40 M
Is this ok [y/d/N]: y
Downloading packages:
updates/7/x86_64/prestodelta                                            | 698 kB  00:00:03
(1/4): python-perf-3.10.0-327.28.3.el7.x86_64.rpm                       | 2.4 MB  00:00:04
(2/4): kernel-tools-libs-3.10.0-327.28.3.el7.x86_64.rpm                 | 2.3 MB  00:00:04
(3/4): kernel-3.10.0-327.28.3.el7.x86_64.rpm                            |  33 MB  00:00:07
(4/4): kernel-tools-3.10.0-327.28.3.el7.x86_64.rpm                      | 2.4 MB  00:00:06
-----------------------------------------------------------------------------------------------
合計                                                           5.5 MB/s |  40 MB  00:00:07
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します              : kernel-tools-libs-3.10.0-327.28.3.el7.x86_64                   1/7
  更新します              : kernel-tools-3.10.0-327.28.3.el7.x86_64                        2/7
  更新します              : python-perf-3.10.0-327.28.3.el7.x86_64                         3/7
  インストール中          : kernel-3.10.0-327.28.3.el7.x86_64                              4/7
  整理中                  : kernel-tools-3.10.0-327.28.2.el7.x86_64                        5/7
  整理中                  : kernel-tools-libs-3.10.0-327.28.2.el7.x86_64                   6/7
  整理中                  : python-perf-3.10.0-327.28.2.el7.x86_64                         7/7
  検証中                  : kernel-tools-3.10.0-327.28.3.el7.x86_64                        1/7
  検証中                  : kernel-3.10.0-327.28.3.el7.x86_64                              2/7
  検証中                  : python-perf-3.10.0-327.28.3.el7.x86_64                         3/7
  検証中                  : kernel-tools-libs-3.10.0-327.28.3.el7.x86_64                   4/7
  検証中                  : python-perf-3.10.0-327.28.2.el7.x86_64                         5/7
  検証中                  : kernel-tools-libs-3.10.0-327.28.2.el7.x86_64                   6/7
  検証中                  : kernel-tools-3.10.0-327.28.2.el7.x86_64                        7/7

インストール:
  kernel.x86_64 0:3.10.0-327.28.3.el7

更新:
  kernel-tools.x86_64 0:3.10.0-327.28.3.el7   kernel-tools-libs.x86_64 0:3.10.0-327.28.3.el7
  python-perf.x86_64 0:3.10.0-327.28.3.el7

完了しました!
Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。