zoukankan      html  css  js  c++  java
  • centos7 安装clamav 进行病毒扫描查杀

    linux系统常作为服务器系统,已安全著称,但是随着市场占有量的增大,慢慢的linux病毒也还是增多,而对于病毒,一般都是管理员手动分析进行查杀,除了手动分析查杀病毒外,还可以借助杀毒软件进行查杀,就像windows都有杀毒软件一样,liunx的杀毒软件也是有的,但基本上都是开源的小工具,由于本身linux服务器的病毒就较少,且相对windows更难以入侵,所以专门的Linux杀毒软件较少,专门研发linux杀毒软件或病毒的人就更少了,所以,linux上通常杀毒手段就是一个精通linux安全的系统管理员。

         但是,随着linux服务器在市场上的占用率的飙升,正对linux系统的病毒也开始增加了,所以,我们还是使用更为专业的杀毒软件,这里选择开源的ClamAV 杀毒软件。
    

    PS: 在网上的文档,总是各种步骤一大堆,又要改配置这的那的,其实没必要那么麻烦,直接用yum安装的话,会自动创建很多东西,而我们只是利用其扫描功能,只要可以更新病毒库,可以进行扫描就可以了。下面就是最简单,最小化的使用。不开启clamavd放病毒服务,而是只是当作病毒扫描工具来使用。

    ” ClamAV “

    安装部署与使用:

    更新epel仓库源,yum下载clamav

    $ yum -y install epel-release

    $ yum install –y clamav clamav-update

    更新病毒库

    $ 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
    Content: %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

  • 相关阅读:
    leetcode-----75. 颜色分类
    《面向机器智能的TensorFlow实践》_段菲学习资料
    事务及其ACID特性
    greenplum基本使用操作
    通过java api统计hive库下的所有表的文件个数、文件大小
    深度学习原理与TensorFlow实践_喻俨资料整理
    采集数据到HDFS
    《深入理解TensorFlow架构设计与实现原理》_彭靖田学习材料整理
    Too many open files
    子元素高度100%
  • 原文地址:https://www.cnblogs.com/zhang-cb/p/14965723.html
Copyright © 2011-2022 走看看