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

毎日定期的に全ファイルのウィルススキャンを行い、ウィルスを検知した場合のみroot宛にメールが送られるよう設定する。

# Clam AntiVirusインストール
yum -y install clamd

# clamd設定ファイル編集(root権限で動作するようにする)
vi /etc/clamd.conf
User clamav
↓
#User clamav

# ウィルスデータベース更新設定ファイル編集(ウィルスデータベース入手元を日本に変更)
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.
#DatabaseMirror db.XY.clamav.net
DatabaseMirror db.jp.clamav.net

# clamd起動
/etc/rc.d/init.d/clamd start

# clamd自動起動設定
chkconfig clamd on

# clamd自動起動設定確認
chkconfig --list clamd

# ウィルス定義ファイル更新機能の有効化
sed -i 's/Example/#Example/g' /etc/freshclam.conf

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

# ウィルススキャンテスト
clamscan --infected --remove --recursive

# ウィルススキャン実行スクリプト作成
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
# ウィルススキャン実行スクリプトへ実行権限付加 chmod +x clamscan # ウィルススキャン実行スクリプトを毎日自動実行されるディレクトリへ移動 mv clamscan /etc/cron.daily/