# インストール
yum -y install epel-release
yum -y install clamav clamav-data clamav-devel clamav-filesystem clamav-update clamd
# データベース更新
freshclam
# 全ディレクトリスキャン
clamscan --infected --recursive /var
clamscan --infected --recursive /home
clamscan --infected --recursive /opt
# 動作テスト
cd /root
wget http://www.eicar.org/download/eicar.com
# 検知されればOK「Infected files: 1」と出る
clamscan /root
----------- SCAN SUMMARY -----------
Known viruses: 8564213
Engine version: 0.103.3
Scanned directories: 1
Scanned files: 9
Infected files: 1
Data scanned: 0.02 MB
Data read: 0.01 MB (ratio 2.00:1)
Time: 15.678 sec (0 m 15 s)
Start Date: 2021:09:13 16:06:58
End Date: 2021:09:13 16:07:13
[root@TZVPNH01 ~]#
# 確認用ファイルを削除
rm /root/eicar.com
# 設定
vi /etc/clamd.d/scan.conf
LogFile /var/log/clamd.scan ← コメントアウトをはずしてログファイル有効化
LogTime yes ← コメントアウトをはずしてログへ時間を挿入
LogRotate yes ← コメントアウトをはずしてログローテーション有効化
ExcludePath ^/proc/ ← スキャンコメントアウトをはずして除外ディレクトリ設定
ExcludePath ^/sys/ ← スキャンコメントアウトをはずして除外ディレクトリ設定
User root ← コメントアウトを外して、root権限で動作するように
LocalSocket /var/run/clamd.scan/clamd.sock ← ソケットファイル設定
FixStaleSocket yes ← 異常時にソケットファイルを削除
# Clamd起動
systemctl start clamd@scan
systemctl status clamd@scan
systemctl enable clamd@scan
# 動作テスト
cd /root
wget http://www.eicar.org/download/eicar.com
# 検知されればOK「Infected files: 1」と出る
clamdscan /root
# ウイルススキャンスクリプトを作成する
mkdir -p /scripts/
vim /scripts/clamdscan.sh
------------------------------------
#!/bin/bash
# 設定ファイル
CONFIG=/etc/clamd.d/scan.conf
# ログ
CLAMSCANLOG=`mktemp`
# 隔離ディレクトリ
QUARANTINEDIR=/tmp/clamdscan-quarantinedir-$(date +%Y%m%d)
mkdir -p ${QUARANTINEDIR}
# スキャン実行
clamdscan -c ${CONFIG} --move=${QUARANTINEDIR} / > ${CLAMSCANLOG} 2>&1
# ウイルス発見したらrootへメール送信
if [ -z "$(grep FOUND$ ${CLAMSCANLOG})" ];then
rm -fr ${QUARANTINEDIR}
else
grep -A 1 FOUND$ ${CLAMSCANLOG} | mail -s "Virus Found in `hostname` => ${QUARANTINEDIR}" root
sh ./LINE_Notify.sh "ウイルス検知" "Virus Found in `hostname` => ${QUARANTINEDIR}"
fi
------------------------------------
vim /scripts/LINE_Notify.sh
------------------------------------
#!/bin/sh
export PATH="/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin"
export LANG=C
# LINE Notify API のアクセストークン
access_token="xxx"
# 通知タイトル
subject=$1
# 通知本文
body=$2
# LINE Notify 実行
curl -X POST -H "Authorization: Bearer ${access_token}" \
-F "message=${subject}: ${body}" \
https://notify-api.line.me/api/notify
exit 0
------------------------------------
# cron設定(毎日4時に実行)
crontab -e
0 4 * * * sh /scripts/clamdscan.sh
CentOS 7 ウィルススキャンの導入(ClamAV)