ClamAV のインストール

Last Update: 9th, Mar, 2006

目次


概要

 メールの流通において、スパムやウィルスの増加に伴い、エンドユーザのパソコンだけでなく、サーバにおけるウィルス対策への要求が大きくなっています。
 Clam AntiVirus (以下、ClamAV。) は、GPL で提供されているウィルス対策ソフトウェアで FreeBSD でも利用できます。コマンドラインからだけでなく sendmail の milter インターフェイスをサポートしており、メールサーバへの適用が容易です。
 ここでは、FreeBSD の ports からのインストールと設定、milter の利用についてまとめます。

▲TOP

ClamAV の特徴

 ClamAV の特徴は次の通りです。

▲TOP

導入する環境

▲TOP

ClamAV のインストール

 ports から ClamAV をインストールします。

# cd /usr/ports/security/clamav
# make clean
# make install
# rehash

 インストールされたコマンドが検索できるように rehash しておきます。  お好みに応じてテストを実行します。

# cd work/clamav-0.88/test
# clamscan clam.cab
clam.cab: ClamAV-Test-File FOUND

----------- SCAN SUMMARY -----------
Known viruses: 42108
Engine version: 0.88
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Time: 1.077 sec (0 m 1 s)

 こんな感じに表示されれば、テスト完了。

# make clean

使ったディレクトリは、きれいにしておきます。

▲TOP

ClamAV の設定

 /usr/local/etc/* にある 2 つの設定ファイルを編集します。

# cd /usr/local/etc
# vi clamd.conf

clamd.conf の主な設定項目は次の通り。

LogTimeこれを有効にしないと、ログにタイムスタンプが付きません。
LogVerbose詳細なログを生成します。
StreamMaxLength 50M処理するメールサイズの最大値を指定します。デフォルトだと少し小さい気がします。お好みで。
ScanOLE2MS Office シリーズのマクロウィルス対応。
ScanArchiveアーカイブファイル内のウィルス対応。
ArchiveMaxFileSize 50M処理するアーカイブの最大値を指定します。デフォルトだと少し小さい気がします。お好みで。
# cd /usr/local/etc
# vi freshclam.conf

freshclam.conf の主な設定項目は次の通り。

DatabaseMirror db.jp.clamav.netデフォルトのデータベース参照先を指定します。
Checks 131 日毎のデータベース更新回数を指定します。お好みで。
▲TOP

ClamAV の起動

ClamAV のデーモン clamd とデータベース自動更新デーモン freshclam を起動します。

# cd /usr/local/etc/rc.d
# ./clamav-clamd.sh start
# ./clamav-freshclam.sh start
# chown clamav /var/log/clamav/clamd.log

chown してるのは、root で起動したために、最初に生成されるログ clamd.log のオーナが root になってしまうので、これを修整するためのもの。これを行わないと、後で、clamd-milter を起動したときに、ログに書けないというエラーがでます。

▲TOP

sendmail の設定変更

 milter を使ってメールをスキャンするために、sendmail の設定を変更します。

# cd /etc/mail
# vi freebsd.mc

 次の設定を追加します。

dnl for ClamAV milter
INPUT_MAIL_FILTER(`clmilter', `S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')dnl

 設定を反映させます。

# make install
# make restart
▲TOP

clamd-milter の起動

 clamd-milter を起動させます。

# cd /usr/local/etc/rc.d
# ./clamav-milter.sh start
▲TOP

動作確認

 動作確認は、次の各方法で行えます。

▲TOP

自動起動の設定

 /etc/rc.conf を編集して、システム起動時に自動的に動作するように設定します。

# cd /etc
# vi rc.conf

 追加する内容は次の通り。
 clamav_*_enable="YES" だけでも動きます。flags や socket については、/usr/local/etc/rc.d/clamav-*.sh に書いてあるので、参照してください。

# for ClamAV
clamav_clamd_enable="YES"
clamav_clamd_flags=""
clamav_clamd_socket="/var/run/clamav/clamd"
clamav_milter_enable="YES"
clamav_milter_socket="/var/run/clamav/clmilter.sock"
clamav_milter_flags="--postmaster-only --local --outgoing --timeout=0 --max-children=50"
clamav_freshclam_enable="YES"
clamav_freshclam_flags=""
▲TOP

ファイルやディレクトリの状態

 正常に動作している場合の、関連各ファイルやディレクトリのオーナとパーミッションは、次のようになります。うまく動かない場合は確認してください。

File / DirectoryPermissionUser / Group
/usr/local/sbin/clamav-milter-r-xr-xr-xroot:wheel
/usr/local/sbin/clamd-r-xr-xr-xroot:wheel
/usr/local/bin/clamav-config-r-xr-xr-xroot:wheel
/usr/local/bin/clamdscan-r-xr-xr-xroot:wheel
/usr/local/bin/clamscan-r-xr-xr-xroot:wheel
/usr/local/bin/freshclam-r-xr-xr-xroot:wheel
/usr/local/bin/sigtool-r-xr-xr-xroot:wheel
/usr/local/lib/libclamav.a-rw-r--r--root:wheel
/usr/local/lib/libclamav.so -> libclamav.so.1lrwxr-xr-xroot:wheel
/usr/local/lib/libclamav.so.1-rwxr-xr-xroot:wheel
/var/log/clamav/drwxrwxr-xclamav:clamav
     clamd.log-rw-r-----clamav:clamav
     freshclam.log-rw-r-----clamav:clamav
/var/run/clamav/drwxr-xr-xclamav:clamav
     clamav-milter.pid-rw-rw----clamav:clamav
     clamdsrwxrwxrwxclamav:clamav
     clamd.pid-rw-rw----clamav:clamav
     clmilter.socksrwxrwxrwxclamav:clamav
     freshclam.pid-rw-rw----clamav:clamav
/usr/local/etc/drwxr-xr-xroot:wheel
     clamd.conf-r--r--r--root:wheel
     freshclam.conf-r--r--r--root:wheel
/usr/local/etc/rc.d/drwxrwxr-xroot:wheel
     clamav-clamd.sh-r-xr-xr-xroot:wheel
     clamav-freshclam.sh-r-xr-xr-xroot:wheel
     clamav-milter.sh-r-xr-xr-xroot:wheel
▲TOP

ClamAV の更新

 ClamAV は、頻繁に更新されています。1〜2 ヶ月に 1 回程度の頻度で、新しいバージョンがリリースされているので、その都度、ports を更新する必要があります。

 まず、動いているデーモンを停止します。

% su
# cd /usr/local/etc/rc.d
# ./clamav-clamd.sh stop
# ./clamav-freshclam.sh stop
# ./clamav-milter.sh stop

 次に ports で更新します。

# cd /usr/ports/security/clamav
# make WITH_MILTER=yes clean
# make WITH_MILTER=yes
# make WITH_MILTER=yes deinstall
# make WITH_MILTER=yes reinstall
# make WITH_MILTER=yes clean
# chmod 755 /var/run/clamav

 デーモンを再開します。

# cd /usr/local/etc/rc.d
# ./clamav-clamd.sh start
# ./clamav-freshclam.sh start
# chown clamav /var/log/clamav/clamd.log
# ./clamav-milter.sh start

 ClamAV の更新については、本家サイトでのアナウンス等を参考にしてください。

▲TOP

参考

Clam AntiVirus
http://www.clamav.net/
SF Project page
http://sourceforge.net/projects/clamav/
Technoids.org
http://www.technoids.org/clamav-milter.html
fkimura.com
http://www.fkimura.com/ClamAV0.html
▲TOP