优先使用系统包管理器安装ClamAV(Ubuntu/Debian用apt,CentOS/RHEL用yum+EPEL),再源码编译(需开发工具、configure指定路径)、初始化病毒库(freshclam)、启动clamd服务(systemctl enable/start clamd@scan)、最后执行clamscan或clamdscan扫描。

一、使用系统包管理器快速安装
对于大多数生产环境中的Linux服务器,优先采用发行版官方仓库提供的ClamAV包进行安装,可自动解决依赖关系并简化后续服务管理。该方式适用于Ubuntu/Debian及CentOS/RHEL等主流系统,部署速度快且稳定性高。
1、在Ubuntu或Debian系统中,执行以下命令更新软件源并安装核心组件:
2、运行sudo apt update刷新本地软件包索引。
3、执行sudo apt install -y clamav clamav-daemon clamdscan安装引擎、守护进程与扫描客户端。
4、安装完成后,系统将自动创建clamav用户,并初始化clamd服务配置文件。
5、在CentOS 7或RHEL 7系统中,需先启用EPEL扩展源:
6、运行sudo yum install -y epel-release启用EPEL仓库。
7、执行sudo yum install -y clamav clamav-update clamav-server安装完整套件。
8、安装后需手动解除/etc/freshclam.conf和/etc/clamd.d/scan.conf中以Example开头的注释行,否则服务无法启动。
二、通过源码编译安装(推荐企业级部署)
当系统仓库版本过旧(如低于ClamAV 1.0.0),或需启用特定功能(如--enable-milter邮件接口)、自定义安装路径时,应选择源码编译安装。该方式可精确控制编译参数,规避老旧glibc或内存限制引发的兼容性问题。
1、安装基础编译依赖:sudo yum groupinstall "Development Tools" -y(CentOS)或sudo apt install -y build-essential libssl-dev libxml2-dev zlib1g-dev(Ubuntu)。
2、下载最新稳定版源码包:wget https://www.clamav.net/downloads/production/clamav-1.0.1.tar.gz。
3、解压并进入源码目录:tar xzvf clamav-1.0.1.tar.gz && cd clamav-1.0.1。
4、执行配置脚本,指定安装前缀与systemd单元路径:./configure --prefix=/opt/clamav --with-systemdsystemunitdir=/etc/systemd/system。
5、编译并安装:make -j$(nproc) && sudo make install。
6、创建运行用户与日志目录:sudo useradd -s /bin/false clamav && sudo mkdir -p /opt/clamav/logs。
7、设置日志文件权限:sudo chown clamav:clamav /opt/clamav/logs && sudo chmod 755 /opt/clamav/logs。
三、病毒库初始化与首次更新
ClamAV安装后必须完成病毒数据库的首次下载,否则所有扫描操作均会失败。freshclam工具负责从远程镜像同步CVD/CLD格式的病毒特征库,其行为受/etc/clamav/freshclam.conf或/etc/freshclam.conf控制。
1、确认配置文件中DatabaseDirectory指向可写路径,例如/var/lib/clamav。
2、检查DatabaseMirror配置项是否包含至少一个有效镜像地址,如database.clamav.net或db.us.clamav.net。
3、执行sudo freshclam触发手动更新,输出中出现ClamAV update process started at ...及Database updated即表示成功。
4、若提示ERROR: Can't open /var/lib/clamav/main.cvd,说明/var/lib/clamav目录不存在或权限不足,需执行sudo mkdir -p /var/lib/clamav && sudo chown clamav:clamav /var/lib/clamav。
5、对于离线环境,可预先在联网节点执行freshclam --datadir=/path/to/mirror --update-db构建本地镜像,再通过HTTP服务分发。
四、启动守护进程并验证服务状态
clamd是ClamAV的常驻后台服务,提供高性能扫描接口,clamdscan命令依赖其运行。启用该服务可显著提升重复扫描效率,并支持集成至Web应用或自动化流水线。
1、确认/etc/clamd.d/scan.conf中LocalSocket路径为/var/run/clamd.scan/clamd.sock,且User clamav已取消注释。
2、创建socket目录并赋权:sudo mkdir -p /var/run/clamd.scan && sudo chown clamav:clamav /var/run/clamd.scan。
3、重载systemd配置:sudo systemctl daemon-reload。
4、启动服务:sudo systemctl start clamd@scan。
5、设为开机自启:sudo systemctl enable clamd@scan。
6、检查服务状态:sudo systemctl status clamd@scan,输出中显示active (running)且无报错即为正常。
7、执行sudo -u clamav clamdscan --fdpass /etc/passwd测试连接,返回/etc/passwd: OK表示守护进程响应正常。
五、执行基础病毒扫描与结果处理
ClamAV提供两种扫描模式:clamscan为单次进程式扫描,适合临时检查;clamdscan为客户端-服务端模式,依赖clamd守护进程,性能更优。两者均支持递归、日志记录与自动处置动作。
1、对/tmp目录执行快速扫描并仅显示感染文件:clamscan -r -i /tmp。
2、扫描/home并自动删除确认为恶意的文件:sudo clamscan -r --remove /home。
3、使用clamdscan对/var/www/html进行高速扫描,结果输出到日志:sudo clamdscan -r /var/www/html -l /var/log/clamav/webapp-scan.log。
4、扫描时将感染文件移动至隔离区而非直接删除:sudo clamdscan -r /opt/app --move=/tmp/quarantine -l /var/log/clamav/isolate.log。
5、若扫描输出中出现Infected files: X,需立即核查对应路径下的文件,重点关注文件修改时间、属主异常及不可信来源。

















