ClamAV介绍
ClamAV是一个可以在命令行下查毒软件,开源(GPLv2)的反病毒工具包。它提供了许多实用程序,包括灵活且可扩展的多线程守护程序,命令行扫描程序和用于自动数据库更新的高级工具。该软件包的核心是一个以共享库形式提供的反病毒引擎。
功能
- ClamAV旨在快速扫描文件。
- 实时保护(仅限Linux)。我们的扫描守护程序支持现代版Linux上的按访问扫描,包括在扫描文件之前阻止文件访问的功能。
- ClamAV可检测超过100万种病毒,蠕虫和特洛伊木马,包括Microsoft Office宏病毒,移动恶意软件和其他威胁。
- 内置的字节码解释器允许ClamAV签名编写者创建和分发非常复杂的检测例程,并远程增强扫描器的功能。
- 签名签名数据库确保ClamAV仅执行可信签名定义。
- ClamAV扫描档案和压缩文件,但也可以防止档案炸弹。
ClamAV 安装及使用
ClamAV 的安装过程比较简单,就常用的编译安装。 下面的安装环境是 CentOS7.4 的环境,其它linux环境差不多,只需要满足相关依赖即可。
1,下载ClamAV
下载安装包,下载的是源码,linux、mac都适用
2,安装ClamAV
安装依赖(centos7.4环境)
yum -y install gcc-c++ pcre-devel zlib-devel openssl-devel llvm-devel libxml2 libxml2-devel libcurl-devel
解压及编译安装
tar zxf clamav-0.100.0.tar.gzcd clamav-0.100.0
./configure --prefix=/opt/clamav ### --prefix 参数指定软件安装目录
make && make install ### 安装
3,配置ClamAV
创建扫描用户及相关目录
groupadd clamav ### 创建clamav组
useradd clamav -s /sbin/nologin ### 创建clamav用户
mkdir /opt/clamav/logs
mkdir /opt/clamav/share/update
touch /opt/clamav/logs/{freshclam.log,clamd.log}
chown -R clamav:clamav /opt/clamav/logs
修改配置文件
cp -a /opt/clamav/etc/clamd.conf.sample /opt/clamav/etc/clamd.conf### 修改: clamd.conf
Example ### 注释掉这一行
LogFile /opt/clamav/logs/clamd.log ### 指定log文件
PidFile /opt/clamav/updata/clamd.pid ### 指定pid文件
DatabaseDirectory /opt/clamav/updata/
cp /opt/clamav/etc/freshclam.conf.sample /opt/clamav/etc/freshclam.conf### 修改: freshclam.conf
Example ### 注释掉这一行
4,下载或更新病毒库
下载会有点慢,多台机器的话,可以一台下载之后再拷贝,下载的文件在 /opt/clamav/share/clamav 目录
### 执行获取最新病毒库命令/opt/clamav/bin/freshclam
也可以在官网上下载然后放到上面提到的目录里面。
5,使用ClamAV
- 扫描病毒(可添加定时任务进行扫描)
/opt/clamav/bin/clamscan -r --bell -i ${路径}
例如:
[root@centos7 clamav]# ./bin/clamscan -r --bell -i /home/
----------- SCAN SUMMARY -----------
Known viruses: 6526435 ## 病毒库
Engine version: 0.100.0 ## 引擎版本
Scanned directories: 2 ## 扫描的目录
Scanned files: 3 ## 扫描的文件
Infected files: 0 ## 感染的文件数
Data scanned: 0.00 MB ## 扫描文件的大小
Data read: 0.00 MB (ratio 0.00:1)
Time: 20.303 sec (0 m 20 s) ## 扫描花费的时间
- 扫描病毒并清除(可添加定时任务进行扫描)
clamscan -r –remove ${路径}
- 扫描并移动病毒和感染文件到指定目录(扫描并隔离)(可添加定时任务进行扫描)
clamscan -r --move=/home/bill/my_virus_collection ${路径}
扫描出现病毒文件,删除后,需要重启服务器,目的是防止文件正在被使用或者在内存中。若情况特殊暂时不能重启服务器,可使用 ps -ef 命令查看文件是否被进程使用,亦可以在删除被感染的病毒的文件之前,使用 lsof 命令查看病毒文件 被什么程序调用,kill相应的进程,适时再重启。
为方便安装,附安装脚本
#!/bin/bash# USAGE: install clamav### Install
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel llvm-devel libxml2 libxml2-devel libcurl-devel
tar zxf clamav-0.100.0.tar.gzcd clamav-0.100.0
./configure --prefix=/opt/clamav
make && make install
### Setting
groupadd clamav
useradd clamav -g clamav -s /sbin/nologin
mkdir /opt/clamav/logs
mkdir /opt/clamav/share/clamav
touch /opt/clamav/logs/freshclam.log
touch /opt/clamav/logs/clamd.log
chown -R clamav.clamav /opt/clamav/logs
chown clamav.clamav /opt/clamav/share/clamav
cp /opt/clamav/etc/clamd.conf.sample /opt/clamav/etc/clamd.conf
cp /opt/clamav/etc/freshclam.conf.sample /opt/clamav/etc/freshclam.conf
sed -i 's/^Example/\#Example/g' /opt/clamav/etc/freshclam.conf
sed -i 's/^Example/\#Example/g' /opt/clamav/etc/clamd.conf
sed -i 's/^#LogFile\ \/tmp\/clamd.log/LogFile\ \/opt\/clamav\/logs\/clamd.log/g' /opt/clamav/etc/clamd.conf
sed -i 's/^#PidFile\ \/var\/run\/clamd.pid/PidFile\ \/opt\/clamav\/updata\/clamd.pid/g' /opt/clamav/etc/clamd.conf
sed -i 's/^#DatabaseDirectory\ \/var\/lib\/clamav/DatabaseDirectory\ \/opt\/clamav\/updata/g' /opt/clamav/etc/clamd.conf
cd ..## 病毒库的压缩包clamav.virus_data.tar.gz,解压这个压缩包后,得到一个calmav目录,目录里面是官网上下载的病毒库
tar zxf clamav.virus_data.tar.gz
cp clamav/* /opt/clamav/share/clamav/
### 添加定时扫描任务
mkdir /tmp/virus_collectionecho "#scan virus" >>/etc/crontabecho '30 4 5 * * /opt/clamav/bin/clamscan -r --move=/tmp/virus_collection / >/dev/null 2>&1' >>/etc/crontab