Since 12/1/2007
Home > Linux > CentOS5 > システムを最新の状態にする

CentOS5 システムを最新の状態にする - itochif.com

コンピュータの世界では、毎日様々なソフトウェアに存在する脆弱性が報告されています。 ソフトウェアによっては、これらを修正するためのパッチや新バージョンのプログラムを提供しています。 ここでは、yumを使用してシステムを最新の状態にします。

富士通

GNOME端末を起動する

CentOS5 GNOME端末 GNOME端末を起動します。GNOME端末の起動は画面左上のメニュー[アプリケーション]->[アクセサリ]->[GNOME端末]を選択します。

CentOS5 公開鍵のインポート

yumを使用してパッケージのインストールやアップデートを行う時には、自動的にパッケージの完全性や出所が正しいかどうかの確認が行われます。 確認を行うにはrpmデータベースにCentOS5のGngPG公開鍵を追加する必要があります。

# /bin/rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
# /bin/rpm -qa "gpg-pubkey*" # 取り込まれている公開鍵の確認
gpg-pubkey-e8562897-459f07a4
# /bin/rpm -qi "gpg-pubkey-e8562897-459f07a4" # gpg-pubkey-e8562897-459f07a4の詳細情報
Name        : gpg-pubkey                   Relocations: (not relocatable)
Version     : e8562897                          Vendor: (none)
Release     : 459f07a4                      Build Date: 2008年02月23日 16時00分00秒
Install Date: 2008年02月23日 16時00分00秒      Build Host: localhost
Group       : Public Keys                   Source RPM: (none)
Size        : 0                                License: pubkey
Signature   : (none)
Summary     : gpg(CentOS-5 Key (CentOS 5 Official Signing Key) )
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.4.2 (beecrypt-4.1.2)

mQGiBEWfB6MRBACrnYW6yKMT+MwJlCIhoyTxGf3mAxmnAiDEy6HcYN8rivssVTJkCFtQBlBO
pLV/OW2YtKrCO2xHn46eNfnMri8FGT8g+9JF3MUVi7kiV1He4iJynHXB+F2ZqIvHf3IaUj1y
s+p8TK64FDFxDQDrGQfIsD/+pkSGx53/877IrvdwjwCguQcrIoip5TH0Fj0OLUY4asYVZH8E
AIqFHEqsY+9ziP+2R3/FyxSllKkjwcMLrBug+cYOLYDD6eQXE9Mq8XKGFDj9ZB/0+JzK/XQe
StheeFG75q3noq5oCPVFO4czuKErIRABqKbDBhaTj3JhOgM12XsUYn+rI6NeMV2ZogoQCC2t
WmDETfRpYp2moo53NuFWHbAyXjETA/sHEeQT9huHzdi/lebNBj0L8nBGfLN1nSRP1GtvagBv
kR4RZ6DTQyl0UzOJRA3ywWlrL9IV9mrpb1Fmn60l2jTMMCc7J6LacmPK906N+FcN/Docj1M4
s/4CNanQNhzcFhAFtQL56SNyLTCk1XzhssGZ/jwGnNbU/aaj4wOj0Uef5LRGQ2VudE9TLTUg
S2V5IChDZW50T1MgNSBPZmZpY2lhbCBTaWduaW5nIEtleSkgPGNlbnRvcy01LWtleUBjZW50
b3Mub3JnPohkBBMRAgAkBQJFnwekAhsDBQkSzAMABgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJ
EKikR9zoViiXKlEAmwSoZDvZo+WChcg3s/SpNoWCKhMAAJwIE2aXpZVrpsQnInUQWwkdrTiL
5YhMBBMRAgAMBQJFnwiSBYMSzAIRAAoJEDjCFhY5bKCk0hAAn134bIx3wSbq58E6P6U5RT7Z
2Zx4AJ9VxnVkoGHkVIgSdsxHUgRjo27NF7kBDQRFnwezEAQA/HnJ5yiozwgtf6jt+kii8iua
+WnjqBKomPHOQ8moxbWdv5Ks4e1DPhzRqxhshjmub4SuJ93sgMSAF2ayC9t51mSJV33KfzPF
2gIahcMqfABe/2hJaMzcQZHrGJCEX6ek8l8SFKou7vICzyajRSIK8gxWKBuQknP/9LKsoczV
+xsAAwUD/idXPkk4vRRHsCwc6I23fdI0ur52bzEqHiAIswNfO521YgLk2W1xyCLc2aYjc8Ni
nrMX1tCnEx0/gK7ICyJoWH1Vc7//79sWFtX2EaTO+Q07xjFX4E66WxJlCo9lOjosVk5qc7R+
xzLDoLGFtbzaTRQFzf6yr7QTu+BebWLoPwNTiE8EGBECAA8FAkWfB7MCGwwFCRLMAwAACgkQ
qKRH3OhWKJfvvACfbsF1WK193zM7vSc4uq51XsceLwgAoI0/9GxdNhGQEAweSlQfhPa3yYXH
=o/Mx
-----END PGP PUBLIC KEY BLOCK-----
図1.公開鍵のインポートと確認

ファイアウォールの設定

ファイアウォールの設定で行ったiptablesの設定ではyumでのパッケージ更新のための通信が破棄されてしまいます。 以下は[yum update]コマンドを使用した時の/var/log/messagesの内容です。

# /bin/grep DROP /var/log/messages
Feb 23 16:00:00 www kernel: [DROP DEFAULT] :IN= OUT=eth0 SRC=192.168.10.2 DST=XXX.XXX.XXX.XXX LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=43145 DF PROTO=TCP SPT=52059 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Feb 23 16:00:00 www kernel: [DROP DEFAULT] :IN= OUT=eth0 SRC=192.168.10.2 DST=XXX.XXX.XXX.XXX LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=47281 DF PROTO=TCP SPT=42747 DPT=21 WINDOW=5840 RES=0x00 SYN URGP=0
図2.ファイアウォールによって破棄されたyumの通信(抜粋)

これら通信を行うために上記ログから必要な情報を抜き出すと以下のリストになります。

  • 外向きの通信の新規接続(OUT=eth0/フラグがSYNのみ)
  • 送信元IPアドレスはこのサーバ(SRC=192.168.10.2)
  • 宛先IPアドレスはこのサーバ以外のANY(DST=XXX.XXX.XXX.XXX)
  • TCPの通信(PROTO=TCP)
  • 宛先ポートは80と21(DPT=80/DPT=21)

ファイアウォールの設定で作成したシェルスクリプトに、この情報を元にして作成したiptablesコマンドを追記します。 「※この下に受け入れる接続を記述する」の部分に以下の設定を追記します。

# ----- yum 用
/sbin/iptables -A OUTPUT	-p tcp -o $IF1 -s $IP1 --dport 80 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT	-p tcp -o $IF1 -s $IP1 --dport 21 -m state --state NEW -j ACCEPT
図3.「ファイアウォールの設定」に追記するコマンド

上記のコマンドを追記した後、以下のコマンドでパケットフィルタテーブルを更新します。

# /usr/local/sbin/iptables.sh
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[  OK  ]
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns     [  OK  ]
図4. パケットフィルタテーブルの更新

富士通

システムを最新の状態に更新する

ファイアウォールの設定も完了したので、実際にyumを使用してシステムを最新の状態に更新します。

# yum update
Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
extras                    100% |=========================| 1.1 kB    00:00
updates                   100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
addons                    100% |=========================|  951 B    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================|  91 kB    00:01
################################################## 305/305
primary.xml.gz            100% |=========================| 168 kB    00:01
################################################## 326/326
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libpng to pack into transaction set.
libpng-1.2.10-7.1.el5_0.1 100% |=========================|  11 kB    00:00
---> Package libpng.i386 2:1.2.10-7.1.el5_0.1 set to be updated
---> Downloading header for firefox to pack into transaction set.
firefox-1.5.0.12-9.el5.ce 100% |=========================|  99 kB    00:00
---> Package firefox.i386 0:1.5.0.12-9.el5.centos set to be updated
--------------------
<中略>
--------------------
Transaction Summary
=============================================================================
Install      2 Package(s)
Update      44 Package(s)
Remove       0 Package(s)

Total download size: 111 M
Is this ok [y/N]: y #yを入力
Downloading Packages:
(1/46): libpng-1.2.10-7.1 100% |=========================| 242 kB    00:01
(2/46): firefox-1.5.0.12- 100% |=========================|  20 MB    01:08
--------------------
<中略>
--------------------
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating  : kernel-headers               ####################### [ 1/90]
  Updating  : tzdata                       ####################### [ 2/90]
--------------------
<中略>
--------------------
Installed: kernel.i686 0:2.6.18-53.1.13.el5 kernel-devel.i686 0:2.6.18-53.1.13.el5
Updated: autofs.i386 1:5.0.1-0.rc2.55.el5.3 cairo.i386 0:1.2.4-3.el5_1 cups.i386 1:1.2.4-11.14.el5_1.4 cups-libs.i386 1:1.2.4-11.14.el5_1.4 device-mapper-multipath.i386 0:0.4.7-12.el5_1.2 e2fsprogs.i386 0:1.39-10.el5_1.1 e2fsprogs-libs.i386 0:1.39-10.el5_1.1 firefox.i386 0:1.5.0.12-9.el5.centos flac.i386 0:1.1.2-28.el5_0.1 fontconfig.i386 0:2.4.1-7.el5 gdb.i386 0:6.5-25.el5_1.1 glibc.i686 0:2.5-18.el5_1.1 glibc-common.i386 0:2.5-18.el5_1.1 glibc-devel.i386 0:2.5-18.el5_1.1 glibc-headers.i386 0:2.5-18.el5_1.1 hal.i386 0:0.5.8.1-25.el5_1.1 hal-gnome.i386 0:0.5.8.1-25.el5_1.1 httpd.i386 0:2.2.3-11.el5_1.centos.3 kernel-headers.i386 0:2.6.18-53.1.13.el5 kpartx.i386 0:0.4.7-12.el5_1.2 libXfont.i386 0:1.2.2-1.0.3.el5_1 libexif.i386 0:0.6.13-4.0.2.el5_1.1 libpng.i386 2:1.2.10-7.1.el5_0.1 libxml2.i386 0:2.6.26-2.1.2.1 libxml2-python.i386 0:2.6.26-2.1.2.1 logrotate.i386 0:3.7.4-8 mcstrans.i386 0:0.2.6-1.el5_1.1 nscd.i386 0:2.5-18.el5_1.1 openldap.i386 0:2.3.27-8.el5_1.3 pcre.i386 0:6.6-2.el5_1.7 perl.i386 4:5.8.8-10.el5_0.2 poppler.i386 0:0.5.4-4.3.el5_1 postgresql-libs.i386 0:8.1.11-1.el5_1.1 rsh.i386 0:0.17-38.el5 samba-common.i386 0:3.0.25b-1.el5_1.4 selinux-policy.noarch 0:2.4.6-106.el5_1.3 selinux-policy-targeted.noarch 0:2.4.6-106.el5_1.3 telnet.i386 1:0.17-39.el5 tzdata.noarch 0:2007k-1.el5 util-linux.i386 0:2.13-0.45.el5_1.1 xorg-x11-drv-keyboard.i386 0:1.1.0-3 xorg-x11-server-Xnest.i386 0:1.1.1-48.26.el5_1.5 xorg-x11-server-Xorg.i386 0:1.1.1-48.26.el5_1.5 xorg-x11-server-Xvfb.i386 0:1.1.1-48.26.el5_1.5
Complete!
図5.システムが最新の状態に更新されている

インテルCentrino Duo搭載ThinkPad T60 [468x60]

システムを常に最新の状態にする

前述のとおり、脆弱性の修正や機能追加のアップデートパッケージ等は常に更新されています。 ここではシステムを常に最新の状態に保つ設定を行います。 ただし、ソフトウェアによっては自動的にアップデートされる事により問題が発生する事もあるため、 検証を必要とするソフトウェアについては自動アップデートから除外する設定も行います。

# echo exclude=httpd* >> /etc/yum.conf
# echo exclude=bind* >> /etc/yum.conf
図6.bindやhttpd関連パッケージを自動更新しない設定例

自動的にシステムを最新の状態に保つためにcrontabにyum updateコマンドを登録します。

# /usr/bin/crontab -e
------------------------------ 次の行からcrontabの中身
05 05 * * * /usr/bin/yum -y update
------------------------------ crontab終了
図7.5時5分に[/usr/bin/yum -y update]を実行するようcrontabに記載

自動的にシステムを最新の状態にするのではなく、更新パッケージをメールにて通知するには[/usr/bin/yum -y update]の部分を[/usr/bin/yum -y check-update]に変更します。

マウスコンピューター/G-Tune

掲載日 2/24/2008
更新日 3/09/2008