Linux安装杀毒软件(漏洞扫描工具)ClamAV 并配置邮件告警操作指南
Posted A-刘晨阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux安装杀毒软件(漏洞扫描工具)ClamAV 并配置邮件告警操作指南相关的知识,希望对你有一定的参考价值。
🍁博主简介
🏅云计算领域优质创作者
🏅华为云开发者社区专家博主
🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
文章目录
ClamAV简介
ClamAV是Linux操作系统一款免费的杀毒工具,可以通过命令执行病毒库升级、查找病毒和删除病毒。ClamAV属于免费开源产品,支持多种平台,如:Linux/Unix、MAC OS X、Windows、OpenVMS。
ClamAV是基于病毒扫描的命令行工具,但同时也有支持图形界面的ClamTK工具。
ClamAV主要用于邮件服务器扫描邮件。它有多种接口从邮件服务器扫描邮件,支持文件格式有如:ZIP、RAR、TAR、GZIP、BZIP2、html、DOC、PDF,、SIS CHM、RTF等等。
ClamAV可以自动升级病毒库,还可以从共享库中运行。
clamav 有两个命令:clamdscan、clamscan:
- clamscan 命令:通用,不依赖服务,命令参数较多,执行速度稍慢
- clamdscan 命令:是一个搭配clamd常驻服务的扫毒工具,功能非常类似clamscan,执行效率较高,但是可用的参数较少(因为部分功能是由 clamd 控制的)。不用带 -r ,默认会递归扫描子目录
ClamAV的安装
centos安装方式:
#添加扩展源
yum -y install epel-release
yum -y install clamav clamavd clamav-update
ubuntu安装方式:
#升级apt源
apt update
apt -y install clamav clamtk clamav-daemon clamdscan device-tree-compiler
更新病毒库
freshclam
这样就是更新成功了;
如遇到报错,可参考报错: clamav升级问题报错2:Can‘t query current.cvd.clamav.net
ClamAV的使用
ClamAV的语法
clamscan [选项/参数/简便参数] [文件/目录]
ClamAV常用参数
参数 | 简便参数 | 说明 |
---|---|---|
–help | -h | 显示帮助页面 |
–version | -V | 查看版本号 |
–verbose | -v | 查看详细信息 |
–archive verbose | -a | 在扫描的存档中显示文件名 |
–recursive[=yes/no(*)] | -r | 递归扫描子目录,后面需跟目录 |
–infected | -i | 仅打印已感染的文件 |
–log=FILE | -l | 将扫描报告保存到文件中,后面需跟文件名 |
–file-list=FILE | -f | 从file扫描文件,后面需跟文件名 |
–database=FILE/DIR | -d | FILE/DIR从FILE加载病毒数据库或从DIR加载所有支持的数据库文件 |
–allmatch[=yes/no(*)] | -z | 找到匹配项后继续在文件中扫描 |
–quiet | 仅输出错误消息 | |
–tempdir=DIRECTORY | 在目录中创建临时文件 | |
–leave-temps[=yes/no(*)] | 不删除临时文件 | |
–gen-json[=yes/no(*)] | 生成扫描文件的json描述并打印 | |
–remove[=yes/no(*)] | 删除受感染的文件,小心使用 | |
–max-dir-recursion=num | 目录深度,=5是扫描最高5层目录结束 |
ClamAV的用法
扫描病毒
#对/data/目录扫描,并将扫描的日志放到该文件中
clamscan -i -r /data/ -l ./clamav.log
- -i 只显示被感染的文件
- -r 扫描目录,后面需跟目录
- -l 保存日志文件的位置,后面需跟文件名
注意:上述命令仅扫描病毒,不会对病毒文件进行删除,需手动删除。目录越大扫描速度越慢。
扫描结果如下:
这种的是没有病毒;Infected files 显示0,则没有扫到病毒,1或其他则扫出了病毒。
Known viruses #已知病毒
Engine version #发动机版本
Scanned directories #扫描的目录
Scanned files #扫描的文件
Infected files #受感染的文件
Data scanned #扫描数据
Data read #数据读取
Time #时间
Start Date #开始日期:
End Date #结束日期
扫描病毒并自动删除病毒
#对/data/目录扫描,并将扫描的日志放到该文件中,有病毒则自动删除
clamscan -i -r /data/ --remove=yes -l ./clamav.log
删除完可以再去哪个目录看看。
创建日志保存路径
后续可以将病毒扫描结果保存到/var/log/clamav/ 文件夹下。
mkdir -p /var/log/clamav/
扫描/home/下是否有病毒;目录越大扫描速度越慢。
clamscan -i -r /home/ -l /var/log/clamav/clamav.log
安装配置邮件服务
安装邮件服务可参考: 【Linux】部署mailx服务及发送邮件告警
配置定时扫描和邮件告警
ClamAV扫描邮件告警脚本可以选择下载也可以选择直接复制,不下载的希望多一个浏览量,谢谢蟹蟹;
ClamAV扫描邮件告警脚本:ClamAV病毒扫描之邮件告警脚本
ClamAV扫描邮件告警脚本:
ClamAV病毒扫描之邮件告警脚本,里面内容可根据自己的情况自行修改。
自行修改的内容有:
mail 邮件收件人
要扫描的目录
日志存储路径
ip是需要要修改的,每个人的ip都不一样就需要手动修改一下,就在大概16行获取ip的哪个地方
还有就是最后的if判断那边也要记得修改自己的邮件收件人,判断三个都要改。
#!/bin/bash
freshclam ##病毒库更新
mail_A=(mail1@qq.com,mail2@qq.com,mail3@163.com) ## 邮件收件人,可批量
date=`date +%Y%m%d-%H:%M:%S` ##获取当前时间
##扫描/目录 结果打印到/var/log/clamav/clamav$date.log
clamscan -r -i / -l /var/log/clamav/clamav$date.log
#删除WARING开头的内容
sed -i '/^WARNING/d' /var/log/clamav/clamav$date.log
#删除第一行到第四行的内容
sed -i '1,3d' /var/log/clamav/clamav$date.log
##当前服务器ip 这个自行配>置,需要手动输入自己ip的最后一段或者全段
ip=`ip addr | awk '/^[0-9]+: / ; /inet/ print $2' | awk -F "/" 'print $1' | grep 210`
#echo $IP
data_log=""
while read line
do
data_log+=$line"<br>"
done < /var/log/clamav/clamav$date.log
#获取高危病毒的个数
infected_files=`echo $data_log | sed 's/.*\\(Infected files: \\(.*\\)<br>Data scanned.*\\?\\)/\\2/' | sed 's/Total .*//g ' `
#echo "infected_files为$infected_files"
scan_time=`echo $data_log | sed 's/.*\\(Start Date: \\(.*\\)<br>End Date.*\\?\\)/\\2/'`
#echo "scan_time为$scan_time"
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/Total errors/错误总数
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/结束时间
#echo "data_log为$data_log"
if [ "$infected_files" == "0" ];then
body="杀毒软件 ClamAV $scan_time 对您的服务器$ip进行了扫描,发现有$infected_files个高危病毒 :<br> $data_log"
echo $body | mail -s "$(echo -e "$ip \\r服务器病毒处理通知-无病毒")" mail1@qq.com
elif [ "$infected_files" == "0<br>" ];then
body="杀毒软件 ClamAV $scan_time 对您的服务器$ip进行了扫描,发现有$infected_files个高危病毒 :<br> $data_log"
echo $body | mail -s "$(echo -e "$ip \\r服务器病毒处理通知-无病毒")" mail1@qq.com
else
body="杀毒软件 ClamAV $scan_time 对您的服务器$ip进行了扫描,发现有$infected_files个高危病毒 :<br>病毒为:<br> $data_log <br> 请立即登录服务器处理。"
echo $body | mail -s "$(echo -e "$ip \\r服务器病毒处理通知-有$infected_files 个高危病毒")" mail1@qq.com
fi
# echo $body | mail -s "$(echo -e "$ip \\r服务器病毒处理通知\\nContent-Type: text/html;charset=utf-7")" 2162059863@qq.com
#$mail_A ##收件人地址
注:该脚本只适用于clamscan命令,并不适用于clamdscan命令。
发送邮件有一个弊端,在发送邮件到qq邮箱中时,网页版qq邮箱不会解析换行符,手机上可以下载一个qq邮箱,手机版的可以解析;
发送邮件告警样式演示:
显示内容:
删除病毒方式
方式一:扫描到病毒可以手动删除,进入病毒目录直接删除就可以;
方式二:也可以找到病毒目录,再次执行扫描病毒命令并指定病毒所在目录,clamscan -i -r /data/ --remove=yes -l ./clamav.log
来实现删除病毒;
配置定时扫描
配置定时扫描也就是设置周期性计划任务
vim /etc/crontab
#以用户root身份定时执行脚本,sh为执行命令,/data/----为脚本绝对路径;每天凌晨4点扫描一次
0 4 * * * root /bin/sh /data/clamav/clamav.sh
配置完成之后保存退出即可。
附加:升级ClamAV报错解决方式及相关文章
Linux下病毒扫描工具 - clamav
YUM在线安装
yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd -y
更新病毒库
freshclam --verbose #在线升级病毒库 cd /usr/local/clamav/update wget http://db.local.clamav.net/daily.cvd wget http://db.local.clamav.net/main.cvd wget http://db.local.clamav.net/bytecode.cvd #手动下载病毒库文件 rm /var/lib/clamav/mirrors.dat freshclam #“Update failed. Your network may be down or none of the mirrors listed in freshclam.conf is working” #删除掉旧的镜像地址文件,再手动更新一次病毒库
扫描被感染文件
clamscan -r /etc/ >/tmp/etc.log
#扫描配置目录并将日志保存到home下
clamscan -r --bell -i / >/tmp/all.log
#全盘扫描显示有问题的结果,bell参数关闭屏显
grep Infected /tmp/all.log
#查看被感染文件数量
grep -i found /tmp/all.log
#查看被感染的文件
以上图片显示redis被感染,需要删除被感染文件。
启用自动更新病毒库
sed -i ‘$d‘ /etc/sysconfig/freshclam #默认禁止自动更新,因此去除最后一行 tail -1 /etc/cron.d/clamav-update #查看自动更新计划任务
修改配置,开启服务
sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
echo ‘LocalSocket /var/run/clamd.scan/clamd.sock‘ >> /etc/clamd.d/scan.conf
#替换和追加配置
systemctl enable clamd@scan
systemctl start clamd@scan
#激活开机启动,启动服务
virscan 单文件病毒检测
[http://r.virscan.org](http://r.virscan.org "http://r.virscan.org")
以上是关于Linux安装杀毒软件(漏洞扫描工具)ClamAV 并配置邮件告警操作指南的主要内容,如果未能解决你的问题,请参考以下文章