VineLinux 4.2 Clam AntiVirus
8月 11, 2009 — 1:29

サーバーにClam AntiVirusをインストールしてみました
以前もClam AntiVirusをインストールしていましたが
VineLinuxのapt-getでインストールしたClam AntiVirusはバージョンが古く
サーバーのLOGにアホみたいに警告が残るので今回以下の組み合わせで
インストールしました。

Clam AntiVirus + clamav-update

clamav-updateとはclamav-update自身とClam AntiVirusを
自動的にアップグレードしてくれるソフトです。

# apt-get upgrade
# apt-get install clamav
で自動的にインストールし

[root@localhost root]# wget http://osdn.dl.sourceforge.jp/clamav-update/26300/clamav-update-2.2.3.tar.gz
--00:02:54--  http://osdn.dl.sourceforge.jp/clamav-update/26300/clamav-update-2.2.3.tar.gz
           => `clamav-update-2.2.3.tar.gz'
osdn.dl.sourceforge.jp をDNSに問いあわせています... 202.221.179.23
osdn.dl.sourceforge.jp|202.221.179.23|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 26,941 (26K) [application/x-gzip]

100%[====================================>] 26,941        --.--K/s

00:02:55 (279.43 KB/s) - `clamav-update-2.2.3.tar.gz' を保存しました [26941/26941]

このようにwgetコマンドで
clamav-update-2.2.3.tar.gzをダウンロードしてきます。

[root@localhost root]# tar zxvf clamav-update-2.2.3.tar.gz
clamav-update-2.2.3/
clamav-update-2.2.3/changelog.ja.utf-8.txt
clamav-update-2.2.3/clamav-update-update.conf
clamav-update-2.2.3/clamav-update.conf
clamav-update-2.2.3/clamav-update.pl
clamav-update-2.2.3/COPYING
clamav-update-2.2.3/INSTALL
clamav-update-2.2.3/install.command
clamav-update-2.2.3/INSTALL.ja.utf-8
clamav-update-2.2.3/install.sh
clamav-update-2.2.3/README.en.txt
clamav-update-2.2.3/README.ja.utf-8.txt
clamav-update-2.2.3/template/
clamav-update-2.2.3/template/clamav-update.conf

解凍後clamav-update-2.2.3へ移動しinstall.shを実行します。

[root@localhost root]# cd clamav-update-2.2.3
[root@localhost clamav-update-2.2.3]# ./install.sh

ROOTディレクトリに戻り解凍したディレクトリと
ダウンロードしてきた圧縮ファイルを削除します。

[root@localhost clamav-update-2.2.3]# cd
[root@localhost root]# rm -rf clamav-update-2.2.3
[root@localhost root]# rm -f clamav-update-2.2.3.tar.gz

設定ファイルの編集

[root@localhost root]# vi /usr/local/etc/clamav-update.conf
#$Setting{option}->{src} = 'http://jaist.dl.sourceforge.net/sourceforge/clamav';
#を消去して有効化
$Setting{option}->{src} = 'http://jaist.dl.sourceforge.net/sourceforge/clamav';
[root@localhost root]# vi /etc/freshclam.conf
Exampleを無効化するために#を追記
#Example

# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
#DatabaseOwner clamav
実行ユーザーをROOTにするため下記に変更
DatabaseOwner root

# Run command when freshclam reports outdated version.
# In the command string %v will be replaced by the new version number.
# Default: disabled
#OnOutdatedExecute command
OnOutdatedExecute /usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf
Clam AntiVirusアップデート時にclamav-updateを実行

DatabaseMirror database.clamav.net
ウィルスデータベース入手元を日本に変更
DatabaseMirror db.jp.clamav.net
# vi /etc/clamd.conf
Exampleを無効化するため#を追記
#Example

LogFile /var/log/clamd.log
ログの保存場所の変更

Clam AntiVirusの起動

[root@localhost root]# /etc/rc.d/init.d/clamd start
Starting ClamAV Daemon:                                    [  OK  ]

ウィルス定義ファイル更新

[root@localhost root]# freshclam
ClamAV update process started at Tue Aug 11 00:16:14 2009
main.cvd is up to date (version: 51, sigs: 545035, f-level: 42, builder: sven)
WARNING: getfile: daily-9451.cdiff not found on remote server (IP: 120.29.176.126)
WARNING: getpatch: Can't download daily-9451.cdiff from database.clamav.net
Trying host database.clamav.net (218.44.253.75)...
WARNING: getfile: daily-9451.cdiff not found on remote server (IP: 218.44.253.75)
WARNING: getpatch: Can't download daily-9451.cdiff from database.clamav.net
Trying host database.clamav.net (219.94.128.99)...
WARNING: getfile: daily-9451.cdiff not found on remote server (IP: 219.94.128.99)
WARNING: getpatch: Can't download daily-9451.cdiff from database.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Trying host database.clamav.net (203.178.137.175)...
Downloading daily.cvd [100%]
daily.cvd updated (version: 9672, sigs: 63892, f-level: 43, builder: acab)
Database updated (608927 signatures) from database.clamav.net (IP: 203.178.137.175)

自動起動設定

[root@localhost root]# chkconfig clamd on
[root@localhost root]# chkconfig --list clamd
clamd           0:off   1:off   2:off   3:on    4:on    5:on    6:off

自動スキャンの設定は多くのサイトで紹介されているんで省略させていただきます。

インストールを含め現在エラーは見当たらないので紹介させていただきました。
RedHat系でclamav-updateのインストールについての記事は
見受けられませんでしたけど無事動いてるのかな^^;?

まぁ、サーバー側からまだ何も怒られていないので良しとしましょう(笑

参考元
VineLinuxで自宅サーバー
ARISONサーバー

(追記)
LOGを見たら
ウイルス移動先ディレクトリやバックアップディレクトリを何度もチェックされるという
なんとも困った事が発生してので解決方法を
[root@localhost root]# echo “/var/clamav/virus/” >> clamscan.exclude
[root@localhost root]# echo “/media/BACKUP/” >> clamscan.exclude
これでスキャン対象外にする事ができます。

色々なサイトを見回って
あまり気に入るスクリプトが無かったので
多くのサイトで紹介されているスクリプトを改造して使おうかと考えました。

新たに付け加えた機能としては
# vi /var/log/clamav.log
にLOGを取りながら見つけたウイルスは
# /var/clamav/virus
へ隔離します。
yumコマンドはRedHad系では使えないので
今回clamav-updateもインストールした分けですし
freshclamを実行するように書き換えました。

#!/bin/bash

PATH=/usr/bin:/bin

# lof file
LOG='/var/log/clamav.log'

# clamd update
freshclam > $LOG

# excludeopt setup
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

# virus scan
CLAMSCANTMP=`mktemp`
clamscan -i --move=/var/clamav/virus -r ${excludeopt} / >> $LOG 2>&1
[ ! -z "$(grep FOUND$ $LOG)" ] && 

# report mail send
grep FOUND$ $LOG | mail -s "Virus Found in `hostname`" orbit

grep FOUND$ $CLAMSCANTMP | mail -s “Virus Found in `hostname`” orbit
この設定ではorbitに送信されることになってますのでorbitを好きなユーザーに変更してください。

実行例)
メールで捕まったウイルスリストを送信します。
今回比較的新しいあの猛威を振るったHDDをフォーマットするウイルスも
対応しているか試してみましたところ無事隔離された事が分かります。
WS000000

サーバーに保存されているLOGです。
アップデートされたかも詳しく書かれています。
WS000001

これでコレクションの標本も増えると一石二鳥です^^

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

(Spamcheck Enabled)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)