Ubuntu 22.04 服务器 / 如何安装和使用 ClamAV
要在 Ubuntu 22.04 服务器上安装 ClamAV,请安装 clamav 和 clamav-freshclam 包,更新病毒数据库,然后使用 clamscan 扫描所需的文件或目录。这种方法执行按需扫描,仅通过安装并不会启用实时监控。
ClamAV 及扫描前的准备
ClamAV 是一套用于检测恶意软件的开源工具集合。freshclam 会更新用于检测的数据库,clamscan 在执行期间读取数据库以扫描指定目标,而 clamscan 则不需要单独的扫描守护进程 clamd 运行。
本文基于 Ubuntu 22.04 Server 的软件包和 systemd 服务。你需要网络连接以访问软件包存储库和签名数据库,安装需要 sudo 权限,并需要足够的磁盘空间和内存来存储数据库和执行扫描。在生产服务器上,应在空闲时间运行,考虑扫描的范围和负载。
安装 ClamAV
更新软件包列表并安装扫描器和更新器。
sudo apt update
sudo apt install clamav clamav-freshclam
安装完成后,请检查版本和更新服务状态。
clamscan --version
systemctl status clamav-freshclam --no-pager
如果服务正在运行,则已配置为自动更新。如果状态出现错误或服务缺失,请参阅下面的更新和故障排除部分。输出内容取决于已安装的版本和数据库状态。
更新签名数据库
在扫描之前,您需要一个最新的数据库。如果clamav-freshclam服务正在运行,它会在后台更新,因此请先检查状态和最近的记录。
systemctl status clamav-freshclam --no-pager
journalctl -u clamav-freshclam -n 30 --no-pager
如果需要手动更新,并且服务正在运行,请在运行之前短暂停止服务,以防止两个更新进程同时使用相同的日志或数据库。
sudo systemctl stop clamav-freshclam
sudo freshclam
无论更新是成功还是失败,请重启原本运行的服务并检查其状态。如果服务原本是停止的,请不要随意启动,按照现有的操作设置执行。
sudo systemctl start clamav-freshclam
systemctl status clamav-freshclam --no-pager
如果下载失败或收到关于版本过时的警告,请检查您的互联网、DNS 和代理设置以及软件包更新状态。有关请求限制或错误的说明,请参阅 ClamAV 的 FreshClam 故障排除文档。
扫描文件和目录
例如,要扫描当前用户的下载目录,包括子目录,请按如下方式执行。将其替换为您想要扫描的实际路径。
clamscan -r "$HOME/Downloads"
-r 也会扫描子目录。要扫描单个文件,请像 clamscan /path/to/file 那样指定文件路径。如果输出很多,可以添加 --infected 来仅显示检测到的项目。
clamscan -r --infected "$HOME/Downloads"
扫描账户无法读取的文件无法被扫描,因此需要检查权限错误。对于需要管理员权限的区域,例如包含其他用户文件的 /home,您可以先评估权限和影响,再使用 sudo clamscan -r /home 进行扫描。扫描整个文件系统需要很长时间,可能还会包括其他文件系统,因此请先检查扫描范围。
扫描结果阅读
检查输出末尾 SCAN SUMMARY 中的扫描文件数量和 Infected files。带有FOUND的项目表示已检测到的文件和检测名称。如果由于读取错误或大小限制而有无法扫描的项目,即使检测计数为0,也不能假定所有文件都是安全的。
在命令执行后立即使用echo $?检查退出状态:0表示未检测到,1表示已检测到,2表示发生错误。如果先执行了其他命令,要检查的值将会改变。详细选项和退出状态可在Ubuntu 22.04 clamscan手册中找到。
处理检测到的文件时
由于检测结果可能为误报,请记录文件路径和检测名称,并验证文件的用途和来源。立即删除重要的服务文件或用户数据可能会导致服务中断或数据丢失。建议限制访问,并在采取行动之前遵循贵组织的事件响应程序进行进一步分析和备份验证。
--move=DIRECTORY 将检测到的文件移动到指定目录,--remove 则删除它们。由于这两个选项都会修改实际文件,因此不要在标准扫描中包含它们。如果必须移动文件,请先检查扫描范围之外的受限隔离位置、写入权限、恢复方法以及服务影响。--copy 会创建副本,但保持原文件不变。 ClamAV 扫描文档 也建议对自动删除保持谨慎,因为可能存在误报。
当更新或扫描失败时
- 未找到数据库: 检查更新服务日志和网络连接,并在数据库下载完成后重新扫描。
- 日志锁错误: 检查是否有其他
freshclam进程正在运行。如果您在手动更新期间停止了服务,请在任务完成后重新启动。 - 权限错误或扫描遗漏: 检查文件读取权限和错误信息,仅在必要时提升权限。加密文件或设置的大小限制也可能影响扫描范围。
ClamAV 是一个有用的检测工具,但不能保证它能发现所有恶意软件。请结合定期更新、备份和访问控制使用,如果需要实时监控,请考虑单独的配置和操作方法。




