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

基于「ClamAv」通过python进行病毒检测(1)-- ClamAv源码编译安装

程序员文章站 2022-05-27 13:35:30
...

详细介绍ClamAv的安装部署过程,方式多种多样,这里以最复杂的源码编译安装为例。

一、环境

基于centos7系统,进行ClamAv的源码编译,系统配置如下:

系统: centos7 64位 (minimal)
cpu:  1
内存: 1G

二、编译安装

2.1、依赖安装

yum groupinstall "Development Tools"

yum install openssl openssl-devel libcurl-devel zlib-devel libpng-devel libxml2-devel json-c-devel bzip2-devel pcre2-devel ncurses-devel

yum install valgrind check check-devel

2.2、ClamAv安装包下载

目前最新版本:clamav-0.103.0.tar.gz

wget https://www.clamav.net/downloads/production/clamav-0.103.0.tar.gz

下载方式多种多样,如果wget方式下载太慢,也可以直接用浏览器下载后,拷贝到centos7系统中。

2.3、编译、安装

第一步:解压下载的安装包,并进入到解压后目录:

tar xzf clamav-0.103.0.tar.gz
cd clamav-0.103.0

第二步: configure

./configure --enable-check

第三步:make

make -j2

第四步:(可选)测试make是否正确:

make check

看到以下输出,表示make正常:

=======================================================================
Testsuite summary for ClamAV 0.103.0
=======================================================================
# TOTAL: 13
# PASS:  7
# SKIP:  6
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
=======================================================================

第五步:安装:

make install

三、配置

源码安装后,需要配置才能正常使用。

3.1 配置freshclam

freshclamClamAv自带的病毒库下载更新工具。

freshclam的配置文件为freshclam.conf

如果编译安装时采用的默认路径,那么,在/usr/local/etc/路径下有一份freshclam.conf.sample示例配置文件可以利用。

第一步,将freshclam.conf.sample复制为正式配置文件:

cp /usr/local/etc/freshclam.conf.sample /usr/local/etc/freshclam.conf

为了防止用户直接使用freshclam.conf.sample,所以在freshclam.conf.sample中,有一句未被注释的文本字符串Example,如下:

[[email protected]程序员的一天 app]# cat /usr/local/etc/freshclam.conf.sample 
##
## Example config file for freshclam
## Please read the freshclam.conf(5) manual before editing this file.
##


# Comment or remove the line below.
Example

# Path to the database directory.
# WARNING: It must match clamd.conf's directive!
# Default: hardcoded (depends on installation options)
#DatabaseDirectory /var/lib/clamav

同样,复制后的freshclam.conf配置中也存在。

第二步,修改配置文件:

[[email protected]程序员的一天 clamav-0.103.0]# vim /usr/local/etc/freshclam.conf

找到
Example
修改为:
# Example

tip:#号表示注释。

3.2、下载病毒库

配置freshclam后,可以利用它下载或者更新病毒库。

第一步,创建保存病毒库的文件目录:

mkdir /usr/local/share/clamav

第二步,下载病毒库:

freshclam

命令就是这么简单!

如果,工具下载太慢,我们也可以手动下载:

cd /usr/local/share/clamav
wget http://database.clamav.net/main.cvd
wget http://database.clamav.net/daily.cvd
wget http://database.clamav.net/bytecode.cvd

clamav提供了一个签名工具sigtool,可以查看、生成和解压缩病毒库。 利用sigtool查看病毒库规则详细信息:

[[email protected]程序员的一天 clamav]# sigtool -i main.cvd 
File: main.cvd
Build time: 25 Nov 2019 08:56 -0500
Version: 59
Signatures: 4564902
Functionality level: 60
Builder: sigmgr
MD5: af6f9a95b19fcce8be2c84bde73b5db6
Digital signature: VeNZg/gIMosAkDvAv5U4IezNpJzBILxyOIbrsmFVrQRpFEULdbLbRK1csHyDHu9nTzNOwX7fiDiZkM7eOoaF91JNtL0Hju3SHrzWzY0K6nV6NV2+y+RohIpjvHJDx98ViAuCou/b2O7ryjD1u31jhBwwckGU+DwdIzmjXNJu3Jb
Verification OK.
[[email protected]程序员的一天 clamav]# 

3.3、配置clamd

clamdClamAv的守护进程,通过clamd可以控制ClamAv执行各种操作。

clamd的配置文件为clamd.conf

过程同配置freshclam时一样。

第一步,将clamd.conf.sample复制为clamd.conf后修改:

cp /usr/local/etc/clamd.conf.sample /usr/local/etc/clamd.conf

第二步,编辑修改:

[[email protected]程序员的一天 clamav-0.103.0]# vim /usr/local/etc/clamd.conf

找到
Example
修改为:
# Example

如果要允许clamd和其他应用程序通信。如,通过socketclamd接收指令,控制clamscan等。需要选择一个socket选项。至少启用以下选项之一:

LocalSocket
TCPSocket

常用的为TCPSocket

clamd.conf中找到:
# TCPSocket 3310
修改为:
TCPSocket 3310

使用3310端口通信。

3.4 使用clamd

配置完毕后,需要启动clamd服务:

[[email protected]程序员的一天 clamav]# clamd
[[email protected]程序员的一天 clamav]# 

这里需要注意,一定要保证/usr/local/share/clamav目录下有病毒库文件,否则会报错:

[[email protected]程序员的一天 clamav]# clamd
LibClamAV Error: cli_loaddbdir(): No supported database files found in /usr/local/share/clamav
ERROR: Can't open file or directory

查看clamd版本:

[[email protected]程序员的一天 clamav]# clamd --version
ClamAV 0.103.0/25929/Sun Sep 13 21:53:46 2020

到此,clamd启动成功,ClamAv安装完毕!

tip:没有找到clamd停止的命令,我们可以这样停止它:killall clamd。如有更好方法,还望告知,非常感谢~

END.

我的部分文章会首发在公众号上。微信读者,可以搜一搜:【程序员的一天】,感兴趣的朋友可以关注,支持一下,谢谢!

每一个关注点赞,都是极大的支持和鼓励。最后,非常感谢阅读。