Clam AntiVirus(ClamAV)是免费而且开放源代码的杀毒软件,软件与病毒码的更新皆由社区免费发布。目前ClamAV主要是使用在由Linux、FreeBSD等Unix-like系统架设的邮件服务器上,提供电子邮件的病毒扫描服务。用于检测木马,病毒,恶意软件和其他恶意威胁的一个开源杀毒引擎。

环境说明

安装依赖

首先安装开发工具

1
yum  groupinstall Development tools

再安装openssl

1
yum install openssl openssl-devel libcurl-devel zlib-devel libpng-devel libxml2-devel json-c-devel bzip2-devel pcre2-devel ncurses-devel

如果需要发邮件还可以安装sendmail

1
yum install sendmail sendmail-devel

下载clamav

1
wget http://www.clamav.net/downloads/production/clamav-0.103.1.tar.gz

将其上传至需要安装的服务器上,我上传到了/opt目录下。

编译安装

解压

1
2
cd /opt
tar -zxvf clamav-0.103.1.tar.gz

编译安装

1
2
3
4
cd clamav-0.103.1

./configure --prefix=/usr/local/clamav --disable-clamonacc
make && make install

查看目录结构

1
2
3
4
5
6
7
8
9
10
cd /usr/local/clamav/

[root@test clamav]# ll
total 4
drwxr-xr-x 2 root root 138 Apr 2 10:09 bin
drwxr-xr-x 2 root root 60 Apr 2 10:09 etc
drwxr-xr-x 2 root root 90 Apr 2 10:09 include
drwxr-xr-x 3 root root 4096 Apr 2 10:09 lib64
drwxr-xr-x 2 root root 19 Apr 2 10:09 sbin
drwxr-xr-x 3 root root 17 Apr 2 10:09 share

修改配置文件

1
2
3
4
cd /usr/local/clamav/etc

cp clamd.conf.sample clamd.conf
cp freshclam.conf.sample freshclam.conf

clamd.conffreshclam.conf中的Example注释掉,并添加如下内容

clamd.conf

1
2
3
4
5
6
vim etc/clamd.conf
- Example # 在第8行
+ # Example
+ LogFile /home/clamav/logs/clamd.log # 日志路径
+ PidFile /home/clamav/virusDAT/clamd.pid # 进程ID
+ DatabaseDirectory /home/clamav/virusDAT # 病毒库

freshclam.conf

1
2
3
4
5
6
vim etc/clamd.conf
- Example # 在第8行
+ # Example
+ UpdateLogFile /home/clamav/logs/freshclam.log # 日志路径
+ PidFile /home/clamav/virusDAT/freshclam.pid # 进程ID
+ DatabaseDirectory /home/clamav/virusDAT # 病毒库

新增用户

1
2
3
4
5
6
7
8
9
groupadd clamav

useradd -g clamav clamav
# 切换到clamav用户目录
su - clamav
# 创建日志目录
mkdir logs
# 创建病毒库目录
mkdir virusDAT

更新病毒库

如果由局域网病毒库或者能够访问公网,可以使用如下命令更新:

1
/usr/local/clamav/bin/freshclam

无法访问网络的话,我们需要手动下载病毒库,并上传至/home/clamav/virusDAT

1
2
3
wget http://database.clamav.net/main.cvd
wget http://database.clamav.net/daily.cvd
wget http://database.clamav.net/bytecode.cvd

上传完成后,请确保这三个文件属主和属组都是clamav。chown clamav:clamav *.cvd

命令扫描

1
2
3
4
5
6
7
8
9
10
11
12
13
/usr/local/clamav/bin/clamscan -r /data

----------- SCAN SUMMARY -----------
Known viruses: 8516923
Engine version: 0.103.1
Scanned directories: 364
Scanned files: 2971
Infected files: 0
Data scanned: 1042.99 MB
Data read: 744.05 MB (ratio 1.40:1)
Time: 725.143 sec (12 m 5 s)
Start Date: 2021:04:02 10:40:35
End Date: 2021:04:02 10:52:40

更多参数

1
2
3
4
5
6
7
8
9
10
11
12
/usr/local/clamav/bin/clamscan
参数:
–no-summary 不显示统计信息
-r/--recursive[=yes/no] 递归扫描子目录
--log=FILE/-l FILE 增加扫描报告
--move [路径] 移动病毒文件至..
--remove [路径] 删除病毒文件
--quiet 只输出错误消息
--infected/-i 只输出感染文件
--suppress-ok-results/-o 跳过扫描OK的文件
--bell 扫描到病毒文件发出警报声音
--unzip(unrar) 解压压缩文件扫描

参考资料: