基本介绍

虽然说clamav是linux下的病毒查杀软件,实际上clamav是一个全端的、开源的、免费的病毒查杀软件。

Linux病毒查杀软件Clamav_linux

最新版本:1.1.0

支持平台:win、linux、mac

收费情况:免费、开源

官网下载:点击跳转官网

安装与使用

windows下面的安装就不介绍了,因为都很简单,主要介绍linux下的安装。

linux安装clamav

apt install -y clamav

Linux病毒查杀软件Clamav_官网_02

linux更新病毒库

freshclam

Linux病毒查杀软件Clamav_开源杀毒软件_03

linux扫描

  • -r:迭代目录
  • -l:指定日志路径
  • --max-dir-recursion:指定目录深度
clamscan -r /etc --max-dir-recursinotallow=5 -l /root/etcclamav.log
/usr/local/clamav/bin/clamscan--remove (查杀当前目录并删除感染的文件)

Linux病毒查杀软件Clamav_官网_04

如果服务器没啥限制的话,可以直接对跟目录“/”扫描,从扫描概要里面可以看出,我这里没有扫描出病毒,如果有病毒的话,去日志里面查一下FOUND,就知道是啥病毒了。

Mac用户下载

找到官网下载页面,选择需要的系统,即可下载并安装。

Linux病毒查杀软件Clamav_linux_05

选择最后一个pkg安装包

Mac用户安装

找到已经下载好的pkg安装包,双击后输入密码即可安装。

Linux病毒查杀软件Clamav_官网_06


Mac用户配置杀毒软件

默认配置即可,如需特别配置参见用户手册。
用户手册:https://docs.clamav.net/manual/Usage/Configuration.html 主要的配置文件有三个,分别是下图

Linux病毒查杀软件Clamav_配置文件_07

如果目录下不存在可以手工命令创建

方法1:
clamconf -g freshclam.conf > freshclam.conf
clamconf -g clamd.conf > clamd.conf
clamconf -g clamav-milter.conf > clamav-milter.conf

方法2:
touch freshclam.conf
touch clamd.conf
touch clamav-milter.conf

同步病毒库

创建好三个空配置文件后,使用freshclam命令同步最新的病毒库。

XXX@XXXXMac etc % freshclam
Creating missing database directory: /usr/local/clamav/share/clamav
ERROR: Failed to create database directory: /usr/local/clamav/share/clamav
Manually prepare the database directory, or re-run freshclam with higher privileges.
ERROR: Initialization error!
#注意使用管理员权限运行

XXX@XXXXMac etc % sudo freshclam
Creating missing database directory: /usr/local/clamav/share/clamav
Assigned ownership of database directory to user "clamav".
ClamAV update process started at Sat Feb  4 21:44:12 2023
daily database available for download (remote version: 26802)
Download failed (92)  Message: Stream error in the HTTP/2 framing layeriB
Can't download daily.cvd from https://database.clamav.net/daily.cvd
Trying again in 5 secs...
daily database available for download (remote version: 26802)
Time:  2m 40s, ETA: 54m 09s [>                        ]    2.72MiB/57.84MiB

运行扫描查杀制定文件

添加ClamAV运行环境变量,以zsh为例

vi ~/.zshrc
#添加下面的语句到.zshrc文件
export PATH=/usr/local/clamav/bin:/usr/local/clamav/sbin:$PATH

在命令行运行下列命令

clamdscan [*options*] [*file/directory/-*]
#例:对 file1.apk 扫描
clamdscan file1.apk

MAC下,安装过程中其他问题

问题1:无法创建或编辑freshclam.conf等配置文件
chmod 775 XXX.conf 
#修改要编辑的文件权限即可
问题2:vi无法修改freshclam.conf

在编辑freshclam.conf文件时会显示E212、E325错误

E212: Can't open file for writing
出现E212这个错误的原因可能有两个:
1当前用户的权限不足
2此文件可能正被其他程序或用户使用。

E325: ATTENTION
Found a swap file by the name "/var/tmp/freshclam.conf.swp"
          owned by: XXXX   dated: 六  2 04 21:37:33 2023
         file name: /usr/local/clamav/etc/freshclam.conf
          modified: YES
         user name: windnemo   host name: winddeMac-mini.local
        process ID: 37868
While opening file "freshclam.conf"
出现E325这个错误的原因可能有两个:
1此文件可能正被其他程序或用户使用。
2编辑器崩溃过缓存文件冲突,这时只需要删除"/var/tmp/freshclam.conf.swp"文件
问题3:创建了freshclam.conf依然无法运行
$ freshclam
ERROR: Can't open/parse the config file /usr/local/etc/clamav/freshclam.conf

需要修改报错的配置文件,如freshclam.conf等

# Comment or remove the line below.
Example

↓ 把上面的格式,改为下面的。暨注释掉Example。

# Comment or remove the line below.
# Example

其他技巧或配置

配置日志存放目录

mkdir  /usr/local/clamav/logs

touch  /usr/local/clamav/logs/clamd.log

touch  /usr/local/clamav/logs/freshclam.log

配置clamav病毒库目录

mkdir   /usr/local/clamav/updata  

chown  -R   root.clamav /usr/local/clamav/

chown  -R   clamav.clamav /usr/local/clamav/updata/

其他

chownclamav.clamav  /usr/local/clamav/logs/clamd.log

chownclamav.clamav  /usr/local/clamav/logs/freshclam.log

cd   /usr/local/clamav/etc

cp  clamd.conf.sample  clamd.conf

cp  freshclam.conf.sample  freshclam.conf

vim  clamd.conf

#Example    注释掉这一行.

LogFile  /usr/local/clamav/logs/clamd.log   

PidFile  /usr/local/clamav/updata/clamd.pid    

Database  Directory  /usr/local/clamav/updata

vim  freshclam.conf

#Example    注释掉这一行.  

Database Directory  /usr/local/clamav/updata

UpdateLogFile  /usr/local/clamav/logs/freshclam.log

PidFile  /usr/local/clamav/updata/freshclam.pid

配置计划任务

实际生产环境应用一般使用计划任务,让服务器每天晚上定时跟新和定时杀毒。保存杀毒日志,我的crontab文件如下

1  3  * **         /usr/local/clamav/bin/freshclam

30 3  * * *          /usr/local/clamav/bin/clamscan  --infected  -r /  --remove -l /var/log/clamscan.log