一、ClamAV 简介

ClamAV 是一款开源、跨平台的杀毒软件工具包,特别擅长检测木马、病毒、恶意软件和其他恶意威胁。在 Linux 服务器上,它的主要角色是:

  • 扫描用户上传的文件(如网站表单、FTP)。

  • 扫描电子邮件附件(与邮件服务器如 Postfix 集成)。

  • 扫描文件共享(如 Samba),确保提供给 Windows 客户端的文件安全。

  • 定期检查系统,防止服务器被入侵后作为恶意软件分发点。

二、安装步骤

需要先 SSH 连接到 Debian 服务器。

步骤 1: 更新系统软件包列表

首先,确保您的系统软件包列表是最新的。

步骤 2: 安装 ClamAV 软件包

安装 clamav 核心引擎和 clamav-daemon 守护进程(后者包含自动更新工具和后台服务)。

  • clamav: 提供主要的命令行扫描工具 clamscan。

  • clamav-daemon: 提供后台服务 clamd 和自动病毒库更新工具 freshclam。强烈建议安装,否则你需要手动更新病毒库。

在安装过程中,clamav-daemon 和 freshclam 服务会自动启动。但有时会因为缺少病毒库初始文件而启动失败,这是正常的,我们下一步就解决。

步骤 3: 更新病毒特征库

ClamAV 依靠病毒特征库来识别威胁。我们需要手动初始化并下载最新的病毒库。

首先,停止可能运行失败的服务:

然后,使用 freshclam 工具手动下载病毒库:

这个过程会从 ClamAV 的服务器下载数据库,请耐心等待。如果遇到网络连接问题(如403错误),可以多试几次,或者换个时间再试。

步骤 4: 启动并启用服务

病毒库更新成功后,启动服务并设置为开机自启。

看到 active (running) 的字样就说明服务运行正常了。


三、基本使用方法

ClamAV 提供了两个主要的扫描命令:

  1. clamscan: 独立扫描器。每次运行都会加载引擎和病毒库,速度稍慢,适合手动扫描。

  2. clamdscan: 客户端工具。它与一直运行在后台的 clamd 守护进程通信进行扫描,速度非常快,适合用于定时脚本和自动扫描。

常用扫描示例:

1. 扫描单个文件或目录(使用 clamscan)

2. 使用更快的 clamdscan 扫描

clamdscan 的选项与 clamscan 大部分通用,如 –move、–remove 等。

3. 扫描整个系统(耗时很长,通常不推荐日常使用)

注意:扫描根目录 / 会扫描所有连接的文件系统,非常耗时,并且会因权限问题跳过一些文件。通常只在怀疑系统被入侵后进行一次基线扫描。

四、高级配置:设置定时自动扫描

手动扫描不够可靠,最佳实践是配置一个定时任务(cron job)来定期扫描关键目录。

示例:设置每天凌晨扫描网站目录和用户目录

  1. 创建一个扫描脚本,方便管理:

将以下内容粘贴到脚本中:

给脚本添加执行权限:

编辑 root 用户的 cron 任务表:

添加一行,配置在每天凌晨 1点运行扫描:

  1. 保存并退出编辑器。

现在,您的服务器就会每天自动扫描关键目录,并将感染文件移至隔离区,同时记录日志。


五、更新和维护

  • 病毒库更新:clamav-freshclam 服务会自动每天多次检查并更新病毒库,通常无需手动干预。

  • 手动更新:如果你怀疑数据库不是最新的,可以随时运行:

  • 更新软件:当通过 apt upgrade 更新系统时,ClamAV 软件本身也会得到更新。