linux clamav 离线更新病毒库
ClamAV 离线更新病毒库,核心思路就是:在一台能联网的机器上下载病毒库文件,再手动拷到内网服务器上覆盖。下面给你完整的操作流程。
1、下载病毒库:ClamAV完整病毒库文件介绍:
- main.cvd:主病毒库,基础特征库,约 160MB
- daily.cvd:每日增量更新,约 60MB
- bytecode.cvd:检测逻辑,约 300KB
📥下载地址:
wget --no-check-certificate https://database.clamav.net/main.cvd
wget --no-check-certificate https://database.clamav.net/daily.cvd
wget --no-check-certificate https://database.clamav.net/bytecode.cvd⚠️ 官方镜像站是 HTTPS 协议且证书链严格,加 --no-check-certificate 避免证书问题中断下载。
到官网下载daily.cvd,每天的病毒库下载地址:https://db.local.clamav.net/daily.cvd
2、找安装目录:
将daily.cvd拷贝到对应的目录中。默认为/var/lib/clamav/目录,若不知道,按下面方法查看。
📂 怎样找到服务器上的病毒库目录,在安装 ClamAV 的服务器上,查看病毒库存放路径:
grep "DatabaseDirectory" /etc/clamav/freshclam.conf3、替换病毒库文件:
- 替换前,先备份旧文件(建议先备份而不是直接删):
cd /var/lib/clamav
mv *.cvd *.cld /tmp/backup/- 拷贝新文件到病毒库目录
cp main.cvd daily.cvd bytecode.cvd /var/lib/clamav/修改权限(重要,否则 clamd 无法读取):
chown -R clamav:clamav /var/lib/clamav/
chmod 644 /var/lib/clamav/*.cvd4、重新加载病毒库
执行clamdscan --reload。它会通知clamd去重新加载病毒库。(ubuntu下用不了clamdscan),只能用以下方式手动更新:
sudo systemctl stop clamav-freshclamsudo freshclam重载后,查看版本号和日期变化:
clamdscan --version看到版本号和日期变化,说明更新成功。也可以在日志里确认:
tail -f /var/log/clamav/clamd.log看到 "Database correctly reloaded" 即成功
5、注意事项和扫描使用:
其实,只要下载以下几个文件放到/var/lib/clamav/目录,就算更新病毒库了。(注:freshclam自动更新时可能 daily.cvd 名称为 daily.cld )
https://database.clamav.net/main.cvd
https://database.clamav.net/daily.cvd
https://database.clamav.net/bytecode.cvd
注意文件权限:
-rw-r--r-- 1 clamav clamav 289733 12月 22 15:59 bytecode.cvd
-rw-r--r-- 1 clamav clamav 204950016 12月 25 09:22 daily.cld
-rw-r--r-- 1 clamav clamav 69 12月 22 15:58 freshclam.dat
-rw-r--r-- 1 clamav clamav 170479789 12月 22 15:59 main.cvd然后执行clamdscan --version,或clamscan -V查看版本信息。
例如我的结果如下:
ClamAV 0.105.0/26531/Wed May 4 08:05:36 2022
26531 这个值会变。后面的为时间。
例如我用今天5-10的病毒库看看结果
ClamAV 0.105.0/26536/Mon May 9 08:04:57 2022
可以对比看到相应的变化。
clamd更新病毒库时会打印日志(日志文件/var/log/clamav/clamd.log):
Tue May 10 06:21:03 2022 -> Reading databases from /var/lib/clamav
Tue May 10 06:21:23 2022 -> Database correctly reloaded (8616100 signatures)
Tue May 10 06:21:23 2022 -> Activating the newly loaded database...- clamscan-Linux查毒工具的命令详解
clamscan命令用于扫描文件和目录,一发现其中包含的计算机病毒,clamscan命令除了扫描linux系统的病毒外,主要扫描的还是文件中包含的windows病毒。
clamscan [选项] [路径] [文件]
--quiet 使用安静模式,仅仅打印出错误信息
-i 仅仅打印被感染的文件
-d 以指定的文件作为病毒库,一代替默认的/var/clamav目录下的病毒库文件
-l 指定日志文件,以代替默认的/var/log/clamav/freshclam.log文件
-r 递归扫描,即扫描指定目录下的子目录
--move= 把感染病毒的文件移动到指定目录
--remove 删除感染病毒的文件
- 扫描:clamscan /home
---------------------------------扫描后的显示结果解析---------------------------------------
----------- SCAN SUMMARY ----------- 扫描摘要
Known viruses: 8574034 已知病毒数量
Engine version: 0.103.4 引擎版本
Scanned directories: 1 扫描目录数
Scanned files: 1 扫描文件数
Infected files: 0 感染文件数
Data scanned: 51.96 MB 扫描的数据大小
Data read: 24.40 MB (ratio 2.13:1) 读取的数据大小
Time: 30.075 sec (0 m 30 s) 花费总时间
Start Date: 2022:05:28 11:06:57 开始时间
End Date: 2022:05:28 11:07:27 结束时间
ClamAV扫描后默认不会清除病毒,ClamAV扫描只负责报告感染文件,不会自动清除或删除病毒,需要手动执行操作或加参数才行。
--remove:自动删除或尝试清除感染文件。加-r是递归扫描
clamscan -r --remove /homeclamdscan --remove /home--delete:强制直接删除,不做清除尝试,不可逆。
clamscan -r --delete /home--move=<目录>:把感染文件移到隔离区,便于审查。
clamscan -r --move=/var/lib/clamav/quarantine /home⚠️ 注意:使用删除类参数前要谨慎,尤其在生产环境。--remove 会静默删除匹配签名的文件,可能误删被篡改的合法程序。建议先不加参数扫描确认,或先用 --move 隔离观察。