参考:https://centossrv.com/almalinux/clamav.shtml
# dnf install -y epel-release ← EPELリポジトリインストール
# dnf -y install clamav clamav-server-systemd clamav-update clamav-scanner-systemd ← Clam AntiVirusインストール
# gedit /etc/freshclam.conf
#NotifyClamd /path/to/clamd.conf ← #を取って下記に変更
NotifyClamd /etc/clamd.d/scan.conf ← 追加(ウイルス定義ファイル更新をclamdに通知する)
保存後
# freshclam ← ウイルス定義ファイル最新化
前略
bytecode.cvd updated (version: 333, sigs: 92, f-level: 63, builder: awillia2)
ERROR: NotifyClamd: No communication socket specified in /etc/clamd.d/scan.conf
ERROR: Can’t send to clamd: Socket operation on non-socket
# gedit /etc/clamd.d/scan.conf ← Clam AntiVirus設定ファイル編集
#User clamscan ← 行頭に#を追加してコメントアウト(root権限で動作するようにする)
# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
LocalSocket /run/clamd.scan/clamd.sock ← 行頭の#を削除
# systemctl start clamd@scan ← clamd起動
# systemctl enable clamd@scan ← clamd自動起動設定 [root@almalinux ~]
# systemctl start clamav-freshclam ← clamav-freshclam起動 [root@almalinux ~]
# systemctl enable clamav-freshclam ← clamav-freshclam自動起動設定
# clamdscan -c /etc/clamd.d/scan.conf –remove ← ウイルススキャンテスト(ウイルスなしの場合)
/root: OK
———– SCAN SUMMARY ———–
Infected files: 0
Time: 53.727 sec (0 m 53 s)
Start Date: 2023:02:10 09:54:05
End Date: 2023:02:10 09:54:59
# wget http://www.eicar.org/download/eicar.com ← テスト用ウイルスをダウンロード
# wget http://www.eicar.org/download/eicar.com.txt ← 〃
# wget http://www.eicar.org/download/eicar_com.zip ← 〃
# wget http://www.eicar.org/download/eicarcom2.zip ← 〃
# clamdscan -c /etc/clamd.d/scan.conf –remove ← ウイルススキャンテスト(ウイルスありの場合)
/root/eicar.com: Eicar-Test-Signature FOUND ← ウイルス検知 /root/eicar.com: 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/eicarcom2.zip: Eicar-Test-Signature FOUND ← ウイルス検知
/root/eicarcom2.zip: Removed. ← ウイルス削除
———– SCAN SUMMARY ———–
Infected files: 4 ← 4つのウイルスを検知した
Time: 23.913 sec (0 m 23 s)
# gedit /etc/cron.daily/clamdscan ← ウイルススキャン日次実行スクリプト作成 #!/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 -rf ${QUARANTINEDIR}
else
grep -A 1 FOUND$ ${CLAMSCANLOG} | mail -s “Virus Found in `hostname` => ${QUARANTINEDIR}” root
fi
# スキャンログをシスログに出力 cat ${CLAMSCANLOG} | logger -t $(basename ${0})
rm -f ${CLAMSCANLOG}
# chmod +x /etc/cron.daily/clamdscan ← ウイルススキャン日次実行スクリプトへ実行権限付加
# echo ExcludePath ^/tmp/clamdscan-quarantinedir-.*/ >> /etc/clamd.d/scan.conf ← ウイルス隔離ディレクトリをスキャン対象外にする
# echo ExcludePath ^/proc/ >> /etc/clamd.d/scan.conf ← 例として/procディレクトリをスキャン対象外にする
# echo ExcludePath ^/sys/ >> /etc/clamd.d/scan.conf ← 例として/sysディレクトリをスキャン対象外にする
# systemctl restart clamd@scan ← clamd再起動(スキャン除外設定反映)