我正在实施 Linux 反病毒解决方案,使用按访问模式运行的 ClamAV 守护程序,在主机系统和在主机上运行的 docker 容器中监视创建/打开的文件中是否存在恶意内容。到目前为止,我发现了哪些限制:
- fanotify 不适用于容器内的文件(设计使然)
- fanotify 根据挂载点(每个文件系统)工作
- fanotify 不允许使用
OnAccessMountPath
ClamAV 配置中的指令来实现 OnAccessPrevention - inotify 允许实现 OnAccessPrevention
- inotify 将不允许监视
/
并且 Clamav 将退出并出现错误:
clamd: ERROR: ScanOnAccess: Not including path '/' while DDD is enabled
clamd: ERROR: ScanOnAccess: Please use the OnAccessMountPath option to watch '/'
要使用 OnAccessPrevention,您需要使用 OnAccessIncludePath (inotify) 而不是 OnAccessMountPath (fanotify)。
- 完整的签名数据库非常庞大,必须加载到内存中(850Mb)
- 在 Linux 机器上扫描 Windows 签名没有任何意义(我没有扫描电子邮件)
到目前为止,我已经运行了两个 ClamAV 守护进程在此 SO 答案中描述:一个用于/var/lib/docker
模式inotify
-OnAccessIncludePath
配置中的指令,另一个用于模式 -配置/
中的指令fanotify
OnAccessMountPath
我可以只为整个主机运行一个守护进程吗,它将执行扫描并在发现恶意文件时打印通知?
参考: