user icon

CentOS7 での yum –security update 事情

夏風邪で減った体重がすっかりもどってしまいました。muraveです。
自身への細菌の侵入は許しましたが、サーバーへの侵入は防がねばなりません(自然な導入)

そんなわけで Ansible では yum update 相当の

yum: name=* state=latest

を毎回やっていたのですが、時間がかかりすぎて辛くなってきました。そんなわけでセキュリティアップデートだけするのがいいかな、と調べ始めました。

yum-plugin-securityというパッケージを利用して

$ yum --security update

が出来ることを知りました(そもそもCentOS7ではyum-plugin-securityがyumに統合されている模様)。 やったぜ!

CentOSのリポジトリではセキュリティアップデート情報が提供されていなくて正常動作しないらしいことも知りました。 やってなかったぜ!

先人の知恵と努力を頼りましょう。

ということでまとめますと、securiy用のローカルリポジトリを作り、CEFSが提供しているSpacewalk用のエラッタからupdateinfo.xmlを作って設置、yum –security update します。

はじめましょう。CentOS7、rootでの作業とします。

必要なパッケージを導入します。

$ yum install createrepo bzip2

セキュリティアップデート用のローカルリポジトリを作ります。

$ mkdir /security
$ createrepo /security
$ cat << "EOF" >> /etc/yum.repos.d/CentOS-Base.repo
[security]
name=CentOS-$releasever - Security
baseurl=file:///security
EOF

/security に移動(以降ここで作業)、CEFSのエラッタからupdateinfo.xml作るスクリプト generate_updateinfo.py を設置します。

$ cd /security
$ curl https://raw.githubusercontent.com/vmfarms/generate_updateinfo/master/generate_updateinfo.py -O

CEFSのエラッタからupdateinfo.xmlを更新します。Ansibleスクリプト化のことを考慮し一旦 errata.latest.xml.bz2 を保存してからの処理としています。

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

セキュリティアップデートが正常に動作するか、まずは check-update してみましょう。

$ yum --security check-update
読み込んだプラグイン:fastestmirror
base/7/x86_64                                                                                                             | 3.6 kB  00:00:00     
extras/7/x86_64                                                                                                           | 3.4 kB  00:00:00     
security                                                                                                                  | 3.3 kB  00:00:00     
security/updateinfo                                                                                                       |  48 kB  00:00:00     
security/primary_db                                                                                                       | 1.1 kB  00:00:00     
updates/7/x86_64                                                                                                          | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: centos.crazyfrogs.org
 * extras: centos.quelquesmots.fr
 * updates: mirrors.standaloneinstaller.com

<途中省略>

11 package(s) needed for security, out of 171 available

glibc.x86_64                                                              2.17-196.el7                                                    base   
glibc-common.x86_64                                                       2.17-196.el7                                                    base   
libtirpc.x86_64                                                           0.2.4-0.10.el7                                                  base   
nss.x86_64                                                                3.28.4-11.el7_4                                                 updates
nss-sysinit.x86_64                                                        3.28.4-11.el7_4                                                 updates
nss-tools.x86_64                                                          3.28.4-11.el7_4                                                 updates
nss-util.x86_64                                                           3.28.4-3.el7                                                    base   
policycoreutils.x86_64                                                    2.5-17.1.el7                                                    base   
policycoreutils-python.x86_64                                             2.5-17.1.el7                                                    base   
python-perf.x86_64                                                        3.10.0-693.2.2.el7                                              updates
rpcbind.x86_64                                                            0.2.0-42.el7                                                    base   

やったぜ!

update で実際のセキュリティアップデートを実行します。

$ yum --security update

リポジトリ作成済なので、以降は以下のコマンドセットでセキュリティアップデートできますね。

$ cd /security
$ curl http://cefs.steve-meier.de/errata.latest.xml.bz2 -O
$ python generate_updateinfo.py --destination=/security --release=7 <(bzip2 -dc errata.latest.xml.bz2)
$ modifyrepo /security/updateinfo-7/updateinfo.xml /security/repodata/
$ yum --security update
Facebooktwittergoogle_pluslinkedintumblrmail

タグ: ,

名前
E-mail
URL
コメント