■ 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