【问题标题】:How to be sure ClamAV database is up to date?如何确保 ClamAV 数据库是最新的?
【发布时间】:2022-01-19 19:51:19
【问题描述】:

我目前在 Centos 6.9 上遇到 ClamAV 和freshclam 的问题。

我有最后一个 Clam 引擎 0.99.2,并且有正常的互联网连接。 即使我在# clamscan 之前运行# freshclam -v 命令(它只返回有关freshclam.conf 不安全权限的安全警告),clamAV 也会返回此警告:

LibClamAV Warning: ************************************************** LibClamAV Warning: *** The virus database is older than 7 days. *** LibClamAV Warning: *** Please update it IMMEDIATELY! *** LibClamAV Warning: **************************************************

所以我的问题是:我怎么知道上次更新是什么时候完成的?或者确保病毒库是最新的?

PS : 我用 eicar 测试文件测试了 clamscan,它检测到了。

【问题讨论】:

    标签: linux centos antivirus virus-scanning clam


    【解决方案1】:

    clamscan --version 显示签名的版本和日期,例如

    $ clamscan --version
    ClamAV 0.101.4/25613/Fri Oct 25 11:00:25 2019
    

    其中25613 是签名版本,后面是签名日期

    【讨论】:

      【解决方案2】:

      您有 2 个问题:

      1. 我如何知道上次更新的时间?

      host -t txt current.cvd.clamav.net; perl -e 'printf "%d\n", time;'

      这将告诉您 clamav 何时提供上次更新。

      1. 确保病毒库是最新的?

      首先,您需要了解收到安全警告的原因。如果您在此处发布警告,也许我们会有更好的机会帮助您。

      那我建议你查看/var/log/clamav/freshclam.log的日志

      另外,如果你启用了 selinux,你必须运行这个:setsebool -P antivirus_can_scan_system 1。如果有任何机会出现类似During database load : LibClamAV Warning: RWX mapping denied: Can't allocate RWX Memory: Permission denied 的错误,那么显然您的解决方案就是我上面提到的命令。

      【讨论】:

      • #1 将仅打印上次将更新推送到 clamav.net 站点的时间,而不是在系统上完成上次 AV 更新的时间。您需要检查/var/log/clamav/freshclam.log 中的日志并在此文件末尾查找字符串“ClamAV update process started”。这将显示 ClamAV 上次在系统上更新的时间。
      【解决方案3】:

      这就是我对您问题的第二部分所做的:确保病毒数据库是最新的?

      我的系统处于脱机状态,因此无法从 clamav 站点查询他们最近的病毒定义数据库,但我可以使用这个 linux 命令轻松检查当前 cvd 文件的日期。

      strings /var/lib/clamav/daily.cvd|head -1|cut -c1-28
      ClamAV-VDB:31 Jul 2019 04-17
      

      编辑:正如 Jonathon 所提到的,sigtool 是检查 clamav dat 文件签名的好方法:

      sigtool --info daily.cvd
      File: daily.cvd
      Build time: 28 Aug 2019 04:24 -0400
      Version: 25555
      Signatures: 1739106
      Functionality level: 63
      Builder: raynman
      ...
      

      【讨论】:

      【解决方案4】:

      您不能相信TXT 记录的日期。但是,您可以信任来自 TXT 记录的数据库版本。

      所以,正确的答案是使用@bogdan 和@falko-menge 答案的一部分:

      首先,“我的机器上的 clamav 数据库是什么版本的?” (在本例中为 25904):

      $ clamscan --version
      ClamAV 0.102.4/25904/Mon Aug 17 08:02:24 2020
      

      现在,“clamav.net 上提供的最新版本是什么?” (在本例中,也是 25904):

      @ ✓ $ host -t txt current.cvd.clamav.net; perl -e 'printf "%d\n", time;'
      current.cvd.clamav.net descriptive text "0.102.4:59:25904:1597879740:1:63:49191:331"
      

      但是,TXT 记录显示 25904 实际创建的时间是错误的:-(

      @ ✓ $ epoch_to_rfc_3339 1597879740
      2020-08-19T18:29:00
      

      【讨论】:

        【解决方案5】:

        #!/bin/bash

        check_clamav_version=freshclam -V check_clamav_site=host -t txt current.cvd.clamav.net

        #echo $check_clamav_version #echo $check_clamav_site

        clamav_version=echo $check_clamav_version |awk -F '/' '{ print $2}' clamav_site=echo $check_clamav_site |awk -F ":" '{ print $3}'

        回声 $clamav_version 回声 $clamav_site 让“结果=clamav_site-clamav_version”;回显$结果

        案例$结果 0) echo "ClamAV 是最新的,versies zijn gelijk" ;; *) echo "ClamAV 是最新的,lokale 数据库是 versie $clamav_version,op de 站点是 versie $clamav_site beschibaar。" ;; esac

        ~ ~

        【讨论】:

        • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。
        猜你喜欢
        • 1970-01-01
        • 2015-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多