2009年6月18日木曜日

FreeBSD でサーバ構築 #5.5 アップデートの自動化

林檎生活100: FreeBSD でサーバ構築 #5林檎生活100: FreeBSD でサーバ構築 #6の間あたりのネタだな.絶対に設定するべきってわけじゃないから,あまり気にしなくてもいいエントリだw

今回は,freebsd-update を自動実行してアップデートがあることを通知するようにすることと,portsnap を自動実行して最新の Ports コレクションをダウンロードしておくことと,portaudit を自動実行して Ports のセキュリティ問題を定期的に調査するようにすることについて.これは,cron というユーティリティで,指定時刻に定期実行させるように設定することで実現する.

まずは,freebsd-update で,FreeBSD 本体のセキュリティアップデートを自動取得するように設定する./etc/crontab の末尾に次の行を追加して,毎日実行するように設定する.
#
# Check update and download freebsd security patches.
@daily root freebsd-update cron

セキュリティアップデートがあると,root 宛にメールが届くようになっているので,そのメールが届いたら早めにセキュリティアップデートを実行しよう.root 宛のメールを見る方法や別のアドレスに転送する方法は,メールサーバの構築のときに説明する.

つぎに,portsnap も自動実行するように設定する.freebsd-update と同様に,/etc/crontab の末尾に次の行を追加する.
#
# Download a compressed snapshot of the Ports Collection.
@daily root portsnap cron

これについては,とくに通知は届かない.(毎日なんらかの Ports はアップデートされてるからね.)新しく Ports をインストールする前に,portsnap update を実行するだけで最新の Ports ツリーにできるところが魅力なわけだ.

最後に,portaudit も自動実行するように設定する.とは言っても,Ports から portaudit をインストールするだけで,自動実行の設定がされる.(/usr/etc/periodic/security/410.portaudit によって実行される.)そして,毎日実行されて届く lucifer.legna.org security run output という件名のメールの中に,portaudit の実行結果が記述されるようになる.Ports の更新も含めたインストール方法はこんな感じ.
# portsnap fetch
# portsnap extract(以前にこのコマンドを実行したことがあるのであれば,portsnap update で OK.)
# cd /usr/ports/ports-mgmt/portaudit
# make install clean

ついでに,Ports をアップデートするツール portupgrade をインストールしておこう.これを使って,脆弱性がみつかった Ports をアップデートしよう.
# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

使い方はこんなかんじ.(Ports インストール直後は,実行ファイルへのパスが更新されていないので,rehash コマンドを打ってから実行すること.)

○すべてのインストール済み Ports をアップグレード
# portupgrade -a

○すべてのインストール済み Ports それぞれについてアップグレードするか訪ねる
# portupgrade -ai

○指定した Port をアップグレード
# portupgrade ポート名

○指定した Port とその Port を必要としている Port をアップグレード
# portupgrade -r ポート名

○指定した Port とその Port が必要としている Port をアップグレード
# portupgrade -R ポート名


参考文献:
FreeBSD Handbook: FreeBSD Update
FreeBSD Handbook: Using the Ports Collection
FreeBSD Handbook: Monitoring Third Party Security Issues
ttt: (FREEBSD) PORTAUDITでPORTSのセキュリティチェック

0 件のコメント: