ClamAV是一款开源的跨平台反恶意软件工具包。它广泛应用于Linux服务器环境中,用于检测病毒、木马、恶意软件和其他安全威胁。本教程将指导你在Debian 12服务器上安装和配置ClamAV,并学习如何使用它来扫描文件和目录。

前提条件

在开始之前,请确保你具备以下条件:

  • 一台Debian 12服务器
  • 一个具有管理员权限的非root用户

安装ClamAV

ClamAV是一款开源的反恶意软件工具包,支持跨平台使用。它包含在大多数Linux发行版的软件仓库中。在Debian系统上,你可以通过APT包管理器轻松安装ClamAV。

首先,运行以下apt命令更新Debian软件包索引。

sudo apt update

Debian 12更新软件包索引

现在使用以下命令安装clamav及其他相关软件包。输入Y以继续安装。

sudo apt install clamav clamav-daemon clamav-freshclam clamdscan

Debian 12安装ClamAV软件包

在本示例中,你将安装以下软件包:

  • clamav:ClamAV杀毒软件主包
  • clamav-daemon:ClamAV扫描守护进程,用于自动扫描
  • clamav-freshclam:用于更新病毒数据库签名的ClamAV工具,常用于邮件服务器集成
  • clamdscan:clamav-daemon的命令行接口

安装完成后,使用以下命令检查ClamAV服务状态。

sudo systemctl is-enabled clamav-daemon  
sudo systemctl status clamav-daemon

配置ClamAV

安装ClamAV后,你需要配置镜像源并更新签名数据库,然后启动并启用clamav-freshclam服务以实现恶意软件/病毒签名数据库的自动更新。

使用nano编辑器打开配置文件/etc/clamav/freshclam.conf:

sudo nano /etc/clamav/freshclam.conf

使用你的默认国家代码调整DatabaseMirror配置,或者保持默认配置不变。

DatabaseMirror db.<国家代码>.clamav.net

保存文件并退出编辑器。

现在运行以下freshclam命令更新你的杀毒数据库。

sudo freshclam

更新ClamAV病毒数据库

数据库更新完成后,运行以下systemctl命令启动并启用clamav-freshclam服务。你的杀毒数据库将由此服务自动更新。

sudo systemctl enable --now clamav-freshclam

最后,使用以下命令检查clamav-freshclam服务。你将看到该服务已运行并已启用。

sudo systemctl status clamav-freshclam

检查freshclam服务状态

使用ClamAV扫描文件和目录

到目前为止,你已经安装了ClamAV并通过clamav-freshclam服务配置了数据库签名。在本节中,你将学习如何使用ClamAV的clamscan命令来扫描文件和目录。

在扫描文件或目录之前,确保clamav-daemon服务正在运行。使用以下命令检查。

sudo systemctl status clamav-daemon

如果正在运行,你将看到输出中显示"active (running)"。

检查clamav-daemon服务状态

要使用ClamAV扫描文件,运行clamscan命令后跟文件名,如下所示。

clamscan file.docx

至于扫描目录,可以按照以下方式指定目录名。

clamscan /home/

现在你可以运行以下命令来跳过状态为"OK"的结果。

clamscan -o /home/

或者你可以使用-i选项仅显示受感染的文件。

clamscan -i /home/

运行以下命令递归扫描目录并输出受感染的文件。

clamscan -i -r /home

最后,你可以将-r选项与--move参数结合使用,将受感染的文件移动到目标目录。

clamscan -i -r --move=/home/$USER/infected /home/

使用ClamAV守护进程进行自动扫描

ClamAV通过clamav-daemon服务提供自动扫描功能。现在你将学习如何配置clamav-daemon来自动扫描系统目录,如/home、/etc和/var。

使用nano编辑器打开ClamAV守护进程配置文件/etc/clamav/clamd.conf。

sudo nano /etc/clamav/clamd.conf

插入以下配置以设置对/home、/etc和/var目录的自动扫描。ScanOnAccess将通过clamd启用实时保护,在文件被访问时进行扫描。

ScanOnAccess yes  
OnAccessIncludePath /home  
OnAccessIncludePath /etc  
OnAccessIncludePath /var

完成后保存文件并退出编辑器。

现在运行以下systemctl命令重启并启用clamav-daemon服务。

sudo systemctl restart clamav-daemon

最后,检查clamav-daemon服务状态以确保其正在运行。

sudo systemctl status clamav-daemon

从下方可以看到clamav-daemon服务正在运行,这意味着ClamAV扫描将自动执行。

clamav-daemon服务运行状态

调试ClamAV

ClamAV的默认日志文件位于/var/log/clamav/clamav.log。你可以使用以下tail命令查看日志文件。

tail -f /var/log/clamav/clamav.log

现在运行以下tail命令查看clamav-freshclam服务的日志文件,该服务会自动更新你的杀毒数据库。

tail -f /var/log/clamav/freshclam.log

你还可以使用clamdtop命令监控ClamAV服务状态。

clamdtop

总结

恭喜!你已经在Debian 12服务器上完成了ClamAV的安装。你还配置了ClamAV签名的DatabaseMirror,并学习了使用freshclam命令从命令行更新数据库签名。接下来,你学习了如何通过clamscan命令使用ClamAV扫描文件和目录。最后,你通过clamav-daemon配置了病毒和恶意软件的自动扫描,并学习了如何检查ClamAV日志和进程。