如何确定 ClamAV 数据库是最新的?
How to be sure ClamAV database is up to date?
我目前在 Centos 6.9 上遇到 ClamAV 和 freshclam 的问题。
我有最新的 Clam 引擎 0.99.2,并且有可用的互联网连接。
即使我在 # clamscan
、clamAV return 之前 运行 # freshclam -v
命令(它只是 return 关于 freshclam.conf 的不安全许可的安全警告)我这个警告:
LibClamAV Warning: **************************************************
LibClamAV Warning: *** The virus database is older than 7 days. ***
LibClamAV Warning: *** Please update it IMMEDIATELY! ***
LibClamAV Warning: **************************************************
所以我的问题是:我怎么知道上次更新是什么时候完成的?或者确保病毒库是最新的?
PS : 我用 eicar 测试文件测试了 clamscan,它检测到了它。
您有 2 个问题:
- 我怎么知道上次更新是什么时候完成的?
host -t txt current.cvd.clamav.net; perl -e 'printf "%d\n", time;'
这将告诉您 clamav 上次更新的时间。
- 确保病毒库是最新的?
首先您需要了解为什么会收到安全警告。如果您 post 这里的警告也许我们会有更好的机会帮助您。
然后我建议你查看日志 /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
那么很明显你的解决方案就是我上面提到的命令。
这就是我针对你问题的第二部分所做的:确保病毒库是最新的?
我的系统处于离线状态,因此无法在 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
...
clamscan --version
显示签名的版本和日期,例如
$ clamscan --version
ClamAV 0.101.4/25613/Fri Oct 25 11:00:25 2019
其中 25613
是签名版本,后面是签名日期
您不能相信 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
#!/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 }'
clamav_site=echo $check_clamav_site |awk -F ":" '{ print }'
回声$clamav_version
回声$clamav_site
让“结果=clamav_site-clamav_version”;回声$结果
案例$结果在
0) echo "ClamAV 是最新的,版本相同"
;;
*) echo "ClamAV 不是最新的,本地数据库是版本 $clamav_version,站点有版本 $clamav_site 可用。"
;;
esac
~
~
我目前在 Centos 6.9 上遇到 ClamAV 和 freshclam 的问题。
我有最新的 Clam 引擎 0.99.2,并且有可用的互联网连接。
即使我在 # clamscan
、clamAV return 之前 运行 # freshclam -v
命令(它只是 return 关于 freshclam.conf 的不安全许可的安全警告)我这个警告:
LibClamAV Warning: **************************************************
LibClamAV Warning: *** The virus database is older than 7 days. ***
LibClamAV Warning: *** Please update it IMMEDIATELY! ***
LibClamAV Warning: **************************************************
所以我的问题是:我怎么知道上次更新是什么时候完成的?或者确保病毒库是最新的?
PS : 我用 eicar 测试文件测试了 clamscan,它检测到了它。
您有 2 个问题:
- 我怎么知道上次更新是什么时候完成的?
host -t txt current.cvd.clamav.net; perl -e 'printf "%d\n", time;'
这将告诉您 clamav 上次更新的时间。
- 确保病毒库是最新的?
首先您需要了解为什么会收到安全警告。如果您 post 这里的警告也许我们会有更好的机会帮助您。
然后我建议你查看日志 /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
那么很明显你的解决方案就是我上面提到的命令。
这就是我针对你问题的第二部分所做的:确保病毒库是最新的?
我的系统处于离线状态,因此无法在 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
...
clamscan --version
显示签名的版本和日期,例如
$ clamscan --version
ClamAV 0.101.4/25613/Fri Oct 25 11:00:25 2019
其中 25613
是签名版本,后面是签名日期
您不能相信 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
#!/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 }'
clamav_site=echo $check_clamav_site |awk -F ":" '{ print }'
回声$clamav_version 回声$clamav_site 让“结果=clamav_site-clamav_version”;回声$结果
案例$结果在 0) echo "ClamAV 是最新的,版本相同" ;; *) echo "ClamAV 不是最新的,本地数据库是版本 $clamav_version,站点有版本 $clamav_site 可用。" ;; esac
~ ~