Cent OSにアンチウィルスソフトをインストール

Clam Antivirusのインストール

Clam Antivirusとはオープンソースで開発が行われている、Linux用アンチウィルスソフトです。

Clam Antivirus公式サイト

Linux用のアンチウィルスソフトはいくつかありますが、yumからインストール可能(ただし、公式パッケージではないので設定が必要)なので導入の敷居が低いと思います。

EPELリポジトリを追加する

CentOSにClam AntiVirus をインストールするには、EPEL リポジトリを追加する必要があります。

EPELリポジトリとは、CentOS標準のリポジトリでは提供されていないパッケージを、yumコマンドでインストール可能にするリポジトリのことです。

EPEL以外のサードパーティ製リポジトリには、Remi、RPMForgeがあります。

特徴としては、Remiは最新バージョンのパッケージを入手可能、RPMForgeは大量のパッケージを入手可能と言われているようです。
EPEL は、エンタープライズ向けのリポジトリなので、サードパーティー製リポジトリの中では信頼性の高いそうです。

EPELのインストール

CentOS6の64ビット版にEPELをインストールするには、以下のコマンドを実行します。

rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

このままだと、yum コマンドを実行する度にEPELも使用することになってしまうので、EPELを無効にして、必要時だけ使用するように下記コマンドで設定を変更します。

sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo

epel-release のアップデートを行います。

yum --enablerepo=epel -y update epel-release

今後、EPEL リポジトリを利用する際には、以下のようにEPELリポジトリを使用することを指示してコマンド実行します。

yum --enablerepo=epel コマンド パッケージ名

Clam AntiVirusのインストール

EPELリポジトリの設定が完了したら、Clam AntiVirusを行います。

yum --enablerepo=epel -y install clamd

Clam AntiVirusの設定

Clam AntiVirusをroot権限で実行するように設定を変更します。

vi /etc/clamd.conf

User の先頭に#を付けてコメントアウトします。

#User clam

Clam AntiVirusの起動

以下のコマンドでClam AntiVirusを起動します。

service clamd start
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  ]

データベースの内容が古いと言われたので、アップデートします。

freshclam

また、OS起動時にClam AntiVirusが起動するように設定します。

chkconfig clamd on

ウィルススキャン実行

サンプルのウィルスファイルをダウンロードし、ウィルスをスキャンします。

wget http://www.eicar.org/download/eicar.com
clamscan --infected --remove --recursive

以下、実行結果です。

/root/eicar.com: Eicar-Test-Signature FOUND
/root/eicar.com: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 4161004
Engine version: 0.99
Scanned directories: 3
Scanned files: 10
Infected files: 1
Data scanned: 0.01 MB
Data read: 0.01 MB (ratio 1.50:1)
Time: 8.341 sec (0 m 8 s)

スケジュール指定によるウィルススキャンの設定

シェルスクリプトを作成します。

vi virusscan

以下の内容を貼り付けます。
ウイルスが検知された際は、指定のメールアドレスに送信します。

#!/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

# 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`" from@example.com
rm -f $CLAMSCANTMP

スクリプト作成後、実行権限を与え、スクリプトのテストを行います。

chmod +x virusscan
./virusscan

すると以下のようなWorningが発生する場合があります。

LibClamAV Warning: fmap_readpage: pread fail: asked for 4091 bytes @ offset 5, got 0
WARNING: Can't open file /sys/module/i915/uevent: Permission denied
LibClamAV Warning: fmap_readpage: pread fail: asked for 4094 bytes @ offset 2, got 0

こういった場合、/sys /dev /proc を除外する必要があるため、以下のコマンドを実行し、clamscan.excludeというファイルに除外するフォルダを指定します。

echo "/proc/" >> /root/clamscan.exclude
echo "/sys/" >> /root/clamscan.exclude
echo "/dev/" >> /root/clamscan.exclude

再度、スクリプトを実行し、テスト用ウイルスパターンで、メールが届くことも確認できたら、以下のディレクトリに移動させれば、毎日定期スキャンを行ってくれます。


mv virusscan /etc/cron.daily/

SNSでもご購読できます。

コメントを残す

*