ClamAV是一个C语言开发的开源病毒扫描工具用于检测木马/病毒/恶意软件等。可以在线更新病毒库,Linux系统的病毒较少,但是并不意味着病毒免疫,尤其是对于诸如邮件或者归档文件中夹杂的病毒往往更加难以防范,而ClamAV则能起到不少作用。
Install and Configure ClamAV on CentOS 7
yum install -y epel-release
yum install -y clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
修改配置文件
cp /etc/clamd.d/scan.conf /etc/clamd.d/scan.conf.backup
sed -i '/^Example/d' /etc/clamd.d/scan.conf
sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
vim /etc/clamd.d/scan.conf
User clamscan
LocalSocket /var/run/clamd.scan/clamd.sock
cp /etc/freshclam.conf /etc/freshclam.conf.bak
sed -i '/^Example/d' /etc/freshclam.conf
更新病毒库
freshclam
cd /var/lib/clamav
wget http://database.clamav.net/main.cvd
wget http://database.clamav.net/daily.cvd
wget http://database.clamav.net/bytecode.cvd
chown clamupdate:clamupdate *
设置定期更新病毒库(可选)
crontab -e
00 01,13 * * * /usr/bin/freshclam --quiet
因为freshclam不是系统服务,可新建如下
vim /usr/lib/systemd/system/freshclam.service
[Unit]
Description = freshclam scanner
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 2 #一天更新两次
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target
systemctl enable freshclam.service
systemctl start freshclam.service
systemctl status freshclam.service
启动查杀服务
systemctl enable clamd@scan.service
systemctl start clamd@scan.service
systemctl status clamd@scan.service
查看clamAV的配置信息:
clamconf
测试一下:下载个含病毒的文件并杀掉
wget http://www.eicar.org/download/eicar_com.zip
clamscan --infected --remove --recursive .
clamscan --infected --remove --recursive . ./eicar_com.zip: Eicar-Test-Signature FOUND ./eicar_com.zip: Removed.
removed说明可用
查杀两个目录
clamscan --infected --remove --recursive /home /root
扫描整个系统
clamscan --infected --recursive --exclude-dir="^/sys" /
3. 病毒扫描
clamav 有两个命令:clamdscan、clamscan
clamdscan 命令一般用 yum 安装才能使用,需要启动clamd服务,执行速度快
clamscan 命令通用,不依赖服务,命令参数较多,执行速度稍慢
clamdscan:
用clamdscan扫描,需要开始服务才能使用。速度快,不用带 -r ,默认会递归扫描子目录
clamdscan /usr
clamscan:
用clamscan扫描,不需要开始服务就能使用。速度慢,要带-r,才会递归扫描子目录
clamscan -r /usr
这个命令不仅会显示找到的病毒,正常的扫描文件也会显示出来。
可以用下面这个命令,只显示找到的病毒信息
clamscan --no-summary -ri /tmp
-r 递归扫描子目录
-i 只显示发现的病毒文件
--no-summary 不显示统计信息
可以写个脚本,用这句命令定期扫描,有返回值即触发告警。
