ClamAV 是做什么的
ClamAV 是开源恶意代码检测工具,由两部分协作:freshclam 负责从官方源更新病毒库,clamscan 或后台常驻的 clamd 负责扫描。它适合文件服务器、上传目录、终端加固等场景,作为文件层面的检测手段。需要注意的是它依赖病毒库持续更新:内网离线环境必须单独设计病毒库同步通道(镜像源或人工同步),否则装完就停留在旧库上。
基本信息
| 主要组件 | clamav(扫描)、clamav-update(病毒库更新)、clamd 常驻进程 |
|---|---|
| 更新服务 | clamav-freshclam,也可手工执行 freshclam |
| 扫描命令 | clamscan 单次扫描;clamdscan 走常驻进程扫描 |
| 日志位置 | 扫描结果可由参数指定日志文件 |
| 离线环境 | 需要镜像病毒库更新源或定期人工同步 |
典型使用场景
- 文件服务器与共享目录定期巡检,发现被上传的恶意文件
- 业务系统的上传目录扫描:对用户提交的文件做安全检测
- 终端加固要求中提供杀毒检测能力,满足合规检查项
- 安全事件响应时对可疑文件做快速取证扫描
- 交付验收前对随包介质做一次全量扫描,避免带入风险文件
- 内网离线环境的病毒库同步方案设计,保证检测能力持续可用
安装、更新与扫描
安装、更新与扫描
dnf install -y clamav clamav-update # 或 apt install clamav clamav-freshclam
systemctl enable --now clamav-freshclam # 开启自动更新病毒库
freshclam # 需要时手工触发一次更新
clamscan --version # 确认版本与病毒库日期
clamscan --infected /tmp/suspicious.bin # 只输出被感染文件
clamscan -r --infected --log=/var/log/clamscan.log /home # 递归扫描并落盘日志
tail -20 /var/log/clamscan.log # 核对扫描结果摘要
systemctl enable --now clamd # 启用常驻进程
clamdscan /data/uploads # 经 clamd 扫描,速度更快常用参数与检查点
| 项 | 作用 | 使用建议 |
|---|---|---|
| -r | 递归扫描子目录 | 目录巡检必加 |
| --infected | 只输出被感染文件 | 便于日志与告警提取 |
| --log | 结果写入日志文件 | 保留扫描记录便于追溯 |
| --exclude-dir | 排除指定目录 | 避开大体积无关目录 |
| freshclam 日志 | 确认病毒库更新时间 | 判断更新链路是否正常 |
判断防护是否真正有效,看的是病毒库更新时间而不是服务是否在运行:用 freshclam 的输出与病毒库文件时间戳确认更新链路通畅,再谈扫描策略。
全盘扫描对磁盘 IO 影响明显,放在业务低峰期并限制扫描范围;对生产数据库与大文件目录要单独评估,避免扫描动作拖慢在线服务。