今天我们来看看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="clamav-daily@example.com"; EMAIL_TO="username@example.com"; 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已经在info@domain.tld
上发现了一些网络钓鱼邮件,所以在这种情况下,你也会收到这封邮件。
就这样!