内容纲要ClamAV是一个C语言开发的开源病毒扫描工具用于检测木马/病毒/恶意软件等。可以在线更新病毒库,
Linux系统的病毒较少,但是并不意味着病毒免疫,尤其是对于诸如邮件或者归档文件中夹杂的病毒往往更
加难以防范,而ClamAV则能起到不少作用
1.安装依赖
yum install -y pcre* zlib zlib-devel libssl-devel libssl openssl epel-release
2.yum安装
安装后会自动生成服务文件,启动服务后,可使用clamdsacn命令,扫描速度快。
启动服务后,会实时监控扫描连接,虽然安全性高了,不过可能会对服务器性能有影响。
yum install clamav clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
这种方法安装后,病毒库默认地址是/var/lib/clamav
2.1更新病毒库
执行更新命令,下载病毒库
/usr/bin/freshclam
如果下载不了,可以 wget 到本地来。
cd /usr/share/clamav
wget http://database.clamav.net/main.cvd wget http://database.clamav.net/daily.cvd wget http://database.clamav.net/bytecode.cvd chown clamav:clamav *
2.2病毒扫描
clamav 有两个命令:clamdscan、clamscan
clamdscan 命令一般用 yum 安装才能使用,需要启动clamd服务,执行速度快clamscan 命令通用,不依赖服务,命令参数较多,执行速度稍慢clamdscan:
用clamdscan扫描,需要开始服务才能使用。速度快,不用带 -r ,默认会递归扫描子目录
service clamd start clamdscan /usr clamscan:
用clamscan扫描,不需要开始服务就能使用。速度慢,要带-r,才会递归扫描子目录
clamscan -r /usr
这个命令不仅会显示找到的病毒,正常的扫描文件也会显示出来。可以用下面这个命令,只显示找到的病毒信息
clamscan --no-summary -ri /tmp
-r 递归扫描子目录
-i 只显示发现的病毒文件
--no-summary 不显示统计信息
3.编译安装
需要手动编译安装,安装虽然不需要连网,但更新病毒库还是需要联网;
安装后不用启动服务,不能使用clamdsacn命令,可使用clamscan命令,扫描速度相对较慢;
clamav官网:http://www.clamav.net/downloads wget直接下载源码包。
wget http://www.clamav.net/downloads/production/clamav-0.102.2.tar.gz
3.1下载软件包
# 官网地址:
http://www.clamav.net/downloads # Linux中下载地址:
wget http://www.clamav.net/downloads/production/clamav-0.102.2.tar.gz # 参考文档:
https://github.com/vrtadmin/clamav-faq/raw/master/manual/clamdoc.pdf
3.2创建clamav用户和存放病毒库目录
#clamav用户
useradd -s /sbin/nologin -M clamav #日志存放目录
mkdir -p /usr/local/clamav/logs
touch /usr/local/clamav/logs/clamd.log touch /usr/local/clamav/logs/freshclam.log
chown clamav.clamav /usr/local/clamav/logs/clamd.log chown clamav.clamav /usr/local/clamav/logs/freshclam.log
#病毒存放目录
mkdir -p /usr/local/clamav/updata chown -R root.clamav /usr/local/clamav/
chown -R clamav.clamav /usr/local/clamav/updata/
3.3解压安装包
tar xf clamav-0.102.2.tar.gz
3.4编译安装
cd clamav-0.100.0/
./configure --prefix=/usr/local/clamav --with-pcre make && make install
echo $?
# 注: 出现Your libcurl (e.g. libcurl-devel) is too old. Installing ClamAV with clamonacc requires libcurl 7.45 or higher. For a quick fix, run ./configure again with --disable-clamonacc if you do not wish to use on-access scanning features.
For more information on ### 需要升级libcurl
3.5升级libcurl
3.51安装repo
rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org- release-2-1.rhel7.noarch.rpm
3.52查看该 repo 包含的 curl 版本
yum --showduplicates list curl --disablerepo="*" --enablerepo="city*"
3.53修改该repo的enable为1
vi /etc/yum.repos.d/city-fan.org.repo [city-fan.org]
name=city-fan.org repository for Red Hat Enterprise Linux (and clones)
$releasever ($basearch)
#baseurl=http://mirror.city-fan.org/ftp/contrib/yum- repo/rhel$releasever/$basearch
mirrorlist=http://mirror.city-fan.org/ftp/contrib/yum-repo/mirrorlist- rhel$releasever
enabled=1 gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org
3.54安装最新的curl
yum install curl
3.6配置clamav
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 DatabaseDirectory /usr/local/clamav/updata
vim freshclam.conf #Example 注释掉这一行. 添加下面三行
DatabaseDirectory /usr/local/clamav/updata UpdateLogFile /usr/local/clamav/logs/freshclam.log PidFile /usr/local/clamav/updata/freshclam.pid
3.7启动clamav
chown -R clamav.clamav /usr/local/clamav/
systemctl start clamav-freshclam.service
systemctl enable clamav-freshclam.service
systemctl status clamav-freshclam.service
3.8更新病毒库
#先停止freshclam
systemctl stop clamav-freshclam.service #再更新
/usr/local/clamav/bin/freshclam (根据网络质量确定更新时长)
或者
cd /usr/local/clamav/update
wget http://database.clamav.net/main.cvd wget http://database.clamav.net/daily.cvd wget http://database.clamav.net/bytecode.cvd
3.9更新完成启动
systemctl start clamav-freshclam.service
systemctl status clamav-freshclam.service
3.10扫描杀毒
clamdscan:
一般用yum安装才能使用,需要启动clamd服务,执行速度快;
用clamdscan扫描,需要开始服务才能使用。速度快,不用带-r,默认会递归扫描子目录;
clamdscan /usr clamscan:
通用,不依赖服务,命令参数较多,执行速度稍慢; 用clamscan扫描,不需要开始服务就能使用;
-r 递归扫描子目录
-i 只显示发现的病毒文件
--no-summary 不显示统计信息扫描参数:
-r/--recursive[=yes/no] 所有文件
--log=FILE/-l FILE 增加扫描报告
--move [路径] 移动病毒文件至..
--remove [路径] 删除病毒文件
--quiet 只输出错误消息
--infected/-i 只输出感染文件
--suppress-ok-results/-o 跳过扫描OK的文件
--bell 扫描到病毒文件发出警报声音
--unzip(unrar) 解压压缩文件扫描
# 扫描所有文件并且显示有问题的文件的扫描结果
clamscan -r --bell -i /
# 只显示找到的病毒信息
clamscan --no-summary -ri /tmp
# 扫描home
clamscan --infected --remove --recursive /home
3.11定时杀毒
vim /etc/crontab # 服务器每天晚上11点半定时更新和12点杀毒,保存杀毒日志
30 23 * * * root /usr/local/clamav/bin/freshclam --quiet &>/dev/null
00 0 * * * root /usr/local/clamav/bin/clamscan -r /home -l /var/log/clamscan.log 00 4 * * * root /usr/local/clamav/bin/clamscan -r /usr /etc -l /var/log/clamscan.log
3.12 查看扫描日志
cat /var/log/clamscan.log
# Infected files: 0 表示被感染的文件数 FOND
# 可以找到感染的文件手动删除
或是/usr/local/clamav/bin/clamscan -r /usr /etc --remove -l
/var/log/clamscan.log 直接将扫描到被感染的文件删除