项目测试之linux系统下的病毒防护
测试人员:Tom Yan 测试时间:2011-11-08 QQ:59487626 QQ群:120589528
一、项目目标
1.Linux下编译安装杀毒软件clamav
2.结合Havp插件和Squid代理服务器来实现网页防毒功能
二、软件版本
操作系统版本:RHEL61 x86-64Bit
Clamav版本:clamav-0.97.3
Havp版本:havp-0.92a
Squid版本:squid-3.1.16
三、测试步骤
1.准备工作
本项目测试是在架设好Squid服务器的基础上进行的测试,请先完成Squid的架设。
下载clamav-0.97.3
#wget http://nchc.dl.sourceforge.net/project/clamav/clamav/0.97.3/clamav-0.97.3.tar.gz
下载 havp-0.92a
#wget http://www.server-side.de/download/havp-0.92a.tar.gz
2.解压clamav原码到/usr/src
#tar –zxvf clamav-0.97.3.tar.gz –C /usr/src
#cd /usr/src/clamav-0.97.3
3.创建clamav用户与组
#groupadd clamav
#useradd –d /dev/null –s /sbin/nologin –g clamav clamav
4.为了以后结合sendmail使用,需要先安装sendmail-devel的包,注意依赖关系。
#yum install –y sendmail
#rpm –ivh sendmail-milter-8.14.4-8.el6.x86_64.rpm
#rpm –ivh sendmail-devel-8.14.4-8.el6.x86_64.rpm
5.Configure参数配置
结果
6.编译和安装
#make && make install
7.首先配置freshclam.conf 病毒库更新配置文件
#vi /usr/local/clamav/etc/freshclam.conf
####Example 注释掉Example关键字,否则无法启动服务
DatabaseDirectory /var/lib/clamav 定义数据库位置
UpdateLogFile /var/log/clamav/freshclam.log 定义日志位置,文件夹存在,可读写
LogFileMaxSize 20M 定义日志大小
LogTime yes 日志时间
LogVerbose yes
LogSyslog no 不写入系统日志
PidFile /var/run/clamav/freshclam.pid 程序pid位置,文件夹存在,可读写
DatabaseOwner clamav 定义owner
AllowSupplementaryGroups no 禁止非root用户执行
DatabaseMirror database.clamav.net 数据库下载地址
MaxAttempts 5
ScriptedUpdates yes 支持脚本下载
CompressLocalDatabase no 是否压缩本地数据库
NotifyClamd /usr/local/clamav/etc/clamd.conf 指定配置文件位置
OnOutdatedExecute /bin/mail -s root@localhost "Update Virus Failed!" 更新失败时提醒
Foreground yes 前台运行
Debug yes 是否调试
ConnectTimeout 60
ReceiveTimeout 60
TestDatabases yes
SubmitDetectionStats /usr/local/clamav/etc/clamd.conf 指定配置文件位置
8.确认freshclam配置文件中的文件夹存在,以及读写权限
#mkdir/var/lib/clamav /var/log/clamav /var/run/clamav
#chown clamav:clamav /var/lib/clamav /var/log/clamav /var/run/clamav
9.更新病毒数据库
#/usr/local/clamav/bin/freshclam
开始更新进度...
更新完成后,有警告信息,因为主程序未启动,不用管它.
10.配置主进程文件clamd.conf
#vi /usr/local/clamav/etc/clamd.conf
##Example 注释掉Example关键字,否则无法启动服务
LogFile /var/log/clamav/clamd.log 日志文件,目录存在,可读写
LogFileUnlock yes
LogFileMaxSize 20M 日志大小
LogTime yes
LogClean yes
LogSyslog no
LogVerbose yes
ExtendedDetectionInfo yes
PidFile /var/run/clamav/clamd.pid 目录存在,可读写
TemporaryDirectory /tmp/clamav 目录存在,可读写
DatabaseDirectory /var/lib/clamav 目录存在,可读写
LocalSocket /var/run/clamav/clamd.socket 目录存在,可读写
LocalSocketGroup clamav
LocalSocketMode 664 其他人可读
FixStaleSocket yes
TCPSocket 3310
TCPAddr 127.0.0.1
MaxConnectionQueueLength 300
StreamMaxLength 100M
StreamMinPort 30000
StreamMaxPort 32000
MaxThreads 20
ReadTimeout 300
CommandReadTimeout 5
MaxQueue 200
IdleTimeout 60
ExcludePath ^/proc/ 不扫描目录
ExcludePath ^/sys/ 不扫描目录
MaxDirectoryRecursion 20
FollowDirectorySymlinks yes 支持文件夹链接
FollowFileSymlinks yes 支持文件链接
CrossFilesystems yes 跨操作系统
SelfCheck 600
VirusEvent /bin/mail -s root@localhost "VIRUS ALERT: %v" 病毒警报
User clamav 执行用户
AllowSupplementaryGroups no 禁止其他用户执行
Foreground yes 前台执行
Debug no
LeaveTemporaryFiles yes
DetectPUA no
MaxScanSize 150M
MaxFileSize 30M
MaxFiles 15000
11.创建clamd.conf配置文件中使用到的目录,且clamav用户可读写
#mkdir /var/log/clamav /var/run/clamav /tmp/clamav /var/lib/clamav
#chown clamav:clamav /var/log/clamav /var/run/clamav /tmp/clamav /var/lib/clamav
12.启动clamav杀毒程序
推荐自己编写scripts放到/etc/rc.d/init.d/下,可以使用service命令与chkconfig on
#vi /etc/rc.d/init.d/clamd
执行service clamd start命令
杀毒进程启动正常;因为配置文件中设置为前台运行,方便调试,现在更改为后台运行.
13.更改clamav后台运行.
#vi /usr/local/clamav/etc/clamd.conf
更改为Foreground no
#service clamd restart
杀毒软件已经启动.
14.验证病毒查杀功能
验证结果:
注意将/usr/local/clamav/bin添加到环境变量中:
四、结合squid和havp实现网页病毒监控
1.解压并配置configure
#tar –zxvf havp-0.92a.tar.gz –C /usr/src
#cd /usr/src/havp-0.92a
#./configure --enable-ssl-tunnel
如果出现以下错误,请检查PATH
PATH环境变量存在/usr/local/clamav/bin的目录.
2.make && make install
3.参看INSTALL文件中有以下说明
因为是结合clamav来使用,为了避免读写权限问题,使用clamav用户和组.
需要挂载一个带mand属性的分区,用来检测处理临时文件.
#dd if=/dev/zero of=/tmp/havp.img bs=1M count=1000
#mkdir /tmp/havp
#mkfs –t ext4 /tmp/havp.img
#vi /etc/fstab 增加一行
查看是否成功加载
文件夹权限设定
#chown clamav:clamav /tmp/havp /var/tmp/havp /var/log/havp /var/run/havp
#chmod 700 /tmp/havp /var/tmp/havp /var/log/havp /var/run/havp
查看文件夹属性
4.havp主配置文件
#vi /usr/local/etc/havp/havp.config
注意注释掉这一行
否则,无法启动
以下为修改后的配置文件内容:
5.启动havp
报错提示无法找到libclamav.so.6库文件
以下操作可以解决无法找到库文件问题:
#echo “/usr/local/clamav/lib64” > /etc/ld.so.conf.d/havp.conf
再次启动havp
#/usr/local/sbin/havp
6.使用scripts方法启动
#cp /usr/src/havp-0.92a/etc/init.d/havp /etc/rc.d/init.d/havp
#vi /etc/rc.d/init.d/havp
启用chkconfig支持
#chkconfig havp on
7.更改squid.conf设置,支持havp检测功能
#vi /usr/local/squid/etc/squid.conf
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
8.测试病毒防护功能
打开测试页面
http://www.thepcmanwebsite.com/virus_test.shtml
Havp防护功能已经生效