如何在 Ubuntu 上安装 Linux 杀毒软件 ClamAV,排除系统已经感染木马或病毒
ClamAV 是一款开源防病毒引擎,旨在检测木马、病毒、恶意软件和其他恶意威胁。它广泛应用于 Linux 系统,为服务器、电子邮件扫描和系统安全提供必要的保护。ClamAV 配备命令行扫描程序、自动数据库更新和多线程守护程序,性能良好,是保护系统安全的可靠工具。
在 Ubuntu 上,ClamAV 可通过默认软件仓库轻松获取,确保快速简便的安装。本指南将引导您完成 Ubuntu 24.04、22.04 上的安装过程,并提供一些必要的配置技巧,例如启用自动更新和安排定期扫描。遵循本教程将帮助您有效地保护系统安全,并保持强大的防御能力,抵御潜在威胁。
使用 APT 在 Ubuntu 上安装 ClamAV 防病毒软件
安装过程非常简单,因为 ClamAV 已包含在 Ubuntu 默认软件仓库中。
步骤 1:安装 ClamAV 和 ClamAV 守护进程
在终端中运行以下命令来安装 ClamAV 及其后台守护程序:
sudo apt install clamav clamav-daemon
此命令安装:
- ClamAV:用于检测和消除恶意软件的防病毒扫描程序。
- ClamAV Daemon:一种支持自动更新和定期扫描以进行主动保护的服务。
步骤 2:验证安装
安装后,通过检查版本确认 ClamAV 已安装并正常运行:
clamscan --version
命令输出将显示已安装的 ClamAV 版本,表明防病毒软件已可供使用,但是病毒库还未更新到最新。
步骤 3:停止 ClamAV Freshclam 服务
在手动更新病毒定义之前,您需要停止clamav-freshclam后台运行的服务。这可以防止更新过程中出现任何冲突。打开终端并运行:
sudo systemctl stop clamav-freshclam
此命令暂时停止自动更新,允许您继续手动更新。
步骤4:使用Freshclam更新病毒数据库
使用freshclam命令下载最新的病毒定义。执行以下命令:
sudo freshclam
此命令更新目录中的病毒定义/var/lib/clamav,确保您的 ClamAV 扫描程序能够处理最新的安全威胁。下载病毒库需要时间,耐心等待,命令输出如下:
ClamAV update process started at Wed Jul 9 23:15:53 2025
Wed Jul 9 23:15:53 2025 -> daily database available for download (remote version: 27694)
Time: 39.9s, ETA: 0.0s [========================>] 61.68MiB/61.68MiB
Testing database: '/var/lib/clamav/tmp.c2ba87dcf7/clamav-a306c726f6a08f0c49122e8b8538d242.tmp-daily.cvd' ...
Database test passed.
Wed Jul 9 23:16:41 2025 -> daily.cvd updated (version: 27694, sigs: 2075811, f-level: 90, builder: raynman)
Wed Jul 9 23:16:41 2025 -> main database available for download (remote version: 62)
Time: 1m 59s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB
Testing database: '/var/lib/clamav/tmp.c2ba87dcf7/clamav-63a8b5c70aebfad967c34636170ab367.tmp-main.cvd' ...
Database test passed.
步骤5:重新启动并启用ClamAV Freshclam服务
数据库更新完成后,重新启动clamav-freshclam服务并使其在系统启动时自动运行。使用以下命令:
sudo systemctl enable clamav-freshclam --now
步骤6:验证ClamAV病毒定义更新
要确认病毒库已经更新,您可以查看目录中的文件/var/lib/clamav/
。运行以下命令:
ls -l /var/lib/clamav/
这将列出目录的内容,显示文件权限、所有权和最后修改日期等详细信息。请验证日期是否与最新更新相对应。
total 229940
-rw-r--r-- 1 clamav clamav 284179 Jul 9 23:18 bytecode.cvd
-rw-r--r-- 1 clamav clamav 64676950 Jul 9 23:16 daily.cvd
-rw-r--r-- 1 clamav clamav 90 Jul 9 23:07 freshclam.dat
-rw-r--r-- 1 clamav clamav 170479789 Jul 9 23:18 main.cvd
步骤7:执行关键目录扫描
以下命令将扫描/etc
、/bin
、/usr
三个主要目录,限制了最大目录深度为5,扫描日志写入/root目录下。
clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log \
&& clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log \
&& clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log
扫描过程中会输出如下日志,每个扫描结束后会有一个总结报告,关注Infected files
后面是否非0
/usr/libexec/coreutils/libstdbuf.so: OK
/usr/libexec/boltd: OK
/usr/libexec/packagekit-direct: OK
/usr/libexec/polkitd: OK
/usr/libexec/sudo/system_group.so: OK
/usr/libexec/sudo/sudoers.so: OK
/usr/libexec/sudo/libsudo_util.so.0.0.0: OK
/usr/libexec/sudo/sample_approval.so: OK
/usr/libexec/sudo/group_file.so: OK
/usr/libexec/sudo/sesh: OK
/usr/libexec/sudo/libsudo_util.so.0: Symbolic link
/usr/libexec/sudo/sudo_intercept.so: OK
/usr/libexec/sudo/sudo_noexec.so: OK
/usr/libexec/sudo/audit_json.so: OK
/usr/libexec/sudo/libsudo_util.so: Symbolic link
/usr/libexec/pk-offline-update: OK
/usr/lib64/ld-linux-x86-64.so.2: Symbolic link----------- SCAN SUMMARY -----------
Known viruses: 8707578
Engine version: 1.4.3
Scanned directories: 3663
Scanned files: 33737
Infected files: 0
Data scanned: 3278.21 MB
Data read: 2170.75 MB (ratio 1.51:1)
Time: 500.401 sec (8 m 20 s)
Start Date: 2025:07:09 23:20:52
End Date: 2025:07:09 23:29:12
步骤8:检查日志文件是否有木马或病毒文件
grep FOUND /root/*clamav.log
如果命令输出有以下内容,表示系统感染病毒或木马了,注意后面的FOUND
关键字
/usr/bin/.sshd: Linux.Trojan.Agent FOUND
/usr/sbin/ss: Linux.Trojan.Agent FOUND
/usr/sbin/lsof: Linux.Trojan.Agent FOUND
总结:处理木马或病毒
在Linux系统上,一切皆文件,木马和病毒文件可以直接删除,但是前提条件是要找到还驻留在内存中的进程,否则文件删除之后,进程会再次下载病毒或木马文件。
运气比较好的时候,木马或病毒只是新增了文件,kill问题进程,删除病毒文件,系统就恢复正常了。
运气不好的时候,木马或病毒干掉了系统自带的文件,此时删除文件之后系统一些功能不正常,此时记得不要重启,找一个一模一样系统版本的文件直接SCP文件过来即可,记得保持文件的权限、所有者都相同,系统功能即可恢复正常。如果没有一模一样的服务器操作系统,可以在本地用虚拟机做一个,目的是拿到正常文件到染毒的服务器上做恢复。