基本介绍
虽然说clamav是linux下的病毒查杀软件,实际上clamav是一个全端的、开源的、免费的病毒查杀软件。
最新版本:1.1.0
支持平台:win、linux、mac
收费情况:免费、开源
官网下载:点击跳转官网
安装与使用
windows下面的安装就不介绍了,因为都很简单,主要介绍linux下的安装。
linux安装clamav
apt install -y clamav
linux更新病毒库
freshclam
linux扫描
- -r:迭代目录
- -l:指定日志路径
- --max-dir-recursion:指定目录深度
clamscan -r /etc --max-dir-recursinotallow=5 -l /root/etcclamav.log
/usr/local/clamav/bin/clamscan--remove (查杀当前目录并删除感染的文件)
如果服务器没啥限制的话,可以直接对跟目录“/”扫描,从扫描概要里面可以看出,我这里没有扫描出病毒,如果有病毒的话,去日志里面查一下FOUND
,就知道是啥病毒了。
Mac用户下载
找到官网下载页面,选择需要的系统,即可下载并安装。
Mac用户安装
找到已经下载好的pkg安装包,双击后输入密码即可安装。
Mac用户配置杀毒软件
默认配置即可,如需特别配置参见用户手册。
用户手册:https://docs.clamav.net/manual/Usage/Configuration.html
主要的配置文件有三个,分别是下图
如果目录下不存在可以手工命令创建
方法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