【Linux】安装杀毒软件(漏洞扫描工具)ClamAV 并配置邮件告警操作指南
创始人
2025-05-31 01:25:05

🍁博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!

文章目录

  • ClamAV简介
  • ClamAV的安装
    • 更新病毒库
    • ClamAV的使用
      • ClamAV的语法
      • ClamAV常用参数
      • ClamAV的用法
        • 扫描病毒
        • 扫描病毒并自动删除病毒
      • 创建日志保存路径
  • 安装配置邮件服务
  • 配置定时扫描和邮件告警
    • 发送邮件告警样式演示:
    • 删除病毒方式
    • 配置定时扫描
  • 附加:升级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-dFILE/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 $IPdata_log=""
while read line
dodata_log+=$line"
" done < /var/log/clamav/clamav$date.log#获取高危病毒的个数 infected_files=`echo $data_log | sed 's/.*\(Infected files: \(.*\)
Data scanned.*\?\)/\2/' | sed 's/Total .*//g ' ` #echo "infected_files为$infected_files" scan_time=`echo $data_log | sed 's/.*\(Start Date: \(.*\)
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" ];thenbody="杀毒软件 ClamAV $scan_time 对您的服务器$ip进行了扫描,发现有$infected_files个高危病毒 :
$data_log"echo $body | mail -s "$(echo -e "$ip \r服务器病毒处理通知-无病毒")" mail1@qq.com elif [ "$infected_files" == "0
" ];thenbody="杀毒软件 ClamAV $scan_time 对您的服务器$ip进行了扫描,发现有$infected_files个高危病毒 :
$data_log"echo $body | mail -s "$(echo -e "$ip \r服务器病毒处理通知-无病毒")" mail1@qq.com elsebody="杀毒软件 ClamAV $scan_time 对您的服务器$ip进行了扫描,发现有$infected_files个高危病毒 :
病毒为:
$data_log
请立即登录服务器处理。"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报错解决方式及相关文章

文章名文章链接🔗
clamav升级问题报错2:Can‘t query current.cvd.clamav.nethttps://liucy.blog.csdn.net/article/details/129284185
【Linux】部署mailx服务及发送邮件告警https://liucy.blog.csdn.net/article/details/129257050
ClamAV病毒扫描之邮件告警脚本https://download.csdn.net/download/liu_chen_yang/87522380

相关内容

热门资讯

今日重大消息“嗨麻互娱有开挂方... 您好:嗨麻互娱这款游戏可以开挂,确实是有挂的,需要软件加微信【99063053】,很多玩家在这款游戏...
重磅.揭秘“微乐刨幺 的确有挂... 您好,微乐刨幺这个游戏其实有挂的,确实是有挂的,需要了解加客服微信【6617969】很多玩家在云梦司...
重大通报“乐乐大厅有没有挂”(... 您好:乐乐大厅这款游戏可以开挂,确实是有挂的,需要软件加微信【2278274】很多玩家在这款游戏中打...
今日重大通报“十三十三水到底有... 您好:十三十三水这款游戏可以开挂,确实是有挂的,需要了解加客服微信【6355786】很多玩家在十三十...
玩家必看“大宝麻将确实可以开挂... 亲.大宝麻将这款游戏是可以开挂的,确实是有挂的,通过添加客服【3671900】很多玩家在这款游戏中怀...