欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux病毒扫描并输出报告

程序员文章站 2022-05-27 13:31:42
...

一、概念

linux的病毒检测工具


二、安装方式

1、下载文件
wget https://www.clamav.net/downloads/production/clamav-0.101.1.tar.gz
2、解压
tar -zxvf clamav-0.101.1.tar.gz -C /opt #目录可自定义,我这里是opt
3、安装依赖
yum -y install libxml2 libxml2-devel openssl*
yum -y install c++ gcc-c++
4、编译安装
cd /usr/local/clamav-0.101.1/
./configure && make && make check && make 

三、配置(无脑复制即可)

复制freshclam示例配置
cp /usr/local/etc/freshclam.conf.sample /usr/local/etc/freshclam.conf
sed -i "s/^Example/# Example/" /usr/local/etc/freshclam.conf
sed -i "s/#LogTime/LogTime/" /usr/local/etc/freshclam.conf
sed -i "s/#LogRotate/LogRotate/" /usr/local/etc/freshclam.conf
sed -i "s/#NotifyClamd \/path\/to\/clamd.conf/NotifyClamd \/usr\/local\/etc\/clamd.conf/" /usr/local/etc/freshclam.conf
sed -i "s/#DatabaseOwne/DatabaseOwne/" /usr/local/etc/freshclam.conf
创建数据库目录
mkdir /usr/local/share/clamav
复制clamd 配置(可选)
cp /usr/local/etc/clamd.conf.sample /usr/local/etc/clamd.conf
sed -i "s/^Example/# Example/" /usr/local/etc/clamd.conf
sed -i "s/#TCPSocket/TCPSocket/" /usr/local/etc/clamd.conf
sed -i "s/#LogTime/LogTime/" /usr/local/etc/clamd.conf
sed -i "s/#LogClean/LogClean/" /usr/local/etc/clamd.conf
sed -i "s/#LogRotate/LogRotate/" /usr/local/etc/clamd.conf
sed -i "s/#User/User/" /usr/local/etc/clamd.conf                #这一步的用户是clamav用户,
sed -i "s/#ScanOnAccess/ScanOnAccess/" /usr/local/etc/clamd.conf
sed -i "s/#OnAccessIncludePath \/home/OnAccessIncludePath \/home/" /usr/local/etc/clamd.conf
sed -i "s/#OnAccessExcludePath \/home\/bofh/OnAccessExcludePath \/home\/bofh/" /usr/local/etc/clamd.conf
sed -i "s/#OnAccessPrevention/OnAccessPrevention/" /usr/local/etc/clamd.conf
创建用户
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav
chown -R clamav:clamav /usr/local/share/clamav #最后设置数据库目录的用户所有权
下载/更新签名数据库
freshclam

四、clamscan用法:

1、语法
clamscan 参数  检测的目录
2、选项
是否常用 参数 释义
clamscan --help 查看帮助
–log=FILE 将扫描报告保存到FILE
-r 递归扫描,即扫描指定目录下的子目录
–copy=DIRECTORY 将受感染的文件复制到DIRECTORY中
-i 仅仅打印被感染的文件
–quiet 仅输出错误消息
–official-db-only[=yes/no(*)] 只加载官方签名
–max-filesize=#n 将跳过大于此的文件并假定为干净
–max-scansize=#n 要扫描每个容器文件的最大数据量
–leave-temps[=yes/no(*)] 不要删除临时文件
–file-list=FILE 从文件中扫描文件
–bell 病毒检测的响铃
–cross-fs[=yes(*)/no] 扫描其他文件系统上的文件和目录
–bytecode-timeout=N 设置字节码超时(以毫秒为单位)
–heuristic-alerts[=yes(*)/no] 切换启发式警报
–alert-encrypted[=yes/no(*)] 警告加密档案和文件
–nocerts 在PE文件中禁用authenticode证书链验证
–disable-cache 禁用缓存和缓存检查扫描文件的哈希值
-d <文件> 以指定的文件作为病毒库,一代替默认的/var/clamav目录下的病毒库文件
-l <文件> 指定日志文件,以代替默认的/var/log/clamav/freshclam.log文件
–move=<目录> 把感染病毒的文件移动到指定目录
–remove 删除感染病毒的文件

五、示例

1、检查opt及子目录所有文件,并输出到指定文件
clamscan -r /opt/ --log=/tmp/2021-12-17-clamscan-check_log
2、扫描某个文件
clamscan /opt/a.sh