アンチウイルスソフト導入(Clam AntiVirus)

最終更新日: 2017.02.18

<<トップページ <<新着情報 <<リンク集 <<サイト内検索 <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

Linux用のフリーのアンチウイルスソフトであるClam AntiVirusを導入する。

※CentOS7はこちら


■Clam AntiVirusインストール

EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する

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

■ウイルス定義ファイル最新化

[root@centos ~]# vi /etc/freshclam.conf ← ウイルス定義ファイル更新設定ファイル編集
# Comment or remove the line below.
#Example ← 行頭に#を追加してコメントアウト(ウイルス定義ファイル更新機能の有効化)

# Send the RELOAD command to clamd.
# Default: no
#NotifyClamd /path/to/clamd.conf
NotifyClamd /etc/clamd.conf ← 追加(ウイルス定義ファイル更新をclamdに通知する)

[root@centos ~]# freshclam ← ウイルス定義ファイル最新化
ClamAV update process started at Tue Nov 22 00:07:58 2005
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.87 Recommended version: 0.87.1
DON'T PANIC! Read http://www.clamav.net/faq.html
main.cvd is up to date (version: 34, sigs: 39625, f-level: 5, builder: tkojm)
Downloading daily.cvd [*]
daily.cvd updated (version: 1181, sigs: 1633, f-level: 6, builder: tomek)
Database updated (41258 signatures) from db.jp.clamav.net (IP: 59.87.0.36)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.sock: No such file or directory
※以後のウイルス定義ファイルのアップデートは、/etc/cron.daily/freshclamにより毎日自動で行われる

■Clam AntiVirus設定

[root@centos ~]# vi /etc/clamd.conf ← clamd設定ファイル編集
# Run as another user (clamd must be started by root for this option to work)
# Default: don't drop privileges
#User clamav ← 行頭に#を追加(root権限で動作するようにする)


■Clam AntiVirus起動

[root@centos ~]# /etc/rc.d/init.d/clamd start ← clamd起動

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


■ウイルススキャンテスト

[root@centos ~]# clamscan --infected --remove --recursive ← ウイルススキャンテスト(ウイルスなしの場合)

----------- SCAN SUMMARY -----------
Known viruses: 116966
Engine version: 0.90.2
Scanned directories: 5
Scanned files: 35
Infected files: 0 ← ウイルスは検知されなかった
Data scanned: 0.24 MB
Time: 31.298 sec (0 m 31 s)

[root@centos ~]# wget http://www.eicar.org/download/eicar.com ← テスト用ウイルスをダウンロード
[root@centos ~]# wget http://www.eicar.org/download/eicar.com.txt ← 〃
[root@centos ~]# wget http://www.eicar.org/download/eicar_com.zip ← 〃
[root@centos ~]# wget http://www.eicar.org/download/eicarcom2.zip ← 〃

[root@centos ~]# clamscan --infected --remove --recursive ← ウイルススキャンテスト(ウイルスありの場合)
/root/eicarcom2.zip: Eicar-Test-Signature FOUND ← ウイルス検知
/root/eicarcom2.zip: Removed ← ウイルス削除
/root/eicar.com.txt: Eicar-Test-Signature FOUND ← ウイルス検知
/root/eicar.com.txt: Removed ← ウイルス削除
/root/eicar_com.zip: Eicar-Test-Signature FOUND ← ウイルス検知
/root/eicar_com.zip: Removed ← ウイルス削除
/root/eicar.com: Eicar-Test-Signature FOUND ← ウイルス検知
/root/eicar.com: Removed ← ウイルス削除

----------- SCAN SUMMARY -----------
Known viruses: 116966
Engine version: 0.90.2
Scanned directories: 5
Scanned files: 39
Infected files: 4 ← 4つのウイルスを検知した
Data scanned: 0.24 MB
Time: 29.437 sec (0 m 29 s)

■ウイルススキャン定期自動実行設定

(1)ウイルススキャン定期自動実行設定
[root@centos ~]# vi virusscan ← ウイルススキャン実行スクリプト作成
#!/bin/bash

PATH=/usr/bin:/bin

# 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`
MOVETO=`mktemp -d`
clamscan --recursive ${excludeopt} --move=${MOVETO} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \

# report mail send
grep -A 1 FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname` => ${MOVETO}" root
rm -f $CLAMSCANTMP

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

[root@centos ~]# echo "/backup/backup.tar.bz2" >> clamscan.exclude ← 例として/backup/backup.tar.bz2をスキャン対象外にする

[root@centos ~]# echo "/proc/" >> clamscan.exclude ← 例として/procディレクトリをスキャン対象外にする

[root@centos ~]# echo "/sys/" >> clamscan.exclude ← 例として/sysディレクトリをスキャン対象外にする
※ディレクトリを除外する場合は末尾に「/」を付加すること

[root@centos ~]# mv virusscan /etc/cron.daily/ ← ウイルススキャン実行スクリプトを毎日自動実行されるディレクトリへ移動
これで、毎日定期的に全ファイルのウイルススキャンが行われ、ウイルスを検知した場合のみroot宛にメールが送られてくるようになる。
※Clam AntiVirusインストールディレクトリにテスト用ウイルスがあるので、インストール後最初の全体スキャンでは必ずウイルス検知メールがくる

(2)ウイルス検知後の対応
ウイルス検知メールが送られてきた場合、内容を確認し、ウイルスであると確認できた場合、当該ファイルを退避先(ウイルス検知メール件名に記載)から削除する。
ウイルスでない(ClamAVによる誤検知)と確認できた場合、当該ファイルを退避先から復元し、次回以降、誤検知しないように当該ファイルをスキャン対象外リスト(clamscan.exclude)に追加する。



▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします