基于「ClamAv」通过python进行病毒检测(1)-- ClamAv源码编译安装
详细介绍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
freshclam
为ClamAv
自带的病毒库下载更新工具。
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
clamd
是ClamAv
的守护进程,通过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
和其他应用程序通信。如,通过socket
,clamd
接收指令,控制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.
我的部分文章会首发在公众号上。微信读者,可以搜一搜:【程序员的一天】,感兴趣的朋友可以关注,支持一下,谢谢!
每一个关注、点赞,都是极大的支持和鼓励。最后,非常感谢阅读。