1 ClamAV介绍
ClamAV是Linux操作系统一款免费的杀毒工具,通过命令执行病毒库升级、查找病毒和删除病毒。
官方参考文档:Installing - ClamAV Documentation
官方下载地址:https://www.clamav.net/downloads
2 安装ClamAV
在CentOS操作系统上安装ClamAV,请分别执行以下命令:
[root@icoolkj ~]# yum install epel-release -y
[root@icoolkj ~]# yum install clamav clamavd clamav-update -y
在Ubuntu操作系统上安装ClamAV,请分别执行以下命令:
[root@icoolkj ~]# apt update
[root@icoolkj ~]# apt install clamav clamav-daemon -y
3 运行ClamAV
安装完成后,我们可以立即扫描一次病毒,首先运行以下命令更新病毒库:
[root@icoolkj ~]# freshclam
ClamAV update process started at Tue Mar 28 13:56:35 2023
daily database available for download (remote version: 26856)
Time: 17.5s, ETA: 0.0s [========================>] 58.15MiB/58.15MiB
Testing database: '/var/lib/clamav/tmp.d2ef527363/clamav-931039071b1f61662b25cfe128d1dc73.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 26856, sigs: 2027501, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
Time: 1m 01s, ETA: 0.0s [========================>] 162.58MiB/162.58MiBB
Testing database: '/var/lib/clamav/tmp.d2ef527363/clamav-40f50edda97b99acd0ef989bc173c978.tmp-main.cvd' ...
Database test passed.
main.cvd updated (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode database available for download (remote version: 334)
Time: 5.7s, ETA: 0.0s [========================>] 285.12KiB/285.12KiB
Testing database: '/var/lib/clamav/tmp.d2ef527363/clamav-f855815232c8934d374c0f3f6f463a53.tmp-bytecode.cvd' ...
Database test passed.
bytecode.cvd updated (version: 334, sigs: 91, f-level: 90, builder: anvilleg)
[root@icoolkj ~]#
运行以下命令扫描一次病毒:
[root@icoolkj ~]# clamscan -r -i /tmp -l /var/log/clamav.log----------- SCAN SUMMARY -----------
Known viruses: 8659426
Engine version: 0.103.8
Scanned directories: 9
Scanned files: 0
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 23.018 sec (0 m 23 s)
Start Date: 2023:03:28 14:00:02
End Date: 2023:03:28 14:00:25
[root@icoolkj ~]#
参数介绍:
-r 扫描目录
/tmp 设置扫描路径为“/tmp” ,可改成其他路径比如根目录“/”
–i 只显示被感染的文件
-l 保存日志文件的位置
上述命令即对/tmp路径扫描一次病毒。
注意:上述命令仅扫描病毒,不会对病毒文件进行删除,需手动删除。
如果扫到病毒,“Infected files: 0”的值就标识病毒文件个数,并在上方列出了病毒文件的位置和病毒名称。
4 创建日志保存路径
请执行命令创建日志保存路径:
[root@icoolkj ~]# mkdir /var/log/clamav/
后续脚本将病毒扫描结果保存到/var/log/clamav/ 文件夹下。
5 配置发邮件功能
5.1 安装mail邮件工具
首先安装mail,mail是linux的邮件工具。
在CentOS操作系统上安装mail,请执行
[root@icoolkj ~]# yum install mailx -y
在Ubuntu操作系统上安装mail,请执行:
[root@icoolkj ~]# apt update
[root@icoolkj ~]# apt install mailutils -y
5.2 配置邮箱登录发件信息
添加邮箱登录发件信息,以qq邮箱为例:
cat >>/etc/mail.rc <<EOF
set smtp=smtps://smtp.qq.com:465 #配置使用qq邮箱发送邮件
set smtp-auth=login #认证形式
set smtp-auth-user=10588@qq.com #邮箱名
set from=10588@qq.com #配置发件人
set smtp-auth-password=eeeeeeeeeeeeeee #授权码
set nss-config-dir=/etc/pki/nssdb/ #加密方式配置
set smtp-user-starttls #加密方式配置
set ssl-verify=ignore #加密方式配置
EOF
qq邮箱需要手动开启SMTP服务,并获取授权码,
请运行下方命令,测试发邮件是否正常。
[root@icoolkj ~]# echo "测试邮件" | mail -s "测试标题" 10588@qq.com
其中“10588@qq.com”请修改为您自己的邮箱,回车执行后,请登录邮箱查看是否收到测试邮件。
5.3 发送QQ邮件报提示:Error in certificate证书不被信任
1、修改配置/etc/mail.rc
把 set ssl-verify=ignore 改为 set ssl-verify=strict ##忽略证书警告 改成 严格按照证书要求
2、获取邮件服务器证书
echo -n " " | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFIICATE-/p' > /etc/pki/nssdb/qq.crt
3、把证书添加到受信任表
certutil -A -n 'qq' -t "P,P,P" -d /etc/pki/nssdb -i /etc/pki/nssdb/qq.crt
6 配置定时扫描和邮件告警
6.1 编辑脚本
新建脚本文件 scan.sh 并编辑,内容如下 :
#!/bin/bash
freshclam
date=`date +%Y%m%d_%H%M%S`
clamscan -r -i / -l /home/clamav/log/clamav.$date.log
:<<!
clamscan -r -i /tmp -l /home/chamav/log/clamav.$date.log
参数介绍:
-r 扫描目录;
/tmp 设置扫描路径为“/tmp”,可改成其他路径比如根目录“/”;
–i 只显示被感染的文件;
-l 保存日志文件的位置;
上述命令即对/tmp路径扫描一次病毒。
注意:上述命令仅扫描病毒,不会对病毒文件进行删除,需手动删除。
!
ip=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/,"\\1", "g", $2)}')
data_log=""
while read line
do
data_log+=$line"<br>"
done < /home/clamav/log/clamav.$date.log
infected_files=`echo $data_log | sed 's/.*\(Infected files:\(.*\)<br>Data scanned.*\?\)/\2/'`
scan_time=`echo $data_log | sed 's/.*\(Start Date:\(.*\)<br>End Date.*\?\)/\2/'`
if [ $infected_files -gt 0 ]
then
data_log=${data_log/SCAN SUMMARY/扫描结果}
data_log=${data_log/Known viruses/病毒库数量}
data_log=${data_log/Engine version/引警版本}
data_log=${data_log/Scanned directories/已扫描目录}
data_log=${data_log/Scanned files/已扫描文件}
data_log=${data_log/Infected files/已发现病毒文件}
data_log=${data_log/Data scanned/已扫描数据}
data_log=${data_log/Data read/读取数据}
data_log=${data_log/Time/扫描时长}
data_log=${data_log/start Date/开始时间}
data_log=${data_log/End Date/结束时间}
body="杀毒软件ClamAV于 $scan_time 对您的服务器 $ip 进行了扫描,发现有 $infected_files 个高危病毒:$data_log<br>请立即登录服务器处理。"
echo $body | mail -s "$(echo -e "$ip 服务器病毒处理通知-$date\nContent-Type: text/html; charset=utf-8")" 10588@qq.com
fi
脚本末尾的“10588@qq.com”请修改为您自己的邮箱。
脚本的内容为更新病毒库、扫描病毒,如果扫到病毒,给您发送邮件。
6.2 配置定时计划
随后我们要编辑系统的定时计划任务,定时执行上述脚本。
cron是linux用来定时执行任务的工具,配置文件路径etc/crontab,添加以下内容:
上述内容表示每天8点,以用户root身份定时执行脚本。
添加完成后,请执行下方命令,启动cron,并设置开机自动启动cron。
[root@icoolkj ~]# service crond start
[root@icoolkj ~]# chkconfig crond on
到此,杀毒软件ClamAV的安装及邮件告警功能配置完成。