为 Debian 上的日常系统扫描和电子邮件通知配置 Clamav
在此页
- 安装和配置
- 启用通知并安排扫描
- 测试脚本
今天我们来看看 ClamAV 防病毒软件以及如何使用它来保护您的服务器或桌面。我将向您展示如何配置 ClamAV 以每天扫描所有系统、网站和电子邮件文件,并在检测到病毒时通过电子邮件通知您。对于那些不了解 ClamAV 的人,ClamAV 是一种开源防病毒软件解决方案,可用于所有 Linux 发行版。本指南的要求之一是您的服务器已经有一个可用的邮件服务。
本教程在 Debian 系统上运行良好,但也应该与 Ubuntu 系统兼容。
安装和配置
首先,我们执行安装 Clamav 和发送电子邮件通知的工具的命令。
apt-get update && apt-get install clamav clamav-freshclam heirloom-mailx
确保使用以下命令更新病毒定义:
service ClamAV-freshclam start
默认情况下,ClamAV 将每小时检查一次新病毒定义,如果您想更改此参数,您可以编辑文件 /etc/clamav/freshclam.conf。
nano /etc/clamav/freshclam.conf
并更改以下行:
# Check for new database 24 times a day
Checks 24
到
# Check for new database 1 times a day
Checks 1
在这种情况下,每天只会进行一次检查。我建议你一天离开24次。
要手动更新病毒定义,您可以执行:
freshclam -v
启用通知并安排扫描
在以下脚本中,修改变量 DIRTOSCAN 以指定要扫描的目录。
我们创建文件 /root/clamscan_daily.sh
nano /root/clamscan_daily.sh
然后我们粘贴以下代码:
#!/bin/bash
LOGFILE="/var/log/clamav/clamav-$(date +'%Y-%m-%d').log";
EMAIL_MSG="Please see the log file attached.";
EMAIL_FROM="";
EMAIL_TO="";
DIRTOSCAN="/var/www /var/vmail";
for S in ${DIRTOSCAN}; do
DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1);
echo "Starting a daily scan of "$S" directory.
Amount of data to be scanned is "$DIRSIZE".";
clamscan -ri "$S" >> "$LOGFILE";
# get the value of "Infected lines"
MALWARE=$(tail "$LOGFILE"|grep Infected|cut -d" " -f3);
# if the value is not equal to zero, send an email with the log file attached
if [ "$MALWARE" -ne "0" ];then
# using heirloom-mailx below
echo "$EMAIL_MSG"|mail -a "$LOGFILE" -s "Malware Found" -r "$EMAIL_FROM" "$EMAIL_TO";
fi
done
exit 0
您可以更改 EMAIL_FROM 和 EMAIL_TO 这两个变量以反映您想要的电子邮件地址,并更改要在变量 DIRTOSCAN 中扫描的目录列表。
使用( ctrl+o )保存文件,并更改权限如下:
chmod 0755 /root/clamscan_daily.sh
现在通过在 /etc/cron.daily/ 目录中创建符号链接来启用脚本的每日执行:
ln /root/clamscan_daily.sh /etc/cron.daily/clamscan_daily
现在,您应该能够每天收到一次有关邮件文件或网站中的病毒或恶意软件的电子邮件通知。 ClamAV 还会扫描 PHP 文件的内容以检查是否存在恶意软件或其他潜在的恶意内容。
测试脚本
在此配置中,ClamAV 不会对发现的病毒执行任何操作,它只会报告它们。所以不用担心,不会删除或更改任何内容。要测试脚本,只需运行:
/root/clamscan_daily.sh
命令完成后,将有两种可能的状态:
- Clamav 发现了一些病毒:在这种情况下,您会在收件箱中收到一封电子邮件,其中附有日志。
- Clamav 什么也没发现,或者出了什么问题。在这种情况下,您需要检查日志内容。要检查日志,您应该检查 /var/log/clamav/
我附上一个小日志示例以了解您应该阅读的内容:
Starting a daily scan of /var/www directory. Amount of data to be scanned is 36G.
Mon Jun 15 13:17:14 CEST 2015
----------- SCAN SUMMARY -----------
Known viruses: 3841819
Engine version: 0.98.4
Scanned directories: 47944
Scanned files: 316827
Infected files: 0
Data scanned: 17386.77 MB
Data read: 34921.59 MB (ratio 0.50:1)
Time: 1432.747 sec (23 m 52 s)
Mon Jun 15 13:41:06 CEST 2015
------------------------------------------------------
------------------------------------------------------
Starting a daily scan of /var/vmail directory. Amount of data to be scanned is 7.0G.
Mon Jun 15 13:41:27 CEST 2015
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1386677288.M361286P15524.domain.tld,W=2675,S=2627:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1371451873.M697795P19793.domain.tld,W=5421,S=5353:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1390203133.M981287P17350.domain.tld,W=3223,S=3157:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1386677288.M361285P15524.domain.tld,W=2270,S=2227:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
在这种情况下,ClamAV 在 [email 发现了一些网络钓鱼电子邮件,因此在这种情况下,您也会收到该电子邮件。
就这样!