Linux 下杀毒软件 clamav 0.104.2 离线安装及测试(CentOS7)
1.下载安装
clamav 官网下载 clamav-0.104.2.linux.x86_64.rpm
# 有网络可用如下命令下载wget https://www.clamav.net/downloads/production/clamav-0.104.2.linux.x86_64.rpm
将该文件上传至服务器,安装命令如下:
rpm -ivh --prefix=/usr/local/clamav clamav-0.104.2.linux.x86_64.rpm
2. 配置
添加用户组和组成员
groupadd clamavuseradd -g clamav clamav
创建日志目录、病毒库目录和套接字目录
mkdir -p /usr/local/clamav/logsmkdir -p /usr/local/clamav/updatemkdir -p /usr/local/clamav/socket
创建日志文件
touch /usr/local/clamav/logs/clamd.logtouch /usr/local/clamav/logs/freshclam.log
文件授权
chown clamav:clamav /usr/local/clamav/logs/clamd.logchown clamav:clamav /usr/local/clamav/logs/freshclam.logchown clamav:clamav /usr/local/clamav/logschown clamav:clamav /usr/local/clamav/updatechown clamav:clamav /usr/local/clamav/socket
修改配置文件
cp /usr/local/clamav/etc/clamd.conf.sample /usr/local/clamav/etc/clamd.confcp /usr/local/clamav/etc/freshclam.conf.sample /usr/local/clamav/etc/freshclam.conf
文件1:clamd.conf
vim /usr/local/clamav/etc/clamd.conf
#Example //注释掉这一行#添加以下内容LogFile /usr/local/clamav/logs/clamd.log PidFile /usr/local/clamav/update/clamd.pid DatabaseDirectory /usr/local/clamav/update LocalSocket /usr/local/clamav/socket/clamd.socket
文件2:freshclam.conf
vim /usr/local/clamav/etc/freshclam.conf
#Example //注释掉这一行#添加以下内容DatabaseDirectory /usr/local/clamav/update UpdateLogFile /usr/local/clamav/logs/freshclam.log PidFile /usr/local/clamav/update/freshclam.pid
将这两个文件复制一下:
cp /usr/local/clamav/etc/*.conf /usr/local/etc/
3. 运行
配置库文件路径
vim /etc/ld.so.conf
追加一行:
/usr/local/clamav/lib64
更新生效:
ldconfig
如果最后运行时仍然报错:
clamscan: error while loading shared libraries: libclamav.so.9: cannot open shared object file: No such file or directory
则说明配置没有生效。
下载病毒库文件并上传到目录 /usr/local/clamav/update
main.cvd
daily.cvd
bytecode.cvd注:也可以在有网络的机器上运行如下命令更新病毒库:
/usr/local/clamav/bin/freshclam
创建命令软件链接
ln -s /usr/local/clamav/bin/clamscan /usr/local/bin/clamscanln -s /usr/local/clamav/bin/freshclam /usr/local/bin/freshclam
运行使用
# clamscan -r 指定目录(不填则默认当前目录)clamscan -r# 后台运行nohup clamscan -r / > clamscanNohup.log 2>&1 &
卸载程序
rpm remove clamav
4.服务器配置
4.1 设置 daemon 守护进程(推荐)
开机自动更新病毒库
# 启动clamav守护进程freshclam --daemon# 设置freshclam开机自启动echo "/usr/local/clamav/bin/freshclam --daemon" >> /etc/rc.d/rc.local
守护模式启动程序
/usr/local/clamav/sbin/clamd
检查是否开启守护进程
# 运行如下命令,其中 TPGID 显示为 -1ps ajx | more
ps ajx | grep freshclamps ajx | grep clamd
4.2 定时任务
配置在定时任务中:
# 打开定时任务配置文件crontab -e# 升级病毒库1 2 * * * /usr/local/clamav/bin/freshclam# 定时查杀指定目录并删除感染的文件1 3 * * * clamscan -r / --remove -l /var/log/clamscan.log
crontab 命令说明
# m h dom mon dow command
在 crontab 文件中,通过 m h dom mon dow command
这六个字段来设置定时任务,每一行对应一个定时任务。这六个字段的含义说明如下:
m:对应分钟(minute)
指定要在一小时之中的第几分钟执行该任务。取值范围是 0-59.h:对应小时(hour)
指定要在一天之中的第几个小时执行该任务。取值范围是 0-23.dom:对应日期(day of month)
指定要在一月之中的第几天执行该任务。取值范围是 0-31.mon:对应月份(month)
指定要在一年之中的第几月执行该任务。取值范围是 1-12。
也可以通过月份英文名称的前三个字母来指定,不区分大小写。例 如,一月的英文单词是 january,那么这里可以用 jan 来指定一月。dow:对应星期几(day of week)
指定要在一周之中的星期几执行该任务。取值范围是 0-7,0 和 7 都对应星期天。
也可以通过星期英文名称的前三个字母来指定,不区分大小写。例如,星期一的英文单词是 monday,那么这里可以用 mon 来指定星期一。command:对应具体的操作
提供具体的命令来指定进行什么操作,可以提供脚本文件的路径来执行该脚本文件。
这六个字段要求用空格隔开。且每个字段都必须提供值,不能省略某个字段的值。从第五个字段之后的所有内容都属于第六个字段,也就是要执行的操作。
前五个字段可以使用下面的特殊字符来指定一些特殊的时间:
表示任意一个有效的取值。例如,把日期指定为
*
,则表示每一天都进行该任务。-
表示一个有效的范围值。例如,在小时指定为8-11
,表示在 8点、9点、10点、和 11点都执行该任务。,
表示隔开不同的取值列表。例如,把小时指定为2,3,5,7
,表示在 2点、3点、5点、7点都执行该任务。
注意:在逗号后面不要加空格,空格表示隔开不同的字段。/
表示一个时间间隔,而不是指定具体的时间。例如,把小时指定为*/2
,表示每间隔两小时执行一次该任务。
5.ClamAV 常用命令
# 更多参数详见clamscan -h freshclam -h
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) 解压压缩文件扫描