【操作系统----Linux】杀毒工具Clamav -- yum安装

卸载旧版本

列出所有相关的安装

rpm -qa|grep clam

逐一卸载

rpm -e 列表中要卸载的组件

一、更新epel仓库源,yum下载clamav

yum -y install epel-release
yum install –y clamav clamav-update

二、更新病毒库(下载过程很慢)

查看病毒库版本

clamdscan -V

2.1自动下载

freshclam 或 freshclam --verbose

 2.2手动方式:

去官网下载最新的病毒库文件http://www.clamav.net/download.html

vim /etc/freshclam.conf

 

DatabaseDirectory /var/lib/clamav的注释放开,然后在系统中创建此文件目录

官网下载最新的三个 main.cvd | daily.cvd | bytecode.cvd 文件,之后将这三个文件保存到刚才创建的 /var/lib/clamav路径下,这是再次运行跟新病毒库命令freshclam 会提示病毒库已更新到最近,接下来就可以执行扫描了。

三、扫描病毒

clamscan –ri / -l clamscan.log --remove

这里递归扫描根目录 / ,发现感染文件立即删除

说明:

-r 递归扫面子文件

-i 只显示被感染的文件

-l 指定日志文件

 --remove 删除被感染文件

 --move隔离被感染文件

四、结果

在扫描完成后,会打印出扫描结果,如:

----------- SCAN SUMMARY -----------

Known viruses: 6490986

Engine version: 0.99.4

Scanned directories: 20172

Scanned files: 72378

Infected files: 0       # 被感染的文件数

Total errors: 23809

Data scanned: 4067.18 MB

Data read: 4244.65 MB (ratio 0.96:1)

Time: 1343.190 sec (22 m 23 s)

 这样一次病毒扫描就完成了,然后我们可以将其作为计划任务,每天深夜进行病毒扫描,并打印日志,然后如果扫描到了病毒,就发送邮件给管理员,然后管理员手动进行一定的病毒分析然后再杀毒。

五、将扫描程序写成脚本

import smtplib
from email.mime.text import MIMEText
from email.header import Header
import socket
import os
import re
 
 
class ClamAV(object):
    ## 这里填入自己的远程smtp服务。利用第三方smtp服务进行邮件发送。
    def __init__(self):
        self.HOST = "smtp.exmail.qq.com"  
        self.PORT = "465"
        self.USER = 'xxx@xxxx.com'
        self.PASSWD = 'xxxxxx'
        self.TO = "xxxxxxxxx@xx.com"
 
    def clamscan(self):
        os.system('freshclam')
        os.system('clamscan -ri /tmp > /tmp/clamscan.log')
        with open('/tmp/clamscan.log', 'r', encoding='utf-8') as f:
            a = f.read()
 
        result = re.findall('Infected files:.*', a)
        if result:
            number = result[0].split(':')[1].strip()
            if number != '0':
                self.sendmail('Infected files:%s。有文件感染,请手动检查,查杀病毒。' %number)
        else:
            self.sendmail('扫描脚本有误,请检查')
 
    def sendmail(self,content):
        ipaddr = socket.gethostbyname(socket.gethostname())
 
        smtp = smtplib.SMTP_SSL(self.HOST, self.PORT)
        smtp.ehlo()
        smtp.login(self.USER, self.PASSWD)
 
        TEXT = """IP: %s\nContent: %s""" %(ipaddr,content)
        message = MIMEText(TEXT, 'plain', 'utf-8')
        message['From'] = self.USER
        message['To'] = self.TO
        message['Subject'] = Header('Clamscan Result Warning', 'utf-8')
 
        smtp.sendmail(self.USER, self.TO, message.as_string())
        smtp.quit()
 
 
clam = ClamAV()
clam.clamscan()

设为定时任务,每天凌晨4点执行扫描

vim /etc/crontab

内容:

00 4 * * * root {local-path}/clamsacn.py

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值