Clam AntiVirus是一个开源(GPLv2)防病毒工具包,专门用于在邮件网关上进行电子邮件扫描。它提供了许多实用程序,包括灵活且可扩展的多线程守护程序,命令行扫描程序以及用于自动数据库更新的高级工具。该软件包的核心是以共享库的形式提供的防病毒引擎。
Centos8 目前clamav官方并未提供rpm包,需从源码编译安装。
本文同样适用于Centos7
CentOS 8 特别要求:必须安装了EPEL存储库并启用了PowerTools,否则后面某些软件包(例如json-c-devel和)sendmail-devel 将无法安装到CentOS 8。要启用EPEL和PowerTools,请运行以下命令:
sudo yum install epel-release sudo yum config-manager --set-enabled PowerTools sudo yum update sudo yum repolist
安装开发人员工具
sudo yum groupinstall "Development Tools"
安装依赖库关系
sudo yum install openssl openssl-devel libcurl-devel zlib-devel libpng-devel libxml2-devel json-c-devel bzip2-devel pcre2-devel ncurses-devel
(可选)需要使用clamav-milter的用户可能希望安装以下依赖
sudo yum install sendmail sendmail-devel
安装单元测试依赖项
sudo yum install valgrind check check-devel
注意:LLVM也可选的依赖项。LLVM不会提供任何其他功能,但是与使用内置字节码解释器相比,它是执行字节码签名的另一种方法。在LLVM和字节码解释器之间进行的有限性能测试没有得出确凿的证据,即一个比另一个更好。为了简单起见,不建议安装LLVM。
clamav官网:http://www.clamav.net/downloads,这里目前最新稳定版是0.103.0。
wget http://www.clamav.net/downloads/production/clamav-0.103.0.tar.gz tar xzf clamav-0.103.0.tar.gz cd clamav-clamav-0.103.0
ClamAV的配置脚本会自动检测依赖项。
./configure --enable-check
一旦./configure完成,将打印的摘要。验证是否检测到安装的依赖软件包。
其他常用的 ./configure 选项(非必须)
--sysconfdir- 将配置文件安装到 /etc 而不是/usr/local/etc:
./configure -–sysconfdir=/etc
--prefix-将ClamAV安装到指定目录 ,而不是/usr/local/:
./configure --prefix=/opt/clamav
本文教程使用的配置命令为
./configure --enable-check --prefix=/usr/local/clamav
使用以下命令编译和安装ClamAV:
make -j2 make install
groupadd clamav useradd -g clamav clamav
注意:以下教程使用的是修改后的安装路径(即/usr/local/clamav)。如果您使用--prefix或--sysconfdir选项修改了其他安装位置,请替换/usr/local/clamav为您选择的安装路径。如果未修改安装位置,则默认安装路径为/usr/local
1.创建日志目录和病毒库目录
mkdir /usr/local/clamav/logs mkdir /usr/local/clamav/updata
2. 创建日志文件
touch /usr/local/clamav/logs/clamd.log touch /usr/local/clamav/logs/freshclam.log
3. 文件授权
chown clamav:clamav /usr/local/clamav/logs/clamd.log chown clamav:clamav /usr/local/clamav/logs/freshclam.log chown clamav:clamav /usr/local/clamav/updata
在freshclam用于下载更新之前,您需要创建一个freshclam配置。默认为您提供了一个示例配置。
cp /usr/local/clamav/etc/freshclam.conf.sample /usr/local/clamav/etc/freshclam.conf
修改配置文件 vi /usr/local/clamav/etc/freshclam.conf
#Example //必须注释掉这一行 #添加以下内容 DatabaseDirectory /usr/local/clamav/updata UpdateLogFile /usr/local/clamav/logs/freshclam.log PidFile /usr/local/clamav/updata/freshclam.pid
cp /usr/local/clamav/etc/clamd.conf.sample /usr/local/clamav/etc/clamd.conf
修改配置文件 vi /usr/local/clamav/etc/clamd.conf
#Example //必须注释掉这一行 #添加以下内容 LogFile /usr/local/clamav/logs/clamd.log PidFile /usr/local/clamav/updata/clamd.pid DatabaseDirectory /usr/local/clamav/updata
运行前注意要关闭SELinux!
/usr/local/clamav/bin/freshclam
这个过程会如果在国内服务器上跑会需要花费非常久的时间,还可能更新失败。建议使用海外代理进行更新。
export http_proxy="http://80.123.xx.xx:8080" export https_proxy="http://80.123.xx.xx:8080"
参数: -r 递归扫描子目录 -i 只显示发现的病毒文件 –no-summary 不显示统计信息 用法: --帮助 /usr/local/clamav/bin/clamscan --help --默认扫描当前目录下的文件,并显示扫描结果统计信息 /usr/local/clamav/bin/clamscan --扫描当前目录下的所有目录和文件,并显示结果统计信息 /usr/local/clamav/bin/clamscan -r --扫描data目录下的所有目录和文件,并显示结果统计信息 /usr/local/clamav/bin/clamscan -r /data --扫描data目录下的所有目录和文件,只显示有问题的扫描结果 /usr/local/clamav/bin/clamscan -r --bell -i /data --扫描data目录下的所有目录和文件,不显示统计信息 /usr/local/clamav/bin/clamscan --no-summary -ri /data
可以使用计划任务,让服务器每天定时更新和定时杀毒,保存杀毒日志。设置crontab定时任务。
crontab -e
5 30 * * * /usr/local/clamav/bin/freshclam --quiet 0 3 * * * /usr/local/clamav/bin/clamscan -r /home --remove -l /var/log/clamscan.log
on-access scanning-通过clamd实例提供实时保护
clamdtop -用于的资源监视界面 clamd
请前往官网查阅官方文档,了解其他高级用法,这里不再赘述。
https://www.clamav.net/documents/usage