美文网首页linux运维Linux的杀毒软件
【ClamAV】Linux系统开源杀毒软件ClamAV的安装

【ClamAV】Linux系统开源杀毒软件ClamAV的安装

作者: Catke | 来源:发表于2019-11-14 11:24 被阅读0次

    Linux作为一个开源的操作系统,很多人普遍认为没有病毒,所以很多企业的服务器要么只使用了物理防火墙或软件防火墙,要么为了性能直接裸奔,其实Linux系统的病毒较少,但是并不意味着病毒免疫,尤其是对于诸如邮件或者归档文件中夹杂的病毒往往更加难以防范,况且很多企业的服务器都是基于Linux,所以为了防范不法分子的入侵,我们还是要安装杀毒软件,并且不定期进行查杀病毒

    目录

    • 一、安装环境
    • 二、搭建步骤
    • 三、常用命令总结
    • 四、遇到的问题
    • 五、定时查杀病毒
    • 六、参考并致谢

    一、安装环境

    操作系统:CentOS 7
    应用软件:ClamAV

    二、搭建步骤

    yum方式和RPM方式任选一种

    1、yum方式安装
    1)使用以下命令将依赖和主安装包都下载安装上
    [root@localhost ~]# yum install clamav  clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd pcre* gcc zlib zlib-devel libssl-devel libssl openssl
    

    说明: 这种方法安装吼,病毒库默认地址是:/var/lib/clamav

    此时ClamAV已经安装完成

    2、rpm方式安装
    1)下载软件包
    #官网地址:
        http://www.clamav.net/downloads   
    #Linux中下载地址:
        wget http://www.clamav.net/downloads/production/clamav-0.100.0.tar.gz
    #参考文档:
        https://github.com/vrtadmin/clamav-faq/raw/master/manual/clamdoc.pdf
    
    2)创建clamav用户和存放病毒库目录
    # clamav用户和用户组
    [root@localhost ~]# groupadd clamav && useradd -g clamav clamav && id clamav
    # 日志存放目录
    [root@localhost ~]# mkdir -p /usr/local/clamav/logs     
    [root@localhost ~]# touch /usr/local/clamav/logs/clamd.log
    [root@localhost ~]# touch /usr/local/clamav/logs/freshclam.log
    [root@localhost ~]# chown clamav.clamav /usr/local/clamav/logs/clamd.log
    [root@localhost ~]# chown clamav.clamav /usr/local/clamav/logs/freshclam.log
    
    # 病毒存放目录
    [root@localhost ~]# mkdir -p /usr/local/clamav/updata
    [root@localhost ~]# chown -R root.clamav /usr/local/clamav/
    [root@localhost ~]# chown -R clamav.clamav /usr/local/clamav/updata/
    
    3)解压安装包

    包名的XXXX只是代表版本号,命令仅供参考

    [root@localhost ~]# tar zxvf clamav-xxxxx.tar.gz
    
    4)安装依赖
    [root@localhost ~]# yum install gcc openssl openssl-devel -y
    
    5)编译安装
    [root@localhost ~]# cd clamav-xxxxx/  
    [root@localhost ~]# ./configure --prefix=/usr/local/clamav --with-pcre  
    [root@localhost ~]# make && make install 
    [root@localhost ~]#  echo $?
    

    此时ClamAV已经安装完成

    3、修改配置文件clam.conf

    如果是yum方式安装的话,配置文件都会在/etc目录下,不用做以下复制模板操作,同时yum方式安装的配置文件名称是scan.conf

    # rpm安装方式需要复制模板配置文件
    [root@localhost ~]# cd /usr/local/clamav/etc  
    [root@localhost ~]# cp clamd.conf.sample clamd.conf  
    [root@localhost ~]# cp freshclam.conf.sample freshclam.conf
    

    打开clamd.conf配置文件

    [root@localhost ~]# vim clamd.conf 
    或者  
    [root@localhost ~]# vim scan.conf
    

    注释掉#Example
    并打开配置(路径可根据需要修改,这里使用yum安装的默认路径)

    LogFile /var/log/clamd.scan    
    PidFile /var/run/clamd.scan/clamd.pid     
    DatabaseDirectory /var/lib/clamav
    

    然后找到以下配置进行修改:
    一般情况下只是去掉注释的更改,使用yum方式安装的话配置文件中的配置基本都是可用的

    DatabaseDirectory /var/lib/clamav  
    
    # 这里定义服务器类型(本地或者TCP,如果定义为使用本地socket则将此注释打开)
    LocalSocket /var/run/clamd.scan/clamd.sock
    
    # 这里定义服务器类型(本地或者TCP,如果定义为使用TCP socket则将此注释打开)
    TCPSocket 3310  
    
    TCPAddr 127.0.0.1
    

    4、修改配置文件freshclam.conf

    [root@localhost ~]# vim /etc/freshclam.conf
    

    同样将Excemple注释掉

    三、常用命令总结

    1、启动、关闭、查看状态
    # 启动服务
    [root@localhost ~]# systemctl start clamd@scan.server  
    # 关闭服务  
    [root@localhost ~]# systemctl stop clamd@scan.server  
    # 查看服务状态
    [root@localhost ~]# systemctl status clamd@scan.server 
    
    2、扫描杀毒
    1、clamdscan命令
    • 一般是使用yum安装才能使用,需要启动clamd服务,执行速度较快,默认会递归扫描子目录
    [root@localhost ~]# clamdscan /home
    
    2、clamscan命令
    • 通用,不依赖服务(不需要开启服务也能用),命令参数较多,执行速度慢
    -r/--recursive[=yes/no]             所有文件
    --log=FILE/-l FILE        增加扫描报告
    --move [路径]          移动病毒文件至..
    --remove [路径]              删除病毒文件
    --quiet                  只输出错误消息
    --infected/-i                       只输出感染文件
    --suppress-ok-results/-o                   跳过扫描OK的文件
    --bell                         扫描到病毒文件发出警报声音
    --unzip(unrar)                 解压压缩文件扫描
    

    例:

    clamscan -ri --log=/home/clamav.log /home
    

    扫描结果如下

    2、更新病毒库
    1、 手动更病毒库
    [root@localhost ~]# freshclam
    
    2、自动更新病毒库

    freshclam命令通过文件/etc/cron.d/clamav-update来运行,改文件内容如下:


    但默认情况下是禁止了自动更新功能,需要移除文件/etc/sysconfig/freshclam配置文件最后一行的配置才能启用

    六、遇到的问题

    1、服务不能启动,查看日志发现报错:Please defind server type (local and/or TCP)

    原因: 是在配置文件中没定义是使用本地的socket还是使用TCP方式的socket
    解决方法: 修改scan.conf文件中的配置,如使用本地的socket:


    然后再次启动:
    2、在更新病毒库时,出现Can't create temporaty directory xxxx的错误

    解决方法:
    一般错误提示中会给出UID和GID提示,根据提示修改权限


    然后再次执行更新:

    3、手动更新时遇到错误:Update failed. Your network may be down or none of the mirrors listed in freshclam.conf is working.

    解决方法: 将旧的镜像地址删掉:

    [root@localhost ~]# rm -f /var/lib/clamav/mirrors.dat
    

    然后再次执行手动更新

    4、执行clamdscan命令时出现:Permission denied. ERROR

    暂未发现解决方法,如果有找到方法的网友麻烦告知一下谢谢

    五、定时查杀病毒

    1、直接使用命令+定时任务的方式

    打开定时任务配置文件

    [root@localhost ~]# vim crontab
    

    文件内配置如下

    1  3  * * *  /usr/bin/freshclam --quiet
    20 3  * * *  /usr/bin/clamscan  -r /home  --remove -l /var/log/clamscan.log
    
    2、使用命令+脚本方式,如果扫描到病毒就发送邮件给管理员(基于python环境,脚本摘于网络)
    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()
    

    然后将python脚本设定为定时任务
    打开定时任务配置文件

    [root@localhost ~]# vim crontab
    

    配置文件内容如下

    00 4 * * * root /home/clamsacn.py
    

    六、参考并致谢

    https://blog.csdn.net/weixin_41004350/article/details/80182929

    https://www.cnblogs.com/bingo1024/p/9018212.html

    http://www.vaerenbergh.com/blog/scan-uploaded-files-drupal-clamav

    https://blog.csdn.net/heiby/article/details/52136340

    相关文章

      网友评论

        本文标题:【ClamAV】Linux系统开源杀毒软件ClamAV的安装

        本文链接:https://www.haomeiwen.com/subject/ivalictx.html