トップ  > サーバ設定:運用  > サーバ公開前のセキュリティ対策  > アンチウィルスソフト導入(Clam AntiVirus)

アンチウィルスソフト導入(Clam AntiVirus)  (最終更新日:2011/07/21)

ここでは、フリーウェアのClam AntiVirusをインストールします。

Clam AntiVirusインストール

RPMforge+EPELリポジトリが導入されいない場合こちらを参照してインストールします。

[root@sv ~]# yum install clamd ← Clam AntiVirusインストール

Clam AntiVirus設定

[root@sv ~]# vi /etc/clamd.conf ← clamd設定ファイル編集
User clam
↓
#User clam ← コメントアウトしroot権限で動作するようにする

[root@sv ~]# vi /etc/freshclam.conf ← ウィルス定義更新設定ファイル編集
# Uncomment the following line and replace XY with your country
# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
# You can use db.XY.ipv6.clamav.net for IPv6 connections.
#DatabaseMirror db.XY.clamav.net
	↓
DatabaseMirror db.jp.clamav.net ← ウィルス定義ファイル入手先を日本に設定

Clam AntiVirus起動

[root@sv ~]# /etc/rc.d/init.d/clamd start ← clamd起動
Starting Clam AntiVirus Daemon: 
LibClamAV Warning: **************************************************
LibClamAV Warning: ***  The virus database is older than 7 days!  ***
LibClamAV Warning: ***   Please update it as soon as possible.    ***
LibClamAV Warning: **************************************************
                                                           [  OK  ]

[root@sv ~]# chkconfig clamd on ← clamd自動起動設定

[root@sv ~]# chkconfig --list clamd ← clamd自動起動設定確認
clamd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

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

[root@sv ~]# vi /etc/freshclam.conf ← ウィルス定義更新設定ファイル編集
# Comment or remove the line below.
#Example ← Examleがコメント化していることを確認

[root@sv ~]# freshclam ← ウィルス定義ファイル更新
ClamAV update process started at Wed Jul 20 23:11:24 2011
main.cvd is up to date (version: 53, sigs: 846214, f-level: 53, builder: sven)
WARNING: getfile: daily-13172.cdiff not found on remote server (IP: 27.96.54.66)
WARNING: getpatch: Can't download daily-13172.cdiff from db.jp.clamav.net
WARNING: getfile: daily-13172.cdiff not found on remote server (IP: 219.106.242.51)
WARNING: getpatch: Can't download daily-13172.cdiff from db.jp.clamav.net
WARNING: getfile: daily-13172.cdiff not found on remote server (IP: 219.94.128.99)
WARNING: getpatch: Can't download daily-13172.cdiff from db.jp.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cvd updated (version: 13338, sigs: 159451, f-level: 60, builder: ccordes)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 144, sigs: 41, f-level: 60, builder: edwin)
Database updated (1005706 signatures) from db.jp.clamav.net (IP: 120.29.176.126)
Clamd successfully notified about the update.
以後、ウィルス定義ファイルの更新は、/etc/cron.daily/freshclamにより毎日自動で実行されます。

動作確認

[root@sv ~]# clamscan --infected --remove --recursive ← ウィルススキャンテスト
----------- SCAN SUMMARY -----------
Known viruses: 1004326
Engine version: 0.97.1
Scanned directories: 2
Scanned files: 13
Infected files: 0 ← ウィルスは検知されなかった
Data scanned: 11.98 MB
Data read: 1.00 MB (ratio 11.98:1)
Time: 4.011 sec (0 m 4 s)

テスト用ウィルスファイルのダウンロード(4種類)
[root@sv ~]# wget http://www.eicar.org/download/eicar.com
[root@sv ~]# wget http://www.eicar.org/download/eicar.com.txt
[root@sv ~]# wget http://www.eicar.org/download/eicar_com.zip
[root@sv ~]# wget http://www.eicar.org/download/eicarcom2.zip

[root@sv ~]# clamscan --infected --remove --recursive ← ウィルススキャンテスト(再実行)
/root/eicarcom2.zip: Eicar-Test-Signature FOUND ← ウィルス発見
/root/eicarcom2.zip: Removed. ← ウィルス削除
/root/eicar.com: Eicar-Test-Signature FOUND ← ウィルス発見
/root/eicar.com: Removed. ← ウィルス削除
/root/eicar_com.zip: Eicar-Test-Signature FOUND ← ウィルス発見
/root/eicar_com.zip: Removed. ← ウィルス削除
/root/eicar.com.txt: Eicar-Test-Signature FOUND ← ウィルス発見
/root/eicar.com.txt: Removed. ← ウィルス削除

----------- SCAN SUMMARY -----------
Known viruses: 1004326
Engine version: 0.97.1
Scanned directories: 2
Scanned files: 17
Infected files: 4 ← ウィルスが検知された
Data scanned: 11.98 MB
Data read: 1.00 MB (ratio 11.98:1)
Time: 3.940 sec (0 m 3 s)

ウィルススキャン定期実行設定

[root@sv ~]# vi clamscan ← ウィルススキャン実行スクリプト作成
ここから----------
#!/bin/bash

PATH=/usr/bin:/bin

# clamd update
yum -y update clamd > /dev/null 2>&1

# 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

# signature update
freshclam > /dev/null

# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \

# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP
----------ここまで

[root@sv ~]# chmod +x clamscan ← ウィルススキャン実行スクリプトへ実行権限付加

[root@sv ~]# vi clamscan.exclude ← ウィルススキャン対象外の設定
ここから----------
/backup/backup.tar.bz2
/proc/
/sys/
----------ここまで
スキャンから除外するファイルやディレクトリを任意で設定します。(ディレクトリを設定する場合は末尾に「/」を付けます)

[root@sv ~]# mv clamscan /etc/cron.daily/ ← ウィルススキャン実行スクリプトを毎日自動実行されるディレクトリへ移動

cronにより毎日ウィルススキャンが実行され、検知した場合のみroot宛てにメールが送られてきます。

Clam AntiVirusのインストールディレクトリにテストウィルスがあるので、インストール直後のウィルススキャンでは必ずメールが来ます。