一、简介

Clam AntiVirus是一个类UNIX系统上使用的反病毒软件包。ClamAV免费而且开放源代码防毒软件,软件与病毒码的更新皆由社群免费发布。目前ClamAV主要是使用在由LinuxFreeBSDUnix-like系统架设的邮件服务器上,提供电子邮件的病毒扫描服务。ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是无法清除。

二、获取

clamav官网 点击这里下载,推荐下载最新版本,这里使用的是:最新稳定版1.5.2 。

或者wget直接下载源码包。我这边已经liunx x86 系统案例为安装
wget http://www.clamav.net/downloads/production/clamav-1.5.2.linux.x86_64.deb

三、安装

  1. 离线安装
    1
    2
    3
    4
    dpkg -i clamav-1.5.2.linux.x86_64.deb

    ##验证:
    clamscan --version
  2. 添加用户组和组成员
    1
    2
    groupadd clamav
    useradd -g clamav clamav

四、配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
## 创建日志目录和病毒库目录
mkdir -p /usr/local/clamav/logs
mkdir -p /usr/local/clamav/updata

## 创建日志文件
touch /usr/local/clamav/logs/clamd.log
touch /usr/local/clamav/logs/freshclam.log

## 文件授权(修改文件的属主)
chown clamav:clamav /usr/local/clamav/logs/clamd.log
chown clamav:clamav /usr/local/clamav/logs/freshclam.log
chown clamav:clamav /usr/local/clamav/updata

## 修改配置文件
# ------------------ 说明非必须 ----------------------
### 首先找到 查找 ClamAV 实际安装位置
### ClamAV 官方 .deb包的典型安装路径有以下几种情况:
### 情况 1:安装在 /usr/local/根目录下
ls /usr/local/etc/ # 看是否有 clamd.conf.sample
ls /usr/local/bin/ # 看是否有 clamscan


# 或
# 查找配置文件样本
find / -name "clamd.conf.sample" 2>/dev/null
# ----------------------------------------------

cd /usr/local/etc/
## 基础配置(必须做,否则无法运行)
cp clamd.conf.sample clamd.conf
cp freshclam.conf.sample freshclam.conf

## 编辑 freshclam.conf 与 clamd.conf 注释掉或删除这一行:Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

## 编辑这两个配置文件内容,复制的两个新文件,几乎是全文注释,只保留了一个醒目的Example,所以也要注释掉Example,增加以下内容。见下文:

vim /usr/local/etc/clamd.conf

#Example  //注释掉这一行
#添加以下内容
LogFile /usr/local/clamav/logs/clamd.log
PidFile /usr/local/clamav/updata/clamd.pid
DatabaseDirectory /usr/local/clamav/updata

vim /usr/local/etc/freshclam.conf

#Example  //注释掉这一行
#添加以下内容
DatabaseDirectory /usr/local/clamav/updata
UpdateLogFile /usr/local/clamav/logs/freshclam.log
PidFile /usr/local/clamav/updata/freshclam.pid

五、执行

  1. 更新病毒库
    离线环境是无法更新的,所以需要在线环境中更新。

    1
    2
    3
    4
    ## 执行  更新病毒库, 然后就会从网上下打到指定的  DatabaseDirectory /usr/local/clamav/updata  目录下。 如果再次执行就是更新
    freshclam

    ## 下载后的文件后面可以拷贝序号放到其他服务器离线使用 (ClamAV 默认读取病毒库(.cvd/ .cld文件))
  2. 扫描

    1
    2
    3
    4
    参数:
    -r 递归扫描子目录
    -i 只显示发现的病毒文件
    –no-summary 不显示统计信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
##用法:
#--帮助
clamscan --help

#--默认扫描当前目录下的文件,并显示扫描结果统计信息
clamscan

#--扫描当前目录下的所有目录和文件,并显示结果统计信息    
clamscan -r 

#--扫描data目录下的所有目录和文件,并显示结果统计信息 
clamscan -r /data 

#--扫描data目录下的所有目录和文件,只显示有问题的扫描结果
clamscan -r --bell -i /data

#--扫描data目录下的所有目录和文件,不显示统计信息
clamscan --no-summary -ri /data

  1. 杀毒
    所谓的杀毒,就是将扫描出来的文件删除,就完成了杀毒工作。
1
2
3
4
clamscan -r --remove #删除扫描过程中的发现的病毒文件
clamscan -r --bell -i #扫描过程中发现病毒发出警报声
clamscan -r --move [路径] #扫描并将发现的病毒文件移动至对应的路径下
clamscan -r --infected -i #扫描显示发现的病毒文件,一般文件后面会显示FOUND

使用第一条命令的时候要特别注意,如果病毒感染力系统的核心区域,该命令直接会删除系统核心文件,严重者会导致系统崩溃,所以要慎重,最好是先确认好病毒的位置后,再执行删除命令。

  1. 自动定时更新和杀毒
    一般使用计划任务,让服务器每天定时更新和定时杀毒,保存杀毒日志。设置crontab定时任务。

    1
    2
    3
    1  3  * * *         /usr/local/bin/ffreshclam --quiet
    20 3 * * * /usr/local/bin/fclamscan -r /home --remove -l /var/log/cla

  2. 案例
    使用命令扫描

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    /usr/local/bin/clamscan -r

    ##返回如下

    ----------- SCAN SUMMARY ----------- #扫描摘要
    Known viruses: 6377069 #已知病毒:6377069
    Engine version: 0.99.2 #引擎版本:0.92.2
    Scanned directories: 18186 #扫描目录:18186
    Scanned files: 80762 #扫描文件:80762
    Infected files: 46 #感染档案:46
    Total errors: 4253 #总误差:4253
    Data scanned: 4717.23 MB #数据扫描:4717.23兆字节
    Data read: 9475.00 MB (ratio 0.50:1) #数据读取:9475MB(比0.50∶1)
    Time: 1939.667 sec (32 m 19 s) #时间:1939.667秒(32分19秒)
    ---------------------


六、小结

离线环境下的使用

  • 在一台在线的服务器上,按照上述步骤,安装好clamav软件;
  • 使用以下命令获取最新的病毒库;
1
/usr/local/bin/freshclam
  • 打开对应位置,将病毒库传输到本地;

    1
    cd /usr/local/clamav/update/
  • 将病毒库上传到离线环境中,放置到对应的文件夹底下;

  • 完成以上步骤就可以在离线服务器上扫描了。

报告查看

默认情况下,clamscan不会生成任何报告文件,只在终端输出结果。

如果需要生成报告文件,可以这样:
方式1:将输出重定向到文件

1
2
## 这样会在当前目录生成 scan_report.txt
clamscan -r . > scan_report.txt 2>&1