テクニカルノーツ

Linuxサーバにアンチウィルスソフトをいれてみた

Centos6 にアンチウィルスソフトをいれてみた。

セキュリティ強化の一環としての導入です。アンチウィルスソフトはフリーでマナーな、「Clam AntiVirus」を選択しました。

事前準備

「Clam AntiVirus」は、初期のyumのリポジトリには入っていないので、RPMforgeリポジトリを使用できるようにしておきます。

Clam AntiVirusのインストール

#yum install clamd 
#yum install clamav-devel

Clam AntiVirusの設定

root権限で動作するようにするため、以下の設定を変更

#vi /etc/clamd.conf
User clamav
↓コメントアウトします。
#User clamav

Clam AntiVirusの起動

#service clamd start

Clam AntiVirusの自動起動設定

chkconfig clamd on
chkconfig --list | grep clamd (確認)

ウィルス定義ファイル更新機能の有効化

#vi /etc/freshclam.conf
Example
↓コメントアウトします。
#Example

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

# freshclam
コマンドを実行すると最新化されます。
※以降はcronで日時更新されるようになります。

ウィルススキャンテスト

コマンド実行するとウイルススキャンが実行されます。
# clamscan --infected --remove --recursive
----------- SCAN SUMMARY -----------
Known viruses: 3505561
Engine version: 0.98.3
Scanned directories: 7231
Scanned files: 28336
Infected files: 0 ← 0なので問題なし
Data scanned: 155.20 MB
Data read: 549.99 MB (ratio 0.28:1)
Time: 57.475 sec (0 m 57 s)

■結果
Infected filesが 0なので問題なし
テスト用のウィルスをダウンロードしてやってみる
# mkdir test
# cd test/
# wget http://www.eicar.org/download/eicar.com

# clamscan --infected --remove --recursive /root/test
/root/test/eicar.com: Eicar-Test-Signature FOUND
/root/test/eicar.com: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 3505561
Engine version: 0.98.3
Scanned directories: 1
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 6.675 sec (0 m 6 s)

■結果
Infected filesが 1 で検知
ダウンロードした「eicar.com」が正常に削除されてた。

ウイルスチェック定期実行用にスクリプトを作成

/etc/cron.daily/ に作る事でcronで定期実行させる
#vi /etc/cron.daily/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

# 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

パーミッションを変更

実行権限を付加しておく
#chmod 755 /etc/cron.daily/clamscan

除外指定について

先ほどのスクリプト内に指定した以下のファイルに記載することでウイルスチェックを除外したいフォルダやファイルを指定できます。
/root/clamscan.exclude

追記例
echo "/sys/" >> /root/clamscan.exclude

以上で設定完了です。