本文软件是应网友
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
子目录是用于保存和持久化病毒库的
# 新建文件夹 clamav 和 子目录
mkdir -p /volume2/docker/clamav/data
# 进入 clamav 目录
cd /volume2/docker/clamav
# 下载镜像
docker pull clamav/clamav:latest
第一次运行,需要下载和更新病毒库
ClamAV
容器实际上默认同时运行freshclam
和clamd
守护进程。要控制在容器内启动的服务的行为,需通过环境变量来控制。
官方的说明:https://docs.clamav.net/manual/Installing/Docker.html#controlling-the-container
# 更新病毒数据库
docker run -it \
--rm \
--name clamav \
-v $(pwd)/data:/var/lib/clamav \
-e CLAMAV_NO_FRESHCLAMD=false \
clamav/clamav:latest
下载的时间取决于网络的情况
当看到 SelfCheck: Database status OK.
时,可以用 Ctrl+C
来退出容器的运行,--rm
参数确保容器在退出后会被清理
回到 FileStation
,在 data
中能看到下载的病毒库文件
Docker
无法访问任何的主机文件。因此,要在 Docker
中扫描这些文件,需要使用绑定挂载来挂载它们,以便可以访问。
例如:将主机目录 /path/to/scan
挂载在容器中作为 /scandir
,然后调用clamcan
在 /scandir
上完成扫描
# 扫描主机 /path/to/scan 目录
docker run -it \
--rm \
--name clamav \
-v /path/to/scan:/scandir \
-v $(pwd)/data:/var/lib/clamav \
clamav/clamav:latest \
clamscan /scandir
下面的示例,是将群晖的 docker
目录挂载后进行扫描
硬盘崩溃之前,老苏的
docker
目录在volume2
上;
# 示例:扫描 docker 目录
docker run -it \
--rm \
--name clamav \
-v /volume2/docker:/scandir \
-v $(pwd)/data:/var/lib/clamav \
clamav/clamav:latest \
clamscan /scandir
能直接看到扫描的详情
Cisco-Talos/clamav: ClamAV - Documentation is here: https://docs.clamav.net
地址:https://github.com/Cisco-Talos/clamav
clamav/README.Docker.md at main · Cisco-Talos/clamav · GitHub
地址:https://github.com/Cisco-Talos/clamav/blob/main/README.Docker.md
ClamAVNet
地址:https://www.clamav.net/
Introduction - ClamAV Documentation
地址:https://docs.clamav.net/
ClamAV® blog
地址:https://blog.clamav.net/