开源防病毒引擎ClamAV
本文软件是应网友
Windows
的要求折腾的;
什么是 ClamAV ?
ClamAV
是一个开源 (GPLv2
) 反病毒工具包,专为邮件网关上的电子邮件扫描而设计。它提供了许多实用程序,包括灵活且可扩展的多线程守护程序、命令行扫描程序和用于自动数据库更新的高级工具。该软件包的核心是一个以共享库形式提供的反病毒引擎。
ClamAV
支持多平台安装,包括 Windows
、macOS
、Linux
、 Docker
等
但需要注意的是
ClamAV
不是传统的防病毒或端点安全套件;- 无论您使用的是官方
ClamAV docker
镜像还是运行ClamAV
的第三方镜像,您都需要确保您有足够的RAM
。
ClamAV
的推荐 RAM
(截至 2020/09/20
):
- 最低:
3 G
- 首选:
4 G
安装
在群晖上以 Docker 方式安装。
本文写作时,
latest
对应的版本是stable
,也就是稳定版,具体对应的版本号是1.1.0
;
如果你熟悉命令行,可能用 docker cli
更快捷。
用 SSH
客户端登录到群晖主机,然后在命令行执行下面的命令。在 docker
文件夹中,创建一个新文件夹 clamav
,并在其中建一个子文件夹 data
,其中 data
子目录是用于保存和持久化病毒库的
1 | # 新建文件夹 clamav 和 子目录 |
运行
下载病毒库
第一次运行,需要下载和更新病毒库
ClamAV
容器实际上默认同时运行freshclam
和clamd
守护进程。要控制在容器内启动的服务的行为,需通过环境变量来控制。
官方的说明:https://docs.clamav.net/manual/Installing/Docker.html#controlling-the-container
1 | # 更新病毒数据库 |
下载的时间取决于网络的情况
当看到 SelfCheck: Database status OK.
时,可以用 Ctrl+C
来退出容器的运行,--rm
参数确保容器在退出后会被清理
回到 FileStation
,在 data
中能看到下载的病毒库文件
运行 Clam(D) 扫描
Docker
无法访问任何的主机文件。因此,要在 Docker
中扫描这些文件,需要使用绑定挂载来挂载它们,以便可以访问。
例如:将主机目录 /path/to/scan
挂载在容器中作为 /scandir
,然后调用clamcan
在 /scandir
上完成扫描
1 | # 扫描主机 /path/to/scan 目录 |
下面的示例,是将群晖的 docker
目录挂载后进行扫描
硬盘崩溃之前,老苏的
docker
目录在volume2
上;
1 | # 示例:扫描 docker 目录 |
能直接看到扫描的详情
参考文档
Cisco-Talos/clamav: ClamAV - Documentation is here: https://docs.clamav.net
地址:https://github.com/Cisco-Talos/clamavclamav/README.Docker.md at main · Cisco-Talos/clamav · GitHub
地址:https://github.com/Cisco-Talos/clamav/blob/main/README.Docker.mdClamAVNet
地址:https://www.clamav.net/Introduction - ClamAV Documentation
地址:https://docs.clamav.net/ClamAV® blog
地址:https://blog.clamav.net/