当前位置: 首页 > news >正文

如何在 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文件过来即可,记得保持文件的权限、所有者都相同,系统功能即可恢复正常。如果没有一模一样的服务器操作系统,可以在本地用虚拟机做一个,目的是拿到正常文件到染毒的服务器上做恢复。

http://www.dtcms.com/a/272017.html

相关文章:

  • 设计模式 - 教程
  • 自动驾驶控制系统
  • 低频低压减载装置
  • Go从入门到精通(20)-一个简单web项目-服务搭建
  • 循环神经网络(RNN)Python实现详解
  • 什么是VR实景漫游?VR实景的制作办法?
  • VR博物馆:概念与内涵
  • 广州华锐互动在各领域打造的 VR 成功案例展示​
  • 数字孪生技术引领UI前端设计新趋势:增强现实与虚拟现实的融合应用
  • VBA即用型代码手册:Range对象 Range Object
  • vue3 uniapp 使用ref更新值后子组件没有更新 ref reactive的区别?使用from from -item执行表单验证一直提示没有值
  • 软考(软件设计师)计算机网络-物理层,数据链路层
  • QT - Qvector用法
  • Java设计模式之行为型模式(观察者模式)介绍与说明
  • 关于k8s Kubernetes的10个面试题
  • 【AXI】读重排序深度
  • Scala实现网页数据采集示例
  • linux的用户和权限(学习笔记
  • 西门子200SMART如何无线联三菱FX3U?御控工业网关实现多站点PLC无线通讯集中控制!
  • MiniGPT4源码拆解——models
  • 膨胀卷积介绍
  • QPC框架中状态机的设计优势和特殊之处
  • 大模型在膀胱癌诊疗全流程预测及应用研究报告
  • 【Linux基础命令使用】VIM编辑器的使用
  • 【个人笔记】负载均衡
  • Linux小白学习基础内容
  • LUMP+NFS架构的Discuz论坛部署
  • 可视化DIY小程序工具!开源拖拽式源码系统,自由搭建,完整的源代码包分享
  • Spring Boot 3.4 :@Fallback 注解 - 让微服务容错更简单
  • 分桶表的介绍和作用