ClamAV病毒扫描工具
安装 ClamAV
Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布。ClamAV在命令行下运行,它不将杀毒作为主要功能,默认只能查出系统内的病毒,但是无法清除。需要用户自行对病毒文件进行处理
下载:https://www.clamav.net/downloads
默认将安装在 /usr/local
中,其中包含:
- 应用程序:
/usr/local/bin
- 守护进程:
/usr/local/sbin
- 库文件:
/usr/local/lib
- 头文件:
/usr/local/include
- 配置文件:
/usr/local/etc/
- 病毒库:
/usr/local/share/clamav/
配置 ClamAV
freshclam.conf
freshclam
是自动更新病毒库的工具。它可以配置为在两种模式下工作:
- 交互式 - 从命令行按需执行
- 守护进程 - 静默在后台自动执行
安装后初始化
cp -a /usr/local/etc/freshclam.conf.sample /usr/local/etc/freshclam.conf
sed -i 's/^Example/#Example/g' /usr/local/etc/freshclam.conf
编辑 /usr/local/etc/freshclam.conf
,添加以下内容
参数说明
- UpdateLogFile:指定更新日志文件
- LogTime:配置日志文件显示时间戳
- DatabaseOwner:指定病毒库文件所属用户
更多配置参数可执行 man freshclam.conf
进行查询
创建日志文件
更新病毒库
clamd.conf
目前,ClamAV
要求先配置 clamd.conf
文件,然后才可以运行守护进程,至少需要注释掉 “Example” 行,否则 clamd 将认为配置无效。
根据示例配置文件创建 clamd.conf
文件
cp -a /usr/local/etc/clamd.conf.sample /usr/local/etc/clamd.conf
sed -i 's/^Example/#Example/g' /usr/local/etc/clamd.conf
编辑 /usr/local/etc/clamd.conf
,添加以下内容
LogFile /var/log/clamd.log
LogTime yes
LocalSocket /run/clamav/clamd.sock
LocalSocketMode 660
User root
参数说明
- LogFile:指定 clamd 日志文件
- LogTime:配置日志文件显示时间戳
- LocalSocket:指定 socket 文件路径
- LocalSocketMode:指定 socket 文件权限
- User:设置运行 clamd 的用户身份
更多配置参数可执行 man clamd.conf
进行查询
扫描
ClamD
ClamD
是一个多线程守护程序,它使用 libclamav
扫描文件以查找病毒。通过修改 clamd.conf
可以配置扫描行为以满足大多数需求。
启动 ClamD
实际测试 clamd 需要占用 2GiB 左右的内存,启动前请确保有足够的内存资源
ClamDScan
ClamDScan
是一个 ClamD
客户端,它大大简化了使用 Clamd
扫描文件的任务。它通过 clamd.conf
中指定的套接字向 clamd
守护进程发送命令,并在守护进程完成所有请求的扫描后生成扫描报告。
因此在运行 ClamDScan
之前,必须先运行一个 ClamD
实例
# 全盘扫描,首次扫描时间会比较长
clamdscan /
# clamdscan --log=/var/log/clamdscan.log --config-file=/usr/local/etc/clamd.conf -w /
clamscan
使用 clamscan 命令行对某一目录进行扫描,可以确认结果是否 OK,同时会给出一个扫描的总体信息,其中 Infected files 是扫描出来的被感染的文件个数。比如如下示例表明对 /root
目录下的文件进行扫描,未发现感染文件的情况
使用 –-remove
选项,会直接删除检测出来的文件