ClamAV是一款开源的跨平台反恶意软件工具包。它广泛应用于Linux服务器环境中,用于检测病毒、木马、恶意软件和其他安全威胁。本教程将指导你在Debian 12服务器上安装和配置ClamAV,并学习如何使用它来扫描文件和目录。
前提条件
在开始之前,请确保你具备以下条件:
- 一台Debian 12服务器
- 一个具有管理员权限的非root用户
安装ClamAV
ClamAV是一款开源的反恶意软件工具包,支持跨平台使用。它包含在大多数Linux发行版的软件仓库中。在Debian系统上,你可以通过APT包管理器轻松安装ClamAV。
首先,运行以下apt命令更新Debian软件包索引。
sudo apt update

现在使用以下命令安装clamav及其他相关软件包。输入Y以继续安装。
sudo apt install clamav clamav-daemon clamav-freshclam clamdscan

在本示例中,你将安装以下软件包:
- 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

数据库更新完成后,运行以下systemctl命令启动并启用clamav-freshclam服务。你的杀毒数据库将由此服务自动更新。
sudo systemctl enable --now clamav-freshclam
最后,使用以下命令检查clamav-freshclam服务。你将看到该服务已运行并已启用。
sudo systemctl status clamav-freshclam

使用ClamAV扫描文件和目录
到目前为止,你已经安装了ClamAV并通过clamav-freshclam服务配置了数据库签名。在本节中,你将学习如何使用ClamAV的clamscan命令来扫描文件和目录。
在扫描文件或目录之前,确保clamav-daemon服务正在运行。使用以下命令检查。
sudo systemctl status clamav-daemon
如果正在运行,你将看到输出中显示"active (running)"。

要使用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
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日志和进程。