パッケージの更新を自動化する
2006年6月25日 掲載
サーバーを運営する上でセキュリティ対策は欠かせません。特に外部にサーバーを公開するときはセキュリティ対策を行う責任が生じます。対策が不十分な場合、セキュリティホールをつかれ、他のサーバーを攻撃するための踏み台として利用される可能性があります。十分な管理ができないのであればサーバーを外部に公開するべきではありません。
サーバーを運営する上で最低限やっておきたいのがパッケージの更新です。新しいセキュリティホールが発見されると、バグを修正するための新しいパッケージが提供されます。このパッケージをきちんとインストールしておけば、ほとんどの攻撃は防ぐことができます。新しいパッケージが公開されたら、なるべく早くインストールしなければなりません。
定期的にサーバーにログインして、「パッケージを最新のものに更新する」の手順でapt-get updateとapt-get upgradeを実行します。
# apt-get update ←最新のパッケージリストを入手 取得:1 http://updates.vinelinux.org 3.2/i386 release [2532B] 2532B を 0s 秒で取得しました (5727B/s) ヒット http://updates.vinelinux.org 3.2/i386/main pkglist ヒット http://updates.vinelinux.org 3.2/i386/main release 取得:1 http://updates.vinelinux.org 3.2/i386/plus pkglist [375kB] ヒット http://updates.vinelinux.org 3.2/i386/plus release 取得:2 http://updates.vinelinux.org 3.2/i386/updates pkglist [81.6kB] ヒット http://updates.vinelinux.org 3.2/i386/updates release ヒット http://updates.vinelinux.org 3.2/i386/main srclist 取得:3 http://updates.vinelinux.org 3.2/i386/plus srclist [175kB] 取得:4 http://updates.vinelinux.org 3.2/i386/updates srclist [19.6kB] 651kB を 4s 秒で取得しました (133kB/s) パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 # apt-get upgrade ←新しいパッケージをインストールする パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下のパッケージがアップグレードされます: ImageMagick ImageMagick-perl glibc glibc-common libtiff アップグレード: 5 個, 新規インストール: 0 個, 削除: 0 個, 保留: 0 個 40.1MB のアーカイブを取得する必要があります。 展開後に 592kB が解放されます。 続行しますか? [Y/n]y ←確認メッセージで「y」キーを押す 取得:1 http://updates.vinelinux.org 3.2/i386/updates glibc-common 2.3.3-3vl1.1 [14.7MB] 取得:2 http://updates.vinelinux.org 3.2/i386/updates glibc 2.3.3-3vl1.1 [19.7MB] 取得:3 http://updates.vinelinux.org 3.2/i386/updates libtiff 3.5.7-6vl7 [292kB] 取得:4 http://updates.vinelinux.org 3.2/i386/updates ImageMagick-perl 6.0.8.3-0vl4 [91.9kB] 取得:5 http://updates.vinelinux.org 3.2/i386/updates ImageMagick 6.0.8.3-0vl4 [2787kB] 40.1MB を 17s 秒で取得しました (2247kB/s) 変更を適用しています... Preparing... ########################################### [100%] 1:glibc-common ########################################### [ 16%] 2:glibc ########################################### [ 33%] 3:libtiff ########################################### [ 50%] 4:ImageMagick-perl ########################################### [ 66%] 5:ImageMagick ########################################### [ 83%] 完了 ←これでアップグレードは完了 #
しかし、新しいパッケージが公開されたことに気付かないことがあるかもしれません。cronを使ってアップデートを自動実行するように設定しておくことをおすすめします。/etc/crontabを編集すると、指定したプログラムを定期的に自動実行することができます。ここではapt-get updateとapt-get upgradeを毎日深夜4時10分に自動実行するように設定する方法を紹介します。
まずはsuコマンドでスーパーユーザーになり、コマンドラインからvi /etc/crontabと入力します。viでcrontabを開いたら、場所はどこでもいいので下のように一行追加します(いちばん下に追加するといいでしょう)。ファイルを保存するだけでアップデートが自動的に実行されるようになります。cronを再起動したりする必要はありません。
apt-get -y upgradeの「-y」というオプションは、確認メッセージに対して「y」と答えるものです。このオプションを追加しないと、新しいアップデートが見つかったときに確認メッセージが表示されるところで止まってしまいます。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
10 4 * * * root apt-get update && apt-get -y upgrade ←この一行を追加する