一提起杀毒软件,我们第一个想到的可能是360,瑞星,卡巴斯基等软件以及windows系统,很少有听说Linux系统需要杀毒的。
Linux一方面是由于它开源以及一切皆文件等特性,一方面使得它被广大的人群所维护,另一方面它还能限制病毒的传播(注意Linux用户权限,服务要尽量避免使用root权限)。但是,这并不意味着Linux就没有病毒了,因为只要你的服务器在网络上提供服务,就有可能被传播病毒,最常见的是普通用户上传的文件中有可能就带有病毒。
如果没有负责网络的网络工程师来定期进行网络巡检的话,Linux也可以安装一些软件来进行杀毒。如果是云服务器,不同的厂商也有着各自的云安全工具。
下面介绍的clamav配合邮件发送,对扫描出来的病毒文件进行通知。
(实际上clamav等软件可以直接对病毒文件进行删除或移动病毒文件位置,为了防止某些误判导致异常,建议由人来进行最终处理)
<1>进入官网选择合适的版本下载
http://www.clamav.net/downloads
or
wget http://www.clamav.net/downloads/production/clamav-0.101.2.tar.gz
<2>安装
yum -y install gcc-c++ openssl openssl-devel
tar xf clamav-0.101.2.tar.gz
cd clamav-0.101.2
./configure --prefix=/usr/local/clamav -disable-clamav
make -j4
make install
<3>做软链接
ln -s /usr/local/clamav/bin/* /usr/bin/
ln -s /usr/local/clamav/sbin/* /usr/sbin/
<4>创建相关文件
用于更新及日志记录等
mkdir -pv /usr/local/clamav/logs/
mkdir -pv /usr/local/clamav/updata/
mkdir -pv /usr/local/clamav/test/
touch /usr/local/clamav/logs/clamd.log
touch /usr/local/clamav/logs/freshclam.log
<5>创建clamav用户并授权
useradd clamav -s /sbin/nologin
chown -R clamav.clamav /usr/local/clamav
<6>修改配置文件
cd /usr/local/clamav/etc
cp /usr/local/clamav/etc/clamd.conf.sample /usr/local/clamav/etc/clamd.conf
cp /usr/local/clamav/etc/freshclam.conf.sample /usr/local/clamav/etc/freshclam.conf
egrep -v "^$|^#" clamd.conf
LogFile /usr/local/clamav/logs/clamd.log #配置日志
PidFile /usr/local/clamav/clamd.pid #配置pid位置
DatabaseDirectory /usr/local/clamav/updata #配置更新目录
LocalSocket /tmp/clamd.socket #配置socket位置
egrep -v "^$|^#" freshclam.conf
DatabaseDirectory /usr/local/clamav/updata #配置更新目录
UpdateLogFile /usr/local/clamav/logs/freshclam.log #配置日志
PidFile /usr/local/clamav/freshclam.pid #配置pid位置
DatabaseMirror database.clamav.net #配置病毒库更新网址
注意要将两个配置文件中的Example注释掉,例如:#Example
<1>更新病毒库
(扫描之前更新病毒库,依据病毒库进行杀毒)
freshclam
如更新失败,可wget下载
cd /usr/local/clamav/updata/
rm -rf mirrors.dat
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>病毒扫描 clamscan
clamscan不依赖服务,执行速度稍慢,但是不需要开始服务就能使用
常用参数:
-r 递归扫描子目录
-l 增加扫描报告
-i 只显示发现的病毒文件
-o 跳过扫描OK的文件
--no-summary 不显示统计信息
--move (+路径) 移动病毒文件至其他位置
--remove 删除病毒文件(加此参数后,扫描出的病毒文件会直接删除)
--quiet 只输出错误消息
--unzip or unrar 解压压缩文件进行扫描
clamscan -ri / -l /usr/local/clamav/logs/clamav.`date +%F`\.log
<3> 病毒扫描 clamdscan
clamdscan依赖于clamd服务,执行速度快,参数少(默认递归,无需加-r)
clamd start
clamdscan /home
邮箱配置可参考下列链接:
https://blog.csdn.net/GX_1_11_real/article/details/100046657
<1>邮件脚本
/script/check_clam.sh
#!/bin/bash
data=`date +%F`
data_log=/usr/local/clamav/logs/clamav.$data.log
if [[ -s $data_log ]];then
mail -s "病毒文件列表" XXX.qq.com < $data_log
else
echo "未检测到病毒文件"
fi
如有多台安装clamav的服务器,可将每台检测出的日志汇总到一台再进行判断并发送邮件
根据需求配置
10 0 * * * /usr/bin/freshclam
20 0 * * * /usr/bin/clamscan -ri / -l /usr/local/clamav/logs/clamav.`date +%F`\.log
0 8 * * * /script/check_clam.sh >> /var/log/check_clam.log 2>&1 &