「portaudit」と「portupgrade」でセキュリティ対策
サイオンコミュニケーションズ株式会社
新垣 良子
フリーのセキュリティツール「portaudit」と「portupgrade」を使ってセキュリティ対策の仕方をご紹介します。
1.はじめに
皆さん管理しているサーバのセキュリティ対策はばっちりでしょうか?
今回は「portaudit」と「portupgrade」という2つのフリーのツールを使ってセキュリティ対策する方法を説明したいと思います。
2.portauditとは
FreeBSDにインストールされているパッケージの中で、既知の脆弱性がないかどうかをチェックするツール。
3.portupgradeとは
FreeBSDにインストールされているパッケージをアップデートしてくれるツール。
4.マシン環境
| CPU | Pentium III 800MHz |
| Memory | 512MB |
| HDD | 160GB |
| OS | FreeBSD 5.3-RELEASE |
5.作業手順
5.1 前準備
portsを最新の状態にしましょう。
下記コマンドでportsが最新の状態になります。
# cd /usr/share/examples/cvsup/ # cvsup -g -L 2 -h cvsup.jp.freebsd.org ports-supfile Parsing supfile "ports-supfile" Connecting to cvsup.jp.freebsd.org Connected to cvsup.jp.freebsd.org (省略) Shutting down connection to server Finished successfully
portsを最新にしたところで、本題の作業に入ります。
5.2 portauditのインストール
portからportauditをインストールします。
# cd /usr/ports/security/portaudit # make && make install && make clean
5.3 portauditの設定
portaudit.confを作ります。
サンプルファイルができていますので、それをコピーします。
# cd /usr/local/etc/port # cp portaudit.conf.sample portaudit.conf
proxyを使う場合にはportaudit.confを編集してHTTP_PROXYやFTP_PROXYを設定してください。
proxyを使わない場合には特に設定は必要ありません。
## Sample configuration file for portaudit(1) ## copy to /usr/local/etc/portaudit.conf ## $FreeBSD: ports/security/portaudit/files/portaudit.conf,v 1.6 # 2004/09/09 13:15:25 brueffer Exp $ ## specify a proxy if needed, see fetch(3) #portaudit_fetch_env="FTP_PROXY=http://ftp.proxy.sample/ #HTTP_PROXY=http://http.proxy.sample:80/" portaudit_fetch_env="FTP_PROXY=http://xxxxx:8080/ HTTP_PROXY=http://xxxxx:8080/" (↑プロキシサーバ経由の場合) # default fetch command #portaudit_fetch_cmd="fetch -1amp" # specify a local mirror that generates databases with portaudit-db here #portaudit_sites="http://www.FreeBSD.org/ports/" # this vulnerability has been fixed in your FreeBSD version #portaudit_fixed="d2102505-f03d-11d8-81b0-000347a4fa7d"
5.4 portauditコマンド
portaudit [-aCdF] [-X days] [-f file] [-r eregex] [pkg-name ...] -a 全てのインストール済みパッケージについて脆弱性があるものを表示する -F 最新の脆弱性データベースをFreeBSDのサーバーからダウンロードする -d データベースが作成された日時を表示する
では実際に脆弱性のチェックをしてみましょう。
# portaudit -Fda auditfile.tbz 100% of 28 kB 9692 kBps New database installed. Database created: Mon Aug 29 17:10:15 JST 2005 Affected package: vim-6.3.79Type of problem: vim -- vulnerabilities in mod eline handling: glob, expand. Reference: <http://www.FreeBSD.org/ports/portaudit/81f127a8-0038-11da-8 6bc-000e0c2e438a.html> Affected package: pdflib-6.0.1_1Type of problem: tiff -- buffer overflow v ulnerability. Reference: <http://www.FreeBSD.org/ports/portaudit/68222076-010b-11da-b c08-0001020eed82.html>
これで、「vim」と「pdflib」に脆弱性があることが判明しました。
実は「portaudit」をインストールすると、毎日サーバからとんでくる「security run output」のメールでも確認することができます。毎回サーバにログインして確認するよりはメールでチェックするほうが楽かもしれません。実際に私は、メールでチェックしています。
ではこれから「portupgrade」を使って脆弱性のある「vim」をアップデートする準備をしましょう。
5.5 portupgradeのインストール
portからportupgradeをインストールします。
# cd /usr/ports/security/portupgrade # make && make install && make clean
前準備でportsを最新版にしましたが、通常はpkg_versionで確認する前にportsを最新版にします。
最新のportsが現在のportsよりバージョンがあがっているか確認します。
# pkg_version -v | grep vim ja-jvim-3.0.j2.1a_1 = up-to-date with port vim-6.3.79 < needs updating (port has 6.3.85)
「vim」は最新バージョンが6.3.85ということがわかりました。これから「vim」をアップデートします。
5.6 portupgradeコマンド
portupgrade [-habcCDDfFiknNOpPPqrRsuvwWy] [-A command] [-B command]
[-l file] [-L format] [-S command] [-x pkgname_glob]
[[-o origin] [-m make_args] [-M make_env] pkgname_glob ...]
-h ヘルプを表示
-a すべてを対象とする
5.7 パッケージのアップデート
「portupgrade」を使ってアップデートします。
# portupgrade vim [Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 61 packa ges found (-0 +2) .. done] ---> Upgrading 'vim-6.3.79' to 'vim-6.3.85' (editors/vim) ---> Building '/usr/ports/editors/vim' (省略) ===> Cleaning for vim-6.3.85 ---> Cleaning out obsolete shared libraries [Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 61 packa ges found (-0 +1) . done]
5.8 アップデートできたかどうかの確認
# pkg_info | grep vim ja-jvim-3.0.j2.1a_1 Japanized Vim-3.0 vim-6.3.85 Vi "workalike", with many additional features
先ほどの「pkg_version」コマンドで確認します。
# pkg_version -v | grep vim ja-jvim-3.0.j2.1a_1 = up-to-date with port vim-6.3.85 = up-to-date with port
ご覧のように「vim」のバージョンがあがったので、先ほどと表記が変わって、最新バージョンになっていることがわかります。これで、無事に脆弱性のないパッケージが入っているということになります。
6. 最後に
インストールされているパッケージに脆弱性があるということがわかれば早めに対応できます。それから管理しているサーバの台数が多ければ多いほどチェックも大変になります。「portaudit」と「portupgrade」はそんな手間を少しでも軽減してくれるありがたいツールだと思います。まだ使ったことないという方、これを機会に使ってみてはどうですか?























