我们将描述并解决在使用 ClamAV 防病毒软件 (clamscan, clamdscan 和 freshclam) 时出现的最常见错误。
ClamAV 从源代码编译的错误在这里不做讨论。
clamdscan "无法打开文件或目录 错误"
当你扫描文件或目录时,某些文件可能会导致此错误。这些文件因此不会被扫描,也不会进行恶意软件检测。
这可能是由于目录或文件的权限问题,因此你需要检查 clamdscan 是否具有读取和写入这些文件和目录的权限。
但这也可能是由于 apparmor 导致的。解决方法是将 clamd 设置为 apparmor 的“complain”模式。以下是 Debian 的解决方法:
apt-get install apparmor-utils
aa-complain /usr/sbin/clamd
clamdscan "文件路径检查失败:权限被拒绝 错误"
要解决此错误,你可以尝试以下 3 种解决方法:
- 将扫描的文件和目录权限设置为 666:chmod 666 *
- 使用 --fdpass 选项运行 clamdscan:clamdscan --fdpass
- 使用 --stream 选项运行 clamdscan:clamdscan --stream
freshclam 日志中的 "忽略镜像(由于先前的错误)"
当出现此错误消息时,说明你无法下载防病毒软件的签名数据库。
此消息表示你使用的是 ClamAV 0.102 之前的版本。
从 0.102 版本开始,freshclam 的网络部分代码发生了根本变化。因此,要解决此错误,必须更新你的 ClamAV 版本。
freshclam 日志中的 "nonblock_connect: connect(): fd=5 errno=101: 网络无法访问" 和 "警告:getpatch: 无法从 db.local.clamav.net 下载 daily-xxx.cdiff"
此消息表示无法连接到 ClamAV 服务器以下载防病毒软件的签名数据库。
- 可能是你的服务器存在互联网连接问题。
- 可能是你正在使用代理(无论是否透明)。freshclam 更喜欢直接连接到 ClamAV 服务器,并且对通过代理的连接支持不好,尤其是当代理修改 HTTP(S) 连接的属性时,比如更改 User-Agent。
- 可能是你正在使用非常旧的 ClamAV 版本,必须更新它。
freshclam 日志中的 "警告:无法从 db.local.clamav.net (IP: ) 读取 main.cvd 头部"
你无法下载防病毒软件的签名数据库。
可能是 mirrors.dat 文件已满。该文件用于将 ClamAV 的镜像服务器列入黑名单,如果它们发生错误。如果你曾经断开过互联网连接,freshclam 可能已将所有镜像列入黑名单,导致没有可用的镜像。
解决方法是删除该文件(例如 Debian 中的 /var/lib/clamav/mirrors.dat),然后重新启动 freshclam。
需要注意的是,从 0.100 版本开始,此问题已不存在。因此,如果你看到此类错误,说明更新 ClamAV 非常重要。
"警告:消息:SSL 对等证书或 SSH 远程密钥无效" 出现在 freshclam 的日志中
您无法更新防病毒软件的签名数据库,并且出现了此消息。
可能是您的计算机时间不正确。请通过 NTP 更新日期和时间。
"错误:此工具需要 libclamav 的功能级别 XXX 或更高(当前功能级别:XXX)"
可能是您系统上安装了两个不同版本的 libclamav。这可能是由操作系统提供的两个版本。只需删除较旧的版本即可。也可能是 ClamAV 源代码安装版本与操作系统提供的版本混合使用。请确保系统中只安装一个版本的 libclamav。
"LibClamAV 错误:yyerror()" 和 "LibClamAV 警告:cli_loadyara:无法解析或加载 1 个 yara 规则文件"
ClamAV 支持 YARA 格式的病毒签名。但使用的 Yara 解释引擎是 ClamAV 特有的,且与官方 Yara 解释器不完全兼容。
因此,某些 YARA 规则可能无法完全兼容 ClamAV。
解决此问题的方法:
- 您可以重新编写导致问题的 YARA 规则,使其与 ClamAV 兼容。
- 您可以希望 ClamAV 的 Yara 引擎在未来得到改进。
使用 ClamAV 时出现的 "LibClamAV 错误",例如 "LibClamAV 错误:[scan_biff_for_xlm_macros] 意外的状态值 4"
这些错误非常具体,可能表明 ClamAV 在扫描数据时出现了问题。我们建议将信息报告给 ClamAV 开发团队,您可以在
官方 GitHub 上提交问题。
"LibClamAV 警告:fmap:映射分配失败","LibClamAV 错误:CRITICAL:fmap() 失败" 和 "无法分配内存 错误" 在使用 ClamAV 时
此错误消息通常表示扫描时内存不足。因此:
- 可能是您的内存不足,您应该增加服务器或 VPS 的内存。
- 可能是您正在扫描一个过大的对象。为避免此问题,您可以在命令行中设置扫描对象的大小限制:--max-filesize 或 --max-scansize。
- 可能是您正在扫描系统文件或目录,例如 Linux 下的 /proc 目录。请勿扫描此类目录。
"分段故障(核心转储)" 在使用 ClamAV 时
此错误消息通常是最重要的,表明防病毒软件崩溃严重到操作系统终止了 ClamAV 进程。
但该消息过于通用,可能由多种原因引起,例如操作系统配置、可用资源(内存)或您尝试扫描的对象(例如过大或系统文件 /proc)。
因此,无法确定崩溃的确切原因,最佳解决方案是向 ClamAV 开发团队在其
官方 GitHub 提交错误报告。
TCP:未从 systemd 接收到 tcp AF_INET/AF_INET6 SOCK_STREAM 套接字
ClamAV 守护进程正在运行,但 TCP 端口 3310 没有打开:“lsof -i|grep clamd” 命令没有返回任何结果。
启动 clamd 时,出现以下错误消息:“TCP:未从 systemd 接收到 tcp AF_INET/AF_INET6 SOCK_STREAM 套接字”。
解决方法是创建目录 /etc/systemd/system/clamav-daemon.socket.d/,并在其中放置文件 /etc/systemd/system/clamav-daemon.socket.d/extend.conf:
cat /etc/systemd/system/clamav-daemon.socket.d/extend.conf
[Socket]
SocketUser=clamav
ListenStream=3310
然后重启服务器。
ClamAV 防病毒软件的生命周期政策 (End-Of-Life 或 EOL)
自 2024 年 12 月 15 日起,只有
ClamAV 防病毒软件的 1.0.x、1.3.x 和 1.4.x 版本 得到支持和维护。
如果您使用的是早期版本,ClamAV 不再正常工作,因为最新的签名数据库与这些旧版本不兼容。因此,您需要使用我们的
ClamAV 附加签名,至少要使用专业版,或者紧急更新您的 ClamAV 防病毒软件。最好同时做这两件事!
进一步了解,我建议您阅读我们关于
旧版本 ClamAV 防病毒软件的文章。
ClamWin 防病毒软件无法使用
ClamWin 是 ClamAV 防病毒软件的 Windows 移植版,但由第三方开发。因此,ClamWin 不由 Cisco / Sourcefire 团队支持或开发。不幸的是,该 Windows 防病毒软件不再由其所有者开发,最后一个可用版本是 0.103.2.1。如前所述,ClamAV 不再支持 0.103 版本,因此 ClamAV 已禁止下载 ClamWin 的签名数据库,这使其完全无效,因此不建议在企业或生产环境中使用 ClamWin。
我们推荐的解决方案是
下载 ClamAV 的官方 Windows 版本。有 32 位和 64 位版本可供选择。虽然该版本没有图形用户界面(GUI),但 ClamAV 的命令行并不复杂,您只需要一些简单的 BAT 文件来自动化扫描您的硬盘。
另外,还有一个
ClamAV 防病毒软件的非官方 Windows 移植版,它有一个有趣的特点,即可以在非常旧的 Windows 系统(如 WinNT 和 Windows 98)上运行!但它仍然是命令行操作,并且没有图形界面。
使用 SecuriteInfo.com 签名时出现错误 426
如果在使用 freshclam 下载
我们的防病毒签名 时遇到错误 426,说明您使用的是免费账户,并且您的 ClamAV 防病毒软件已经过时。
解决方案是更新您的 ClamAV 安装,或者选择一个“专业”订阅以下载我们的签名。最好同时做这两件事,以显著提高您的安装对恶意软件的检测能力。
无法下载 securiteinfoold.hdb,或出现 'nonblock_recv: recv timing out (30 secs)' 或 'Download failed (28) ... Message: Timeout was reached' 错误
- 对于 ClamAV 版本低于 0.102.2,向您的 freshclam.conf 文件中添加 "ReceiveTimeout 2400" 并重新启动 freshclam 守护进程。
- 对于 ClamAV 0.102.2 及以上版本,删除 freshclam.conf 文件中的 ReceiveTimeout 并重新启动 freshclam 守护进程。
更新您的 ClamAV 版本
正如您所看到的,大多数问题都可以通过将 ClamAV 防病毒软件更新到最新版本来解决。您可以选择适合您环境的方法来执行此操作。
- 如果您是从源代码重新编译 ClamAV,只需获取 ClamAV 最新版本的源代码文件,并在您的环境中重新编译。请注意操作系统的版本:如果您使用的是过旧的操作系统,可能会导致 ClamAV 编译错误。
- 如果您有 ClamAV 的可执行版本,如 ClamAV Windows,只需安装包含新版本可执行文件的包。这是最简单的解决方案!
- 如果您的操作系统提供了 ClamAV 防病毒软件,如大多数 Linux 环境(Ubuntu、Debian、Red Hat、CentOS 等),那么您必须更新您的操作系统。如果更新操作系统过于繁琐,则建议删除操作系统中的 ClamAV 软件包,并从源代码安装和重新编译 ClamAV。但如前所述,如果操作系统过于陈旧,ClamAV 可能无法重新编译。
进一步了解,我们建议阅读我们的文章
使用旧版 ClamAV 防病毒软件的风险是什么?
SecuriteInfo.com 支持
如果您有 ClamAV 的特定需求,例如维护合同、编译支持或技术监控,请随时
联系我们 并告诉我们您的需求。我们很高兴为您提供 ClamAV 防病毒保护支持。
ClamAV 官方支持
如果您遇到其他错误消息,或者希望与 ClamAV 开发团队直接联系,您有两种选择:
- 您可以订阅 官方邮件列表(仅支持英文),然后通过电子邮件提出问题。ClamAV 社区和一些开发人员会在此邮件列表中回复您。
- 您可以在他们的 官方 GitHub 上创建一个工单。但为此您需要是开发人员,因为您需要提供大量的技术细节。这不是面向大众的支持。
您知道吗?
SecuriteInfo.com 提供
ClamAV 附加防病毒签名,可以极大地提高恶意软件和垃圾邮件的检测能力。
注:ClamAV 是 Cisco 注册商标
Tags
ANTIVIRUS
CLAMAV
LINUX
WINDOWS
MACOS
Inscription à notre lettre d'information
Inscrivez-vous à notre
lettre d'information pour vous tenir au courant de nos actualités et de nos dernières trouvailles.