SYONテクニカル

「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」はそんな手間を少しでも軽減してくれるありがたいツールだと思います。まだ使ったことないという方、これを機会に使ってみてはどうですか?

Copyright 1999-2012 SYON Communications, Co. All rights reserved