Linux病毒扫描工具-ClamAV
参考文献
ClamAV
ClamAV
是一个开源(GPLv2)反病毒工具包,专为在邮件网关上扫描电子邮件而设计。它提供了许多实用程序,包括一个灵活的、可扩展的多线程守护进程、一个命令行扫描程序和用于自动数据库更新的高级工具。该软件包的核心是以共享库的形式提供的防病毒引擎。
安装
使用软件包安装
-
默认的从源代码安装将进入
/usr/local
,其中包含:- 应用程序:
/usr/local/bin
- 守护进程:
/usr/local/sbin
- 库文件:
/usr/local/lib
- 头文件:
/usr/local/include
- 配置文件:
/usr/local/etc/
- 病毒库:
/usr/local/share/clamav/
- 应用程序:
-
使用
Linux
软件包安装,默认安装在/usr
中,其中包含:- 应用程序:
/usr/bin
- 守护进程:
/usr/sbin
- 库文件:
/usr/lib
- 头文件:
/usr/include
- 配置文件:
/etc/clamav
- 病毒库:
/var/lib/clamav/
- 应用程序:
配置ClamAV
-
可以使用
clamconf
生成配置文件1
2
3clamconf -g freshclam.conf > freshclam.conf
clamconf -g clamd.conf > clamd.conf
clamconf -g clamav-milter.conf > clamav-milter.conf- 使用
FreshClam
之前需要创建一个freshclam.conf
- 使用
ClamD
之前需要创建一个 - 使用
ClamAV-Milter
之前需要创建一个clamav-milter.conf
- 使用
freshclam
-
freshclam
是自动更新病毒库的工具。它可以配置为在两种模式下工作:- 交互式 - 从命令行按需执行
- 守护进程 - 静默在后台自动执行
-
根据示例配置文件创建
freshclam.conf
文件1
2cp -a /usr/local/etc/freshclam.conf.sample /usr/local/etc/freshclam.conf
sed -i 's/^Example/#Example/g' /usr/local/etc/freshclam.conf -
编辑
/usr/local/etc/freshclam.conf
,添加以下内容1
2
3UpdateLogFile /var/log/freshclam.log
LogTime yes
DatabaseOwner root参数说明
**UpdateLogFile:**指定更新日志文件
**LogTime:**配置日志文件显示时间戳
**DatabaseOwner:**指定病毒库文件所属用户
更多配置参数可执行man freshclam.conf
进行查询 -
创建日志文件
1
2
3touch /var/log/freshclam.log
chmod 600 /var/log/freshclam.log
chown clamav /var/log/freshclam.log -
更新病毒库(首次更新建议手动前台执行)
1
freshclam
-
为了保证病毒库能持续升级更新,可执行以下命令启动
freshclam
守护进程实现自动更新1
freshclam -d
-
若不想
freshclam
长期占用系统资源,可通过crontab
自定义设置定期更新1
2# 每5分钟更新一次病毒库
*/5 * * * * /usr/local/bin/freshclam
ClamD
ClamD
是一个多线程守护程序,它使用libclamav
扫描文件以查找病毒。通过修改clamd.conf
可以配置扫描行为以满足大多数需求。
clamd.conf
-
目前,
ClamAV
要求先配置clamd.conf
文件,然后才可以运行守护进程,至少需要注释掉 “Example” 行,否则 clamd 将认为配置无效。 -
根据示例配置文件创建
clamd.conf
文件1
2cp -a /usr/local/etc/clamd.conf.sample /usr/local/etc/clamd.conf
sed -i 's/^Example/#Example/g' /usr/local/etc/clamd.conf -
编辑
/usr/local/etc/clamd.conf
,添加以下内容1
2
3
4
5LogFile /var/log/clamd.log
LogTime yes
LocalSocket /run/clamav/clamd.sock
LocalSocketMode 660
User root参数说明
**LogFile:**指定 clamd 日志文件
**LogTime:**配置日志文件显示时间戳
**LocalSocket:**指定 socket 文件路径
**LocalSocketMode:**指定 socket 文件权限
**User:**设置运行 clamd 的用户身份
更多配置参数可执行man clamd.conf
进行查询
启动扫描
1 | clamd |
ClamDScan
ClamDScan
是一个ClamD
客户端,它大大简化了使用Clamd
扫描文件的任务。它通过clamd.conf
中指定的套接字向clamd
守护进程发送命令,并在守护进程完成所有请求的扫描后生成扫描报告。因此在运行ClamDScan
之前,必须先运行一个ClamD
实例。
使用方式
1 | clamdscan [*options*] [*file/directory/-*] |
Clamdtop
clamdtop
是用于监视 的一个或多个实例的工具clamd
。它有一个彩色的 ncurses 界面,该界面显示每个排队的作业、内存使用情况以及有关已连接clamd
实例的已加载签名数据库的信息。默认情况下,它将尝试连接到 中定义的clamd.conf
本地clamd
。可以在命令行中指定其他clamd
实例。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HoleLin's Blog!