ClamAV自動アップデート失敗

■ Fedora8
ClamAVの最新版がリリースされると自動でアップデートしてくれるツールclamav-updateをインストールしてたのですが、最新版がリリースされたにもかかわらずアップデートに失敗してるようです。clamav-updateのインストール時にオプション設定しなければならないようですが、暮れで忙しいのでとりあえずソースから手動で最新版をインストールして後日clamav-updateを見直してみたいと思います。
■ ソースからインストールした古いバージョンのclamavをアンインストールします

アンインストール用にバックアップしてあったモジュールを展開。
[root@server ~]# tar zxvf clamav-0.91.2_self.tar.gz
clamav-0.91.2のディレクトリへ移動
[root@server ~]# cd clamav-0.91.2
clamav-0.91.2のアンインストール
[root@server clamav-0.91.2]# make uninstall
clamav-0.91.2のファイルとディレクトリーを削除
[root@server clamav-0.91.2]# cd
[root@server ~]# rm -f clamav-0.91.2_self.tar.gz
[root@server ~]# rm -rf clamav-0.91.2
古いバージョンのディレクトリーの削除
[root@server ~]# rm -rf /usr/local/clamav

■ 最新版のClamAVをダウンロードします 最新版は公式サイトで確認できます。

[root@server ~]# wget http://freshmeat.net/redir/clamav/29355/url_tgz/clamav-0.92.tar.gz
clamav-0.92を展開
[root@server ~]# tar zxvf clamav-0.92.tar.gz
ダウンロードしたファイルを削除
[root@server ~]# rm -f clamav-0.92.tar.gz
clamav-0.92ディレクトリーへ移動
[root@server ~]# cd clamav-0.92
Makefileを自動作成するためのツール「configure」を実行。
[root@server clamav-0.92]# ./configure --prefix=/usr/local/clamav
makeを実行し、clamavをインストール
[root@server clamav-0.92]# make
[root@server clamav-0.92]# make install

■ アンインストール用にバックアップしておきます

[root@server clamav-0.92]# cd
[root@server ~]# tar cvf clamav-0.92_self.tar ./clamav-0.92
[root@server ~]# gzip clamav-0.92_self.tar

■ 設定ファイル変更
インストールが正常に完了したらまず、二つの設定ファイル
/usr/local/clamav/etc/freshclam.conf
/usr/local/clamav/etc/clamd.conf
をエディタで開きExampleと書かれた行をコメントアウトし、保存します。

[root@server ~]# vi /usr/local/clamav/etc/freshclam.conf
# Comment or remove the line below.
Example
↓
#Example
[root@server ~]# vi /usr/local/clamav/etc/clamd.conf
# Comment or remove the line below.
Example
↓
#Example

■ 「freshclam」を使用してVirusDBをアップデート

[root@server ~]# /usr/local/clamav/bin/freshclam
ClamAV update process started at Sat Dec 22 12:21:11 2007
main.cvd is up to date (version: 45, sigs: 169676, f-level: 21, builder: sven)
WARNING: getfile: daily-5111.cdiff not found on remote server (IP: 121.116.26.171)
ERROR: getpatch: Can't download daily-5111.cdiff from database.clamav.net
WARNING: getfile: daily-5111.cdiff not found on remote server (IP: 121.116.26.171)
ERROR: getpatch: Can't download daily-5111.cdiff from database.clamav.net
WARNING: getfile: daily-5111.cdiff not found on remote server (IP: 219.117.246.122)
ERROR: getpatch: Can't download daily-5111.cdiff from database.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cvd updated (version: 5216, sigs: 10553, f-level: 21, builder: ccordes)
Database updated (180229 signatures) from database.clamav.net (IP: 61.205.61.201)

■ ウィルススキャン確認(/etc/passwdをスキャンしてみる)

[root@server ~]# /usr/local/clamav/bin/clamscan --infected --remove --recursive /etc/passwd
----------- SCAN SUMMARY -----------
Known viruses: 180229
Engine version: 0.92
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Time: 3.234 sec (0 m 3 s)

version: 0.92でスキャンされてることを確認
■ Clam AntiVirusの定期自動実行設定
毎日自動的にウィルス定義ファイル最新化して、全てのファイルのウィルススキャンを行うスプリクトの作成

[root@linux ~]# vi clamav.sh
#!/bin/bash
PATH=/usr/bin:/bin
# excludelist
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi
CLAMSCANTMP=`mktemp`
/usr/local/clamav/bin/freshclam > /dev/null
/usr/local/clamav/bin/clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

■ Clam AntiVirus定期自動実行スクリプトに実行権限付加

[root@linux ~]# chmod 700 clamav.sh

■ cron編集

[root@linux ~]# crontab -e
00 03 * * * /root/clamav.sh ← 追加(毎日3:00にClam AntiVirusの定期自動実行)

■ スキャン除外設定
backupディレクトリをスキャン対象外にするように設定

[root@linux ~]# echo "/backup/" >> clamscan.exclude